useradd或者adduser。其实adduser是useradd的一个软连接。以useradd为例,其用法为 useradd [option] USERNAME
1 [root@compute ~]# ll `which adduser` 2 lrwxrwxrwx. 1 root root 7 5月 26 14:21 /usr/sbin/adduser -> useradd
-u 指定新添加用户的UID,不过根据规定,普通用户的UID必须大于499且不能和已存在的UID重复。
1 [root@compute ~]# useradd -u 1010 user1 2 [root@compute ~]# tail -1 /etc/passwd 3 user1:x:1010:1010::/home/user1:/bin/bash
-g 指定新添加用户的基本组,可以使用GID也可以使用组名来为其指明基本组(可以用id命令来查看用户信息)
1 [root@compute ~]# useradd -g root user2 2 [root@compute ~]# id user2 3 uid=1011(user2) gid=0(root) 组=0(root)
-G 指定新添加的用户的附加组,附加组可以有多个,多个附加组之间用逗号隔开。
1 [root@compute ~]# useradd -G user1,root user3 2 [root@compute ~]# id user3 3 uid=1012(user3) gid=1012(user3) 组=1012(user3),0(root),1010(user1)
-d 为新添加的用户指定家目录,默认情况下家目录是/home下的与用户名同名的目录。
-M 不为新用户创建家目录。
-s 为新添加的用户指定默认的shell。(系统中有一个nologin的shell可以禁止某账户登入)
1 [root@compute ~]# useradd -s /sbin/nologin user4 2 [root@compute ~]# su user4 3 This account is currently not available.
可以使用 echo $SHELL 来查看当前用户的shell
-r 添加新用户为系统用户,系统用户的UID在1-499之间,一般不能登入,没有家目录。
注:该命令添加的用户的部分默认参数(比如用户的默认shell)在/etc/default/useradd文件中。
用id命令可以查看用户信息,用法:id [option] [USERNAME],不指定用户名时默认用户为当前用户。
-u 查看UID
-g 查看基本组的GID
-G 查看所有组的GIO
-n 和上面的选项组合使用,用于显示名称,而非id号
1 [root@compute ~]# id -u user1 2 1010 3 [root@compute ~]# id -un user1 4 user1 5 [root@compute ~]# id -G user3 6 1012 0 1010 7 [root@compute ~]# id -Gn user3 8 user3 root user1
finger命令也可以查看用户相关信息
1 [root@compute ~]# finger user1 2 Login: user1 Name: 3 Directory: /home/user1 Shell: /bin/bash 4 Never logged in. 5 No mail. 6 No Plan.
使用userdel命令来删除用户,不过值得注意的是userdel命令默认情况下是不会删除用户的家目录。
userdel的用法:userdel [option] USERNAME
-r 同时删除用户的家目录。
1 [root@compute ~]# ls /home 2 boost compute EasyDrcom libpcap lost+found user1 user2 user3 user4 3 [root@compute ~]# userdel user1 4 userdel:组“user1”没有移除,因为它包含其它成员。 5 [root@compute ~]# userdel -r user2 6 [root@compute ~]# ls /home 7 boost compute EasyDrcom libpcap lost+found user1 user3 user4
使用usermod来修改用户的账户信息,其用法同useradd。具体实例如下:
1 [root@compute ~]# id user3 2 uid=1012(user3) gid=1012(user3) 组=1012(user3),0(root),1010(user1) 3 [root@compute ~]# usermod -u 505 user3 4 [root@compute ~]# id user3 5 uid=505(user3) gid=1012(user3) 组=1012(user3),0(root),1010(user1) 6 [root@compute ~]# finger user3 7 Login: user3 Name: 8 Directory: /home/user3 Shell: /bin/bash 9 Never logged in. 10 No mail. 11 No Plan. 12 [root@compute ~]# usermod -g 0 -s /bin/tcsh user3 #这里该的基本组必须事先存在 13 [root@compute ~]# !id 14 id user3 15 uid=505(user3) gid=0(root) 组=0(root),1010(user1) 16 [root@compute ~]# !fing 17 finger user3 18 Login: user3 Name: 19 Directory: /home/user3 Shell: /bin/tcsh 20 Never logged in. 21 No mail. 22 No Plan.
-l 参数用于修改用户名
1 [root@compute ~]# usermod -l u3 user3 2 [root@compute ~]# id u3 3 uid=505(u3) gid=0(root) 组=0(root),1010(user1)
注:如果使用-G为用户修改附加组的话,默认情况下会覆盖原有的附加组,如果只想追加新的附加组可以使用 -aG 其中a表示追加。使用 -d 修改用户家目录的时候最好用再配合 -m 使用,其意思是修改家目录的同时把原来家目录下的文件复制一份到目的家目录。
修改用户的登入shell还可以使用 chsh (change shell)命令。其用法为 chsh USERNAME
可以用pwck来检查用户账号的完整性。
使用passwd命令来修改用户的密码,用法:passwd [USERNAME]
对于普通用户来说,只能使用passwd命令,用来修改自己的密码。对于管理员来说,不仅可以使用passwd来修改自己的密码,还可以使用passwd USERNAME 命令来修改别人的密码。
passwd可以使用 --stdin 参数来指明从标准输入来获取密码。
1 [root@compute ~]# passwd user3 2 更改用户 user3 的密码 。 3 新的 密码: 4 无效的密码: 密码未通过字典检查 - 过于简单化/系统化 5 重新输入新的 密码: 6 passwd:所有的身份验证令牌已经成功更新。 7 [root@compute ~]# echo "123456789" | passwd user3 --stdin 8 更改用户 user3 的密码 。 9 passwd:所有的身份验证令牌已经成功更新。
-d 参数可以删除用户的密码。
组的创建使用groupadd命令,可以使用 -g 指定GID,-r表明改组为系统组。具体用法和useradd类似,以下关于组的操作命令的用法均可参考关于用户操作的命令的用法。
groupmod 命令用于修改组信息,-g 修改GID,-n 修改组名。
groupdel 命令用于删除一个组
使用 gpasswd 命令用于修改组密码。组密码主要用于临时改变用户所属的组。
比如下面的代码中,user3用户临时使用了user4组创建了一个b.txt文件
1 [root@compute ~]# usermod -l user3 u3 2 [root@compute ~]# gpasswd user4 3 正在修改 user4 组的密码 4 新密码: 5 请重新输入新密码: 6 [root@compute ~]# su - user3 7 上一次登录:五 7月 28 06:29:18 CST 2017pts/1 上 8 [user3@compute ~]$ touch a.txt 9 [user3@compute ~]$ id 10 uid=505(user3) gid=0(root) 组=0(root),1010(user1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 11 [user3@compute ~]$ ll 12 总用量 0 13 -rw-r--r--. 1 user3 root 0 7月 28 06:30 a.txt 14 [user3@compute ~]$ newgrp user4 15 密码: 16 [user3@compute ~]$ touch b.txt 17 [user3@compute ~]$ id 18 uid=505(user3) gid=1013(user4) 组=1013(user4),0(root),1010(user1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 19 [user3@compute ~]$ ll 20 总用量 0 21 -rw-r--r--. 1 user3 root 0 7月 28 06:30 a.txt 22 -rw-r--r--. 1 user3 user4 0 7月 28 06:31 b.txt 23 [user3@compute ~]$ exit 24 exit 25 [user3@compute ~]$ id 26 uid=505(user3) gid=0(root) 组=0(root),1010(user1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 27 [user3@compute ~]$ exit 28 logout 29 [root@compute ~]#
注:上面的newgrp用于临时切换基本组,当这个临时组用完要退出时使用exit命令。
原文:http://www.cnblogs.com/flyor/p/6407275.html