暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

每天一个Linux命令(23):useradd、passwd、usermod、userdel

运维张小星 2021-12-03
888

介绍:

useradd用来创建用户账号,帐号建好之后,可以用passwd设定帐号的密码,用usermod修改用户帐号,用userdel来删除帐号。

从创建到修改密码,再到删除

所以就放到一天讲了

ps:

创建用户的命令useradd和adduser,在centos中,这两个命令没有区别,adduser是符号链接

[root@localhost ~]# ll /usr/sbin/adduser 
lrwxrwxrwx. 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] LOGIN
useradd -D [options]

常用参数:

        -c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。

        -d<登入目录> 指定用户登入时的起始目录。

        -D 变更预设值.

        -e<有效期限> 指定帐号的有效期限。

        -f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。

        -g<群组> 指定用户所属的群组。

        -G<群组> 指定用户所属的附加群组。

        -m 自动建立用户的登入目录。

        -M 不要自动建立用户的登入目录。

        -n 取消建立以用户名称为名的群组.

        -r 建立系统帐号。

        -s指定用户登入后所使用的shell。

        -u指定用户ID。

实例:

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 abc
Changing password for user abc.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

如果有显示不好的密码(BAD PASSWORD)可以继续输入,密码也可以设置成功,不过为了安全着想,密码还是要设置复杂一点

系统用户的密码以加密的形式保存在 /etc/shadow 文件中

2.显示账号密码信息

[root@localhost ~]# passwd -S abc
abc 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 abc
Removing password for user abc.
passwd: Success
[root@localhost ~]# passwd -S abc
abc NP 2021-06-09 0 99999 7 -1 (Empty password.)

usermod

用于修改用户帐号

用法:

usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s][-u][用户帐号]

常用参数:

        -c<备注> 修改用户帐号的备注文字。

        -d登入目录> 修改用户登入时的目录。

        -e<有效期限> 修改帐号的有效期限。

        -f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。

        -g<群组> 修改用户所属的群组。

        -G<群组> 修改用户所属的附加群组。

        -l<帐号名称> 修改用户帐号名称。

        -L 锁定用户密码,使密码无效。

        -s修改用户登入后所使用的shell。

        -u修改用户ID。

        -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 - aaaa
Last login: Thu Jun 17 17:11:46 CST 2021 on pts/1
-bash-4.2$ pwd
/home/bbbb

注意:如果更改的目录不存在,会提示警告,没有此目录

[root@localhost ~]# su - test2
Last login: Thu Jun 17 17:08:59 CST 2021 on pts/1
su: warning: cannot change directory to /home/test: No such file or directory
-bash-4.2$ pwd
/root


2.将一个用户加入到另一个群组中

将aaaa用户加入到test2群组

[root@localhost ~]# id aaaa
uid=1000(aaaa) gid=1000(aaaa) groups=1000(aaaa)
[root@localhost ~]# usermod -g test2 aaaa
[root@localhost ~]# id aaaa
uid=1000(aaaa) gid=1008(test2) groups=1008(test2),1000(aaaa)


3.更改用户uid

把aaaa用户的uid改为888

[root@localhost ~]# id aaaa
uid=1000(aaaa) gid=1008(test2) groups=1008(test2),1000(aaaa)
[root@localhost ~]# usermod -u 888 aaaa
[root@localhost ~]# id aaaa
uid=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


文章转载自运维张小星,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论