How To Completely Remove User Account In Unix (Linux)
How do I remove a user’s access from my server? How do I delete a user account under Linux operating systems?
You need to use the userdel command to delete a user account and related files from user account or use this perl script:
/#!/usr/bin/perl use strict; use warnings; use Fcntl ':flock'; # import LOCK_* constants if ($#ARGV != 0) { print STDERR "Usage is $0 <user>\n"; exit (8); } my $user = $ARGV[0]; sub edit_file($) { my $file = shift; open IN_FILE, "<$file" or die("Could not open $file for input"); open OUT_FILE, ">$file.new" or die("Could not open $file.new for output"); while (1) { my $line = <IN_FILE>; if (not defined($line)) { last; } if ($line =~ /^$user/) { next; } print OUT_FILE $line; } close (IN_FILE); close (OUT_FILE); unlink("$file.bak"); rename("$file", "$file.bak"); rename("$file.new", $file); } my @info = getpwnam($user); if (@info == -1) { die("No such user $user"); } open PW_FILE, "</etc/passwd" or die("Could not read /etc/passwd"); # Lock the file for the duration of the program flock PW_FILE, LOCK_EX; edit_file("/etc/group"); edit_file("/etc/shadow"); if ($info[7] eq "/home/$user") { system("rm -rf /home/$user"); } else { print "User has a non-standard home directory.\n"; print "Please remove manually.\n"; print "Directory = $info[7]\n"; } print "User $user -- Deleted\n"; edit_file("/etc/passwd"); flock(PW_FILE,LOCK_UN); close(PW_FILE);</p>
This script must be run as root user.
Running the script
root@bt:~/src/perl# ./del_user_a.pl Usage is ./del_user_a.pl <user> root@bt:~/src/perl# ./del_user_a.pl wysocand
Source:
- Userdel -http://linux.die.net/man/8/userdel
- Userdel – http://linuxers.org/howto/how-add-remove-user-accounts-linux
- Perl for System Administration – http://www.unix.org.ua/orelly/perl/sysadmin/index.htm
Kategorie:Back Track 5, Perl
BackTrack 5, Perl
Komentarze (0)
Trackbacks (0)
Dodaj komentarz
Trackback