Re: [webmin-devel] using modify_user to change user details
"Todd Kennedy" <[email protected]> Tue, 3 Jun 2008 15:04:08 -0400
| Newsgroups | gmane.comp.web.webmin.devel |
|---|---|
| Message-ID | <[email protected]> |
I'm not sure I'm following you? In the code you mean? What line #? On Tue, Jun 3, 2008 at 2:30 PM, Jamie Cameron <[email protected]> wrote: > I had a look at your code, and it seems reasonable to me.. > > Is that extra bogus line just being added, or is it replacing some > other user? > > - Jamie > > On 03/Jun/2008 06:28 Todd Kennedy wrote .. >> Hi Jamie, >> >> Thanks for replying to my post. I still can't figure out whats going >> on. I've defined %user hash but to no avail I cannot seem to locate >> the issue. I've attached my recycle_users.cgi. If you could briefly >> review it that would be great. I also welcome any pointers and >> constructive criticism. >> >> Thanks >> >> -Todd >> >> On Mon, Jun 2, 2008 at 5:04 PM, Jamie Cameron <[email protected]> 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 [email protected] >> > To remove yourself from this list, go to >> > http://lists.sourceforge.net/lists/listinfo/webadmin-devel >> > > > ------------------------------------------------------------------------- > 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 [email protected] > To remove yourself from this list, go to > http://lists.sourceforge.net/lists/listinfo/webadmin-devel > ------------------------------------------------------------------------- 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 [email protected] To remove yourself from this list, go to http://lists.sourceforge.net/lists/listinfo/webadmin-devel