作者:jicanmeng
时间:2016年06月05日
[jicanmeng@andy tmp]$ useradd -m -d /home/abc -s /bin/bash abc
bash: /usr/sbin/useradd: Permission denied
[jicanmeng@andy tmp]$ su root
Password:
[root@andy tmp]# useradd -m -d /home/abc -s /bin/bash abc
[root@andy tmp]# cat /etc/passwd | grep abc
abc:x:501:501::/home/abc:/bin/bash
[root@andy tmp]#
-m表示强制建立家目录;-d指定家目录;-s表示次帐号使用的shell。
[root@andy tmp]# userdel -r abc
[root@andy tmp]# cat /etc/passwd | grep abc
[root@andy tmp]#
-r表示连家目录一起删除。
[root@andy tmp]# groupadd abcd
[root@andy tmp]# cat /etc/group | grep abcd
abcd:x:501:
[root@andy tmp]#
有一点需要注意,新建一个帐号的时候,往往也会新建一个群组,名称和帐号的名称相同。
[jicanmeng@andy tmp]$ groupdel abcd
[jicanmeng@andy tmp]$ cat /etc/group | grep abcd
[jicanmeng@andy tmp]#
上面提到,新建一个帐号的时候,往往也会新建一个群组,名称和帐号的名称相同。在删除这个帐号的时候,也往往会同时删除对应的群组。如果我们不删除这个帐号,只是删除这个帐号对应的群组,是不会成功的。例子如下:
[root@andy tmp]# useradd -m -d /home/abc -s /bin/bash abc
[root@andy tmp]# groupdel abc
groupdel: cannot remove the primary group of user 'abc'
[root@andy tmp]# userdel -r abc
[root@andy tmp]# groupdel abc
groupdel: group 'abc' does not exist
[root@andy tmp]#
[jicanmeng@andy tmp]$ groups
jicanmeng vboxusers
[jicanmeng@andy tmp]$ groupdel jicanmeng
jicanmeng : jicanmeng vboxusers
[jicanmeng@andy tmp]$ groups jicanmeng bin
jicanmeng : jicanmeng vboxusers
bin : bin daemon sys
[jicanmeng@andy tmp]$
groups
命令不接参数时,输出的是当前用户所属的全部群组。其中第一个群组是有效群组。在创建文件时,文件的群组就是有效群组。groups
命令接参数时,输出的是参数中指定的用户所属的全部群组。
[jicanmeng@andy tmp]$ groups
jicanmeng vboxusers
[jicanmeng@andy tmp]$ echo $$
3279
[jicanmeng@andy tmp]$ newgrp vboxusers
[jicanmeng@andy tmp]$ groups
vboxusers jicanmeng
[jicanmeng@andy tmp]$ echo $$
4101
[jicanmeng@andy tmp]$ exit
[jicanmeng@andy tmp]$ echo $$
3279
[jicanmeng@andy tmp]$
$$
表示当前shell的PID。newgrp
会切换当前用户的有效群组,而且是以另外一个 shell 来提供这个功能的。需要使用exit才能回到原来的shell环境。