且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

linux用户的添加,修改,删除

更新时间:2022-09-21 15:21:09

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:

1
2
3
4
5
6
7
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# useradd fds
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# ll -d /home/fds  #默认的主文件夹路径
drwx------. 2 fds fds 4096 Sep 11 09:52/home/fds
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# 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

1
2
3
4
5
6
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# useradd -u 700 -g hive fds1
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# ll -d /home/fds1
drwx------. 2 fds1 hive 4096 Sep 11 09:54/home/fds1
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# 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:::

 

#创建一个系统用户

1
2
3
4
5
6
7
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]#  useradd -r fds2
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# ll -d /home/fds2
ls: cannot access /home/fds2: No such fileor directory
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# 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的默认值

1
2
3
4
5
6
7
8
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# 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账号的密码:

1
2
3
4
5
6
7
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# 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参数 使用管道设置密码(这里是两个短横杠,不是一个横杠):

1
2
3
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# echo 'fds1'|passwd --stdin fds1
Changing password for user fds1.
passwd: all authentication tokens updatedsuccessfully.

 

给指定账号密码加锁/解锁:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 [root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# passwd -S fds1
fds1 PS 2017-09-11 0 99999 7 -1 (Passwordset, SHA512 crypt.)
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# passwd -l fds1
Locking password for user fds1.
passwd: Success
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# passwd -S fds1
fds1 LK 2017-09-11 0 99999 7 -1 (Passwordlocked.)
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# grep fds1 /etc/shadow
fds1:!!$6$DhUsWtSf$ds9WLnzLcWhIFp3Aj8lpQARt8S6CBgMTgZiZyKwin4lZPD1lcjSpw2CmeOWhVnZnlDKFtr0ztqFUCUC8QHkYP.:17420:0:99999:7:::
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# passwd -u fds1
Unlocking password for user fds1.
passwd: Success
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# grep fds1 /etc/shadow
fds1:$6$DhUsWtSf$ds9WLnzLcWhIFp3Aj8lpQARt8S6CBgMTgZiZyKwin4lZPD1lcjSpw2CmeOWhVnZnlDKFtr0ztqFUCUC8QHkYP.:17420:0:99999:7:::
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]#

 

passwd -S仅仅是列出简单的信息,要查看更详细的信息可以使用change命令,

chage [-参数] 账号

-l:列出账号的详细的密码参数

-d:后接日期,最后修改面的时间,格式为yyyy-mm-dd

-E:后接日期,账号失效日期,格式同上。

-I:后接日期,密码失效日期,

-m:后接天数,密码最短的保存天数

-M:后接天数,密码多久需要修改

-W:后接天数,密码过期前的警告日期

 

使用chage查看账号原始信息:

1
2
3
4
5
6
7
8
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# 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

 

修改密码的最后修改时间:

1
2
3
4
5
6
7
8
9
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]#  chage -d '2017-09-12' fds1
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# 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账号添加备注:

1
2
3
4
5
6
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# usermod -c "just a test account" fds1
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# grep fds1 /etc/passwd
fds1:x:700:491:just a testaccount:/home/fds1:/bin/bash
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# usermod -e '2019-12-31' fds1
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# grep fds1 /etc/shadow
fds1:$6$DhUsWtSf$ds9WLnzLcWhIFp3Aj8lpQARt8S6CBgMTgZiZyKwin4lZPD1lcjSpw2CmeOWhVnZnlDKFtr0ztqFUCUC8QHkYP.:17421:0:99999:7::18261:


修改fds1的账号为fds1_new:

1
2
3
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012 ~]# usermod -l fds1_new fds1
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012 ~]# grep fds1 /etc/shadow
fds1_new:$6$DhUsWtSf$ds9WLnzLcWhIFp3Aj8lpQARt8S6CBgMTgZiZyKwin4lZPD1lcjSpw2CmeOWhVnZnlDKFtr0ztqFUCUC8QHkYP.:17421:0:99999:7::18261:

 

userdel [-参数] 账号

-r: 连同主文件夹一起删除

 

删除fds2以及他的主文件夹:

1
2
3
4
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# userdel -r fds2
userdel: fds2 mail spool(/var/spool/mail/fds2) not found
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# userdel -r fds2
userdel: user 'fds2' does not exist



本文转自 天黑顺路 51CTO博客,原文链接:http://blog.51cto.com/mjal01/1964269,如需转载请自行联系原作者