介绍:
useradd用来创建用户账号,帐号建好之后,可以用passwd设定帐号的密码,用usermod修改用户帐号,用userdel来删除帐号。
从创建到修改密码,再到删除
所以就放到一天讲了
ps:
创建用户的命令useradd和adduser,在centos中,这两个命令没有区别,adduser是符号链接
[root@localhost ~]# ll /usr/sbin/adduserlrwxrwxrwx. 1 root root 7 Apr 28 01:57 /usr/sbin/adduser -> useradd
不过在Ubuntu下useradd与adduser有所不同
1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且也不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。
2、adduser在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好
useradd
用来创建用户账号
用法:
useradd [options] LOGINuseradd -D [options]
常用参数:
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录> 指定用户登入时的起始目录。
-D 变更预设值.
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s
-u
实例:
1.创建一个abc用户
[root@localhost ~]# useradd abc
2.为添加用户指定用户组和家目录
指定用户组为root,家目录为/home/ccc
useradd -g root -d /home/ccc bb
3.创建系统用户qwe
一般系统用户的uid小于1000,且不允许登录,一般给程序来使用
useradd -r qwe
4.添加一个不能登录的用户
拒绝登录有两种
1./bin/false
/bin/false 什么也不做只是返回一个错误状态,然后立即退出。将用户的 shell 设置为 /bin/false,用户会无法登录,并且不会有任何提示。
2./usr/sbin/nologin
nologin 会礼貌的向用户显示一条信息,并拒绝用户登录:This account is currently not available
useradd -s /bin/false nginx
passwd
用来更改使用者的密码
用法:
passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
常用参数
-d 删除密码
-f 强迫用户下次登录时必须修改口令
-w 口令要到期提前警告的天数
-k 更新只能发送在过期之后
-l 停止账号使用
-S 显示密码信息
-u 启用已被停止的账户
-x 指定口令最长存活期
-g 修改群组密码
-i 口令过期后多少天停用账户
实例:
1.设置abc用户密码
[root@localhost ~]# passwd abcChanging password for user abc.New password:Retype new password:passwd: all authentication tokens updated successfully.
如果有显示不好的密码(BAD PASSWORD)可以继续输入,密码也可以设置成功,不过为了安全着想,密码还是要设置复杂一点
系统用户的密码以加密的形式保存在 /etc/shadow 文件中
2.显示账号密码信息
[root@localhost ~]# passwd -S abcabc PS 2021-06-09 0 99999 7 -1 (Password set, SHA512 crypt.)
第一列:返回值abc为用户名
第二列:locked password (LK)密码被锁住, has no password (NP)没有密码, has a usable password (PS)有一个可用密码
第三列:该用户密码的最后修改时间
第四列:最小时间,密码最小的生存期(天)
第五列:最大时间,密码最大的生存期(天)
第六列:警告时间,在密码失效前多少天用户开始收到警告提示
第七列:失效时间,密码的失效时间(-1表示没有失效时间)
3.删除用户密码
[root@localhost ~]# passwd -d abcRemoving password for user abc.passwd: Success[root@localhost ~]# passwd -S abcabc NP 2021-06-09 0 99999 7 -1 (Empty password.)
usermod
用于修改用户帐号
用法:
usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s
常用参数:
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s
-u
-U 解除密码锁定。
实例:
1.修改用户登入目录
[root@localhost ~]# su - aaaa[aaaa@localhost ~]$ pwd/home/aaaa[aaaa@localhost ~]$ logout[root@localhost ~]# mkdir /home/bbbb[root@localhost ~]# chown aaaa:aaaa /home/bbbb[root@localhost ~]# usermod -d /home/bbbb aaaa[root@localhost ~]# su - aaaaLast login: Thu Jun 17 17:11:46 CST 2021 on pts/1-bash-4.2$ pwd/home/bbbb
注意:如果更改的目录不存在,会提示警告,没有此目录
[root@localhost ~]# su - test2Last login: Thu Jun 17 17:08:59 CST 2021 on pts/1su: warning: cannot change directory to /home/test: No such file or directory-bash-4.2$ pwd/root
2.将一个用户加入到另一个群组中
将aaaa用户加入到test2群组
[root@localhost ~]# id aaaauid=1000(aaaa) gid=1000(aaaa) groups=1000(aaaa)[root@localhost ~]# usermod -g test2 aaaa[root@localhost ~]# id aaaauid=1000(aaaa) gid=1008(test2) groups=1008(test2),1000(aaaa)
3.更改用户uid
把aaaa用户的uid改为888
[root@localhost ~]# id aaaauid=1000(aaaa) gid=1008(test2) groups=1008(test2),1000(aaaa)[root@localhost ~]# usermod -u 888 aaaa[root@localhost ~]# id aaaauid=888(aaaa) gid=1008(test2) groups=1008(test2),1000(aaaa)
userdel
用于删除用户帐号
userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件
用法:
userdel [-r][用户帐号]
参数:
-r 删除用户登入目录以及目录中所有文件
1.删除用户abc
[root@localhost ~]# userdel abc[root@localhost ~]# ll /home/drwx------. 2 1004 1004 62 Jun 8 01:34 abc
2.删除用户test,以及相关文件
[root@localhost ~]# userdel -r test




