|
12月1日
Pye
特殊专题,针对LPI考级的用户管理部分。
命令列表:
useradd(adduser),userdel,passwd,pwconv,pwunconv,usermod
相关文件:
/etc/passwd;/etc/shadow;/etc/skel/*
其实这些命令都是针对这个四个文件进行修改的,我们自己也可以通过手工修改这四个命
令达到使用命令相同的效果。
useradd(adduser) 创建一个新的用户,adduser是useradd的符号连接。
一般形态:
[root@laptop root]# adduser pye
如果用户明已经存在的话会出现如下的错误。
[root@laptop root]# adduser pye
adduser: user pye exists
参数:
-d
参数后面跟的是一个目录的完全路径,这个参数是用来指定生成的用户的主目录的(主目
录又称家目录,可以用cd ~或者直接cd来到达自己的主目录,也可以用~pye到一个指定的
用户的主目录。)
[root@laptop root]# adduser suqi -d /home/suqix
[root@laptop root]# cd ~suqi
[root@laptop suqix]# ls
-g
这个参数后面跟的是一个组名,将新建的用户的组设定成一个指定的组,注意:指定的组
必须已经在系统中存在。
[root@laptop root]# adduser -g pye suqi
将suqi这个用户加入pye这个组。
[root@laptop suqix]# id suqi
uid=504(suqi) gid=500(pye) groups=500(pye)
在这里可以查看到一个指定用户的用户名,用户ID,所属组名,组ID,附加组名,附加组
ID的信息。
-G
创建用户时设定用户的附加组,这个组也必须存在。
[root@laptop suqix]# adduser dhy -G pye
[root@laptop suqix]# id dhy
uid=504(dhy) gid=504(dhy) groups=504(dhy),500(pye)
这里说明一下附加组的概念,gid里显示的就是实际的所属的组,也就是改用户创建文件
时,文件显示的所属的组。附加组就是groups里面现实的组,这些是为了方便文件共享而
产生的。
-m
指定系统自动建立用户的主目录,不过我看起来好想和不加没有什么区别。
[root@laptop root]# adduser suqi -m
-M
这个参数是用来创建用户是指定不自动生成用户目录的。
[root@laptop root]# adduser -M -g pye suqi
[root@laptop root]# cd ~suqi
bash: cd: /home/suqi: No such file or directory
-e
用来指定创建的用户的帐号的失效日期,指定日期的格式是MM/DD/YYYY
[root@laptop suqix]# adduser suqi -g pye -e 12/1/2002
这条命令的意思就是添加一个suqi用户,他的实际组是pye,过期的日期是2002年12月1日。
当失效日期到的时候会有什么样的效果,大家不妨自己做做,建立一个用户,然后设定他
的失效日期是当前日期的前一天,然后用这个帐号登录,试试就知道了。
-n
参数后面不跟任何的值,如下:
[root@laptop root]# adduser -n raul
系统在添加用户的时候会自动以用户名创建一个组,这个参数的作用是新建一个用户,并
不自动以用户名生成一个组,而是用系统中默认存在的users组作为用户的组,如下:
[root@laptop suqix]# cat /etc/group | grep users
users:x:100:
这个组在系统安装时已经存在。
-u
系统在创建一般的系统用户时是从500开始,用户ID依次递加的,-u参数可以不按照系统
的规则,指定一个用户ID给新建的用户。
[root@laptop root]# adduser -u 700 raul
-s
更改用户登录是使用的shell,后面跟的参数是shell的可执行文件。
[root@laptop root]# adduser -s /bin/tcsh raul
userdel 顾名思义,是删除一个系统中存在的用户的指令。还有一个好消息
就是这个命令的参数非常的少,呵呵,只有一个。
一般形态:
[root@laptop root]# userdel pye
这样就把一个用户从系统中删除了,其实他所作的工作只是在/etc/passwd和/etc/shadow
中把pye的记录删除了,呵呵,简单吧。不过这样是不会连同用户的目录也一起删除的。
参数:
-r
[root@laptop root]# userdel -r pye
这样就在删除用户的同时也把用户的主目录一起删除了。
谢谢,谢谢,此命令结束,the next is coming……
passwd 给帐号建立密码。
一般形态:不说了地球人都~~~~知道!
参数:
-d
删除密码,就是把指定帐号的密码删除,这样登陆的时候就不需要输入密码了。
[root@laptop root]# passwd -d pye
Removing password for user pye.
passwd: Success
-l
将帐号冻结,即使有密码也不能登陆。l就是lock的意思,
[root@laptop root]# passwd -l pye
Locking password for user pye.
passwd: Success
其实这条命令所作的工作就是在/etc/shadow中的密码段的前面加一个!符号。如下:
[root@laptop root]# grep pye /etc/shadow
[root@laptop root]# grep pye /etc/shadow
pye:!!$1$YDVwumxc$0uyzI9waAvMXzB2VeRSeY/:12023:0:99999:7:::
我用的是8.0所以前面是2个!号,但是删除一个!号那个帐号也是无法登陆的,所以1个
就够了。
-u
将冻结的帐号解冻,u就是unlock的意思。
[root@laptop root]# passwd -u pye
Unlocking password for user pye.
passwd: Success.
这条命令所作的工作就是将/etc/shadow文件中,密码段开头部分的感叹号删除。
[root@laptop root]# grep pye /etc/shadow
pye1$YDVwumxc$0uyzI9waAvMXzB2VeRSeY/:12023:0:99999:7:::
出了没有了两个感叹号,其余的部分完全一样,呵呵,有兴趣的自己对比一下,当然也有
命令可以用来作字符串的比较,不过这里就不说了。
-S
列出/etc/shadow文件中密码段加密的方法。
[root@laptop root]# passwd -S pye
Password set, MD5 crypt.
这里加密的方法是MD5
pwunconv 把/etc/shadow文件中的密码段移动到/etc/passwd中的x段。没有
参数。
[root@laptop root]# tail -n 5 /etc/passwd
squid:x:23:23::/var/spool/squid:/dev/null
webalizer:x:67:67:Webalizer:/var/www/html/usage:/sbin/nologin
pye:x:500:500:wupei,Fudan University,na shi,086+021+54176500:/home/pye:/bin/bashraul:x:502:502::/home/raul:/bin/bash
yue:x:503:500::/home/yue:/bin/bash
这是命令执行前/etc/passwd文件的部分内容。:x:就是要被替换的部分。
[root@laptop root]# pwunconv
接下来的就是命令执行后的结果。
[root@laptop root]# tail -n 5 /etc/passwd
squid:!!:23:23::/var/spool/squid:/dev/null
webalizer:!!:67:67:Webalizer:/var/www/html/usage:/sbin/nologin
pye1$YDVwumxc$0uyzI9waAvMXzB2VeRSeY/:500:500:wupei,Fudan University,na shi,086+021+54176500:/home/pye:/bin/bash
raul1$Jgsk9MdX$QXD3oVR632c/.xq8at8O.0:502:502::/home/raul:/bin/bash
yue1$kiRG3rvq$c2ioNO.V7cESY0t24YYSf.:503:500::/home/yue:/bin/bash
大家可以看到原来:x:的部分已经被用MD5加密过的密码替换了。
pwconv 和pwunconv命令执行相反的动作,大家自己做做看吧,我就不写了
usermod 修改用户密帐号的相关信息。其实就是修改/etc/passwd和/
/etc/shadow中的相关的部分。
参数:
-c
修改用户的注释部分,如下:
pye:x:500:500INUX:/home/pye:/bin/bash
这是修改前的部分,其实LINUX就是我们要修改的用户注释部分。
[root@laptop root]# usermod -c PYE pye
[root@laptop root]# grep pye /etc/passwd
pye:x:500:500YE:/home/pye:/bin/bash
看到结果了么?:P
-d
修改用户的主目录,就是pye:x:500:500YE:/home/pye:/bin/bash中:/home/pye:那部分
[root@laptop root]# usermod -d /home/pyegrp pye
[root@laptop root]# grep pye /etc/passwd
pye:x:500:500YE:/home/pyegrp:/bin/bash
已经从原来的/home/pye改成了/home/pyegrp了。
-e
更改用户帐号的有效期限,如果过了有效期限就不能登陆,和冻结帐号有所不同,他不是
修改/etc/shadow文件中密码段前面的!来实现的。而是修改这里,如下:
[root@laptop root]# cat /etc/shadow | grep pye
pye1$YDVwumxc$0uyzI9waAvMXzB2VeRSeY/:12023:0:99999:7:::
这是原来的,执行命令以后变成这样
[root@laptop root]# usermod -e 11/30/2002
[root@laptop root]# cat /etc/shadow | grep pye
pye1$YDVwumxc$0uyzI9waAvMXzB2VeRSeY/:12023:0:99999:7::12021:
这个参数和useradd命令的-e参数一样,没有忘记吧,呵呵,指定日期的格式也是一样的。
-g
修改用户所属的组,这个useradd中的-g参数一样。不做复述。
-G
修改用户所属的附加组,也和useradd中的-G参数一样使用,再次的不做复述。呵呵
-l
修改帐号登录名,先看一下原来的文件
[root@laptop root]# grep pye /etc/passwd /etc/shadow
/etc/passwd:pye:x:500:500YE:/home/pyegrp:/bin/bash
/etc/shadow:pye1$YDVwumxc$0uyzI9waAvMXzB2VeRSeY/:12023:0:99999:7::12021:
执行后会变成这个样子
[root@laptop root]# grep pye /etc/passwd /etc/shadow
/etc/passwd:testpye:x:500:500YE:/home/pyegrp:/bin/bash
/etc/shadow:testpye1$YDVwumxc$0uyzI9waAvMXzB2VeRSeY/:12023:0:99999:7::12021:
看,原来的用户名pye变成了testpye,现在登录的时候不能用pye了,只能用testpye,密
码不变!
-L
锁定密码,使密码无效,和passwd -l命令的效果一样,都是修改/etc/shadow中的密码段
-U
密码解锁,和passwd -u命令的效果一样,对/etc/shadow中的密码段进行操作。
-s
更改用户的登录后使用的shell,和useradd -s命令的作用一样,使用方法也一样。
-u
参数后面跟的是新的user ID,注意不要和已经存在于系统中的用户ID冲突,
先看看原来的文件内容:
[root@laptop root]# grep pye /etc/passwd
pye:x:500:500YE:/home/pye:/bin/bash
这里第一个500是UID(UserID),第二个是GID(GroupID),接着执行命令
[root@laptop root]# usermod -u 700 pye
[root@laptop root]# grep pye /etc/passwd
pye:x:700:500YE:/home/pye:/bin/bash
已经改了吧。 |
|