|
From: Jamie C. <jca...@we...> - 2008-06-13 17:13:48
|
That code looks fine to me - is it doing what you expect?
- Jamie
On Jun 13, 2008, at 10:01 AM, "Todd Kennedy" <tod...@gm...> wrote:
> Hi Jamie,
>
> One question. If I am resetting the password and I am encrypting it
> like so:
>
> $pass = &encrypt_password($config{'recycle_passwd'});
> $recycleuser{'pass'} = $pass;
>
> and then I am calling modify_user like so
>
> &modify_user(\%recycleuser, \%user);
>
> Is the hash key 'pass' what I should be using to reset the password if
> I'm doing the encryption outside of the modify_user function or should
> I be using something else?
>
>
> On Mon, Jun 2, 2008 at 5:04 PM, Jamie Cameron <jca...@we...>
> wrote:
>> Hi Todd,
>>
>> Make sure that in your code, you aren't calling modify_user with an
>> empty user hash. It looks like that is the case, as this would cause
>> an 'empty' line like that to be inserted into /etc/passwd.
>>
>> I'd have to see all your code to comment further though..
>>
>> - Jamie
>>
>> On 02/Jun/2008 12:11 Todd Kennedy wrote ..
>>> Hello,
>>>
>>> I am new to webmin module development and am trying to extend the
>>> "Users
>>> & Groups" module for internal purposes. What I have done is create a
>>> "Recycle User" button on the selected users "Edit Users" page that
>>> basically mimics the functionality of the delete_user.cgi (without
>>> actually deleting the user) but also extends it by showing me a
>>> list of
>>> currently selected user processes running. Once I press the "Recycle
>>> user and home directory button" it goes off and first terminates
>>> those
>>> running processes then removes the users home directory then I
>>> need to
>>> reset the users password back to some default. I am about 90% of
>>> the way
>>> there but seem to be caught up on the saving of the modified
>>> password. I
>>> am using the modify_user function. Whats actually happening is
>>> that it's
>>> leaving an incomplete line in the /etc/password and shadow file
>>> looking
>>> something like this:
>>>
>>> svctag:*LK*:6445::::::
>>> nobody:*LK*:6445::::::
>>> noaccess:*LK*:6445::::::
>>> nobody4:*LK*:6445::::::
>>> ::::::::
>>>
>>> This last line should be the entry that I recycled but it's just a
>>> bunch
>>> of empty GECOS fields. So it seems to me that it's rewriting the
>>> line
>>> but is doing it with empty values.
>>>
>>> So I think I am missing something somewhere but am unsure what other
>>> functions possibly I need to call in order for it to write out the
>>> password file. I'm assuming the modify_user function takes care of
>>> that, no?
>>>
>>>
>>> This does seem like a strange thing to do but would fit nicely into
>>> managing test accounts for may lab machines. When the lab
>>> reservation
>>> expires the admin can recycle the user with a press of the button
>>> and
>>> set it back to some default settings.
>>>
>>> Here's the snippet of code that is suppose to be resetting the
>>> password
>>> and saving it.
>>>
>>> %recycleuser = %{$ulist[$in{'num'}]};
>>> $pass = &encrypt_password($config{'recycle_passwd'});
>>> $recycleuser{'pass'} = $pass;
>>>
>>> # Update user details
>>> &modify_user(\%recycleuser, \%user);
>>>
>>> # Run the pre-change command
>>> $merr = &making_changes();
>>> &error(&text('usave_emaking', "<tt>$merr</tt>")) if (defined
>>> ($merr));
>>> &unlock_user_files();
>>> &made_changes();
>>>
>>> So as the code runs the following is displayed in the borwser, The
>>> has
>>> info is there for debugging purposes.
>>>
>>> Deleting from other modules ..
>>> .. done
>>> Killing user processes
>>> .. done
>>>
>>> Deleting home directory ..
>>> .. done
>>>
>>> Creating Home Directory
>>> .. done
>>>
>>> new encrypted passwd=TN4xb4vuWbxc6
>>>
>>> Contents of recycleuser Hash prior to change
>>>
>>> num => 20
>>>
>>> inactive =>
>>>
>>> max =>
>>>
>>> warn =>
>>>
>>> user => testuser
>>>
>>> shell => /bin/sh
>>>
>>> home => /export/home/testuser
>>>
>>> real =>
>>>
>>> line => 20
>>>
>>> pass => NNwEdL/U3qYwU
>>>
>>> sline => 20
>>>
>>> uid => 1000
>>>
>>> change => 14032
>>>
>>> min =>
>>>
>>> expire =>
>>>
>>> gid => 10
>>>
>>>
>>> Contents of User hash after replacing $pass but before saving
>>>
>>> num => 20
>>>
>>> inactive =>
>>>
>>> max =>
>>>
>>> warn =>
>>>
>>> user => testuser
>>>
>>> shell => /bin/sh
>>>
>>> home => /export/home/testuser
>>>
>>> real =>
>>>
>>> line => 20
>>>
>>> pass => TN4xb4vuWbxc6
>>>
>>> sline => 20
>>>
>>> uid => 1000
>>>
>>> change => 14032
>>>
>>> min =>
>>>
>>> expire =>
>>>
>>> gid => 10
>>>
>>>
>>> Reread the %ulist has for the user "Still has the old password"
>>>
>>> num => 20
>>>
>>> inactive =>
>>>
>>> max =>
>>>
>>> warn =>
>>>
>>> user => testuser
>>>
>>> shell => /bin/sh
>>>
>>> home => /export/home/testuser
>>>
>>> real =>
>>>
>>> line => 20
>>>
>>> pass => NNwEdL/U3qYwU
>>>
>>> sline => 20
>>>
>>> uid => 1000
>>>
>>> change => 14032
>>>
>>> min =>
>>>
>>> expire =>
>>>
>>> gid => 10
>>>
>>>
>>> Any help on this would be much appriciated.
>>
>> ---
>> ---
>> -------------------------------------------------------------------
>> This SF.net email is sponsored by: Microsoft
>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> -
>> Forwarded by the Webmin development list at web...@we...
>> To remove yourself from this list, go to
>> http://lists.sourceforge.net/lists/listinfo/webadmin-devel
>>
>
> ---
> ----------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> -
> Forwarded by the Webmin development list at web...@we...
> To remove yourself from this list, go to
> http://lists.sourceforge.net/lists/listinfo/webadmin-devel
>
|