From: Jamie C. <jca...@we...> - 2008-06-03 18:30:11
|
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 <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 > > |