useradd [-参数] 账号
-u:后接一组数字,把这组数字指定为这个账号的uid。
-g:后接组名,把这个组作为账号的初始用户组,该用户组的GID会被放到/etc/passwd的第四个账号
-G:后接组名,把这个组作为账号的次要用户组,这个参数会修改/etc/group内的相关数据。
-M:强制,不创建用户主文件夹。
-m:强制,创建用户主文件夹。
-c:这就是/etc/passwd第五列的说明内容。
-d:指定主文件夹目录,而不使用系统的默认的目录。(必须是绝对路径)
-r:创建一个系统账号,这个账号的uid会有限制。
-s:后接一个shell,若没有指定则默认为/bin/bash。
-e:后接一个日期,格式为‘yyyy-mm-dd’,shadow的第八字段,指定账号的失效日期。
-f:后接一个shadow的第七字段,指定密码是否失效,0为立刻失效,-1为永不失效(密码只会过期而强制于登陆时重新设置而已)
创建用户fds:
[[email protected]~]# useradd fds [[email protected]~]# ll -d /home/fds #默认的主文件夹路径 drwx------. 2 fds fds 4096 Sep 11 09:52/home/fds [[email protected]~]# grep fds /etc/passwd /etc/shadow /etc/group /etc/passwd:fds:x:1011:1011::/home/fds:/bin/bash /etc/shadow:fds:!!:17420:0:99999:7::: /etc/group:fds:x:1011:
#设置uid为700 ,初始用户组为hive
[[email protected]~]# useradd -u 700 -g hive fds1 [[email protected]~]# ll -d /home/fds1 drwx------. 2 fds1 hive 4096 Sep 11 09:54/home/fds1 [[email protected]~]# grep fds1 /etc/passwd /etc/shadow /etc/group /etc/passwd:fds1:x:700:491::/home/fds1:/bin/bash /etc/shadow:fds1:!!:17420:0:99999:7:::
#创建一个系统用户
[[email protected]~]# useradd -r fds2 [[email protected]~]# ll -d /home/fds2 ls: cannot access /home/fds2: No such fileor directory [[email protected]efghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# grep fds2 /etc/passwd /etc/shadow /etc/group /etc/passwd:fds2:x:494:490::/home/fds2:/bin/bash /etc/shadow:fds2:!!:17420:::::: /etc/group:fds2:x:490:
一般用户的uid都是大于500的,用户自己创建的系统账号的uid一般是大于100的,所以加上-r参数后,系统会自动将账号与账号同名的用户组的uid/gid都指定小于500,因为系统账号主要是用来进行运行系统所需要的服务的权限设置,所以系统账号默认不会自动创建主文件夹。
使用-D参数查看useradd的默认值
[[email protected]~]# useradd -D GROUP=100 #默认的用户组 HOME=/home #默认的主文件夹所在目录 INACTIVE=-1 #密码的失效日期,在shadow内的第7列 EXPIRE= #账号的失效日期,在shadow的第8列 SHELL=/bin/bash #默认的shell SKEL=/etc/skel #用户文件夹的内容数据参考目录 CREATE_MAIL_SPOOL=yes #是否主动帮用户创建邮箱(mailbox)
关于账号默认设置的数据可查看/etc/default/useradd /etc/shadow
关于uid/gid,密码的设置可查看/etc/login.defs /etc/passwd /etc/group
passwd [-参数] 账号
--stdin:可以通过管道的数据,作为密码的输入,常用语shell中。
-l:加锁的意思,使密码失效。
-u:解锁的意思,是-l的反操作。
-S:列出密码的相关参数
-n:后接天数,表示多久不可以修改密码
-x:后接天数,表示多久之内必须修改密码
-w:后接天数,密码过期前的警告天数
-i:后接日期,密码的失效日期
注:passwd 后面不加账号的话就是修改当前登录的账号的密码。
设置fds账号的密码:
[[email protected]~]# passwd fds Changing password for user fds. New password: BAD PASSWORD: it is WAY too short BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updatedsuccessfully.
添加—stdin参数 使用管道设置密码(这里是两个短横杠,不是一个横杠):
[[email protected]~]# echo ‘fds1‘|passwd --stdin fds1 Changing password for user fds1. passwd: all authentication tokens updatedsuccessfully.
给指定账号密码加锁/解锁:
[[email protected]~]# passwd -S fds1 fds1 PS 2017-09-11 0 99999 7 -1 (Passwordset, SHA512 crypt.) [[email protected]~]# passwd -l fds1 Locking password for user fds1. passwd: Success [[email protected]~]# passwd -S fds1 fds1 LK 2017-09-11 0 99999 7 -1 (Passwordlocked.) [[email protected]~]# grep fds1 /etc/shadow fds1:!!$6$DhUsWtSf$ds9WLnzLcWhIFp3Aj8lpQARt8S6CBgMTgZiZyKwin4lZPD1lcjSpw2CmeOWhVnZnlDKFtr0ztqFUCUC8QHkYP.:17420:0:99999:7::: [[email protected]~]# passwd -u fds1 Unlocking password for user fds1. passwd: Success [[email protected]~]# grep fds1 /etc/shadow fds1:$6$DhUsWtSf$ds9WLnzLcWhIFp3Aj8lpQARt8S6CBgMTgZiZyKwin4lZPD1lcjSpw2CmeOWhVnZnlDKFtr0ztqFUCUC8QHkYP.:17420:0:99999:7::: [[email protected]~]#
passwd -S仅仅是列出简单的信息,要查看更详细的信息可以使用change命令,
chage [-参数] 账号
-l:列出账号的详细的密码参数
-d:后接日期,最后修改面的时间,格式为yyyy-mm-dd
-E:后接日期,账号失效日期,格式同上。
-I:后接日期,密码失效日期,
-m:后接天数,密码最短的保存天数
-M:后接天数,密码多久需要修改
-W:后接天数,密码过期前的警告日期
使用chage查看账号原始信息:
[[email protected]~]# chage -l fds1 Last password change : Sep 11,2017 Password expires : never Password inactive : never Account expires :never Minimum number of days between passwordchange : 0 Maximum number of days between passwordchange : 99999 Number of days of warning before passwordexpires : 7
修改密码的最后修改时间:
[[email protected]~]# chage -d ‘2017-09-12‘ fds1 [[email protected]~]# chage -l fds1 Last password change : Sep 12, 2017 Password expires : never Password inactive : never Account expires :never Minimum number of days between passwordchange : 0 Maximum number of days between passwordchange : 99999 Number of days of warning before passwordexpires : 7
usermod [-参数] 账号
-c:后接账号说明
-d:后接账号的主文件夹,绝对路径
-e:后接日期,格式为yyyy-mm-dd
-f:后接天数
-g:后接初始用户组
-G:后接次要用户组
-a:与-G一起使用可增加次要用户的支持而非设置
-l:后接新的账号名称
-s:后接shell的实际文件
-u:后接UID数字
-L:暂时将用户冻结,锁定用户密码,使其不能登录。
-U:解冻用户,解锁用户密码,是冻结账号恢复使用
给fds1账号添加备注:
[[email protected]~]# usermod -c "just a test account" fds1 [[email protected]~]# grep fds1 /etc/passwd fds1:x:700:491:just a testaccount:/home/fds1:/bin/bash [[email protected]~]# usermod -e ‘2019-12-31‘ fds1 [[email protected]~]# grep fds1 /etc/shadow fds1:$6$DhUsWtSf$ds9WLnzLcWhIFp3Aj8lpQARt8S6CBgMTgZiZyKwin4lZPD1lcjSpw2CmeOWhVnZnlDKFtr0ztqFUCUC8QHkYP.:17421:0:99999:7::18261:
修改fds1的账号为fds1_new:
[[email protected] ~]# usermod -l fds1_new fds1 [[email protected] ~]# grep fds1 /etc/shadow fds1_new:$6$DhUsWtSf$ds9WLnzLcWhIFp3Aj8lpQARt8S6CBgMTgZiZyKwin4lZPD1lcjSpw2CmeOWhVnZnlDKFtr0ztqFUCUC8QHkYP.:17421:0:99999:7::18261:
userdel [-参数] 账号
-r: 连同主文件夹一起删除
删除fds2以及他的主文件夹:
[[email protected]~]# userdel -r fds2 userdel: fds2 mail spool(/var/spool/mail/fds2) not found [[email protected]~]# userdel -r fds2 userdel: user ‘fds2‘ does not exist