用户和用户组管理--用户管理命令——useradd命令、passwd命令、修改用户信息usermod和修改用户密码状态chage、删除用户userdel和用户切换命令su

用户管理命令:

  • 用户添加命令useradd
  • 修改用户密码passwd
  • 修改用户信息usermod和修改用户密码状态chage
  • 删除用户userdel和用户切换命令su

一、添加用户useradd命令

1、useradd命令格式

[root@localhost ~]# useradd [选项] 用户名

选项:

  • -u UID : 手工指定用户的UID号
  • -d 家目录 : 手工指定用户的家目录
  • -c 用户说明 : 手工指定用户说明
  • -g 组名 : 手工指定用户放入初始组
  • -G 组名 : 指定用户的附加组
  • -s shell : 手工指定用户的登录shell。默认是/bin/bash
  • -M : 不要自动建立用户的登入目录。

关于以上的说明

-G 组名 : 指定用户的附加组。附加组之间的分割符用逗号隔开,那怕你一次将用户加入100个组里面都是可以的。特别注意,这些附加组必须是系统中已经存在的组。

  • -\s : 可以用-s指定用户的登录Shell。如果要指定其他Shell千万不能将Shell的名称或者路径写错了,那么这个用户就无法使用,结果就悲剧了。
1.1 > [root@localhost ~]# useradd [选项] 用户名

如果用户不设密码,那么这个用户时没有添加完整的,是不能登陆的。

2、添加默认用户

[root@root ~]# useradd shenchao
[root@root ~]# passwd shenchao
更改用户 shenchao 的密码 。
新的 密码:
无效的密码: WAY 过短
无效的密码: 过于简单
重新输入新的 密码:8
passwd: 所有的身份验证令牌已经成功更新。

在这里插入图片描述
示例如下:

#以下是用户的相关配置文件
[root@root ~]# grep shenchao /etc/passwd
shenchao:x:512:512::/home/shenchao:/bin/bash
[root@root ~]# grep shenchao /etc/shadow
shenchao:$6$7t7v77E/$GgAIH3aGDMdVPGVuEqE/SlOPmHlQegWpYf2BkJ5Oi4jjUk6fX4/N3GshpSEhROxrAgrIO1NHsbsKIyxvzzsSY/:18102:0:99999:7:::
[root@root ~]# grep shenchao /etc/group
shenchao:x:512:
[root@root ~]# grep shenchao /etc/gshadow
shenchao:!::

#以下是用户的相关管理文件
[root@root ~]# ll -d /home/sc/
drwx------. 4 sc sc 4096 7月  25 11:32 /home/sc/
#这个家目录的权限是700,所有者和所属组都是shenchao
[root@root ~]# ls /var/spool/mail
root  sc        stu1  stu3   user9      zhangsan2  zhangsan4  zhangsan6
rpc   shenchao  stu2  user1  zhangsan1  zhangsan3  zhangsan5
#发现这个shenchao用户的邮箱也有了

关于以上命令的说明:

  • 执行了useradd命令后,实际的操作就是修改了以上的用户默认配置文件和家目录(/home/lamp/)与邮箱(/var/spool/mail/lamp)相关管理文件,当中都应该看到shenchao这个信息了。其实在useradd添加用户的时候就做了以上操作。
  • 理论上可以手工编辑这些文件,并且创建相关的目录,来手工添加用户,即于这个用户相关的内容写进去。但是,并不推荐。
3、指定选项添加用户

useradd -u 550 -G root,bin -d /home/lamp1 -c “test user” -s /bin/bash sc

示例如下:

[root@root ~]# useradd -u 666 -G root,bin -c "test user" -d /liming -s /bin/bash liming
[root@root ~]# grep liming /etc/passwd
liming:x:666:666:test user:/liming:/bin/bash
#可以看到相关信息已经改变了
[root@root ~]# ll -d /liming/
drwx------. 4 liming liming 4096 7月  25 14:15 /liming/
4、用户默认值文件

在这里插入图片描述
在这里插入图片描述查看文件如下:

[root@root ~]# vim /etc/default/useradd

# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
  • 以上两个是用户的默认值设置文件,通过这个文件就可以添加完用户后完全修改,让它达到什么样的默认效果,所以添加一个用户的这些默认的参数都有这两个文件演变而来。
  • useradd添加用户缺省的值,是有以上两个文件做的定义默认的设置的值,即/etc/default/useradd和/etc/login.defs

二、修改用户密码passwd命令

1、passwd命令格式

[root@localhost ~]# passwd [选项] 用户名

选项:

  • -S : 查询用户密码的密码状态。仅root用户可用。
  • -l : 暂时锁定用户。仅root用户可用。
  • -u : 解锁用户。仅root用户可用
  • --stdin : 可以通过管道符输出大数据作为用户的密码。
1.1 > [root@localhost ~]# passwd 用户名
  • 超级用户修改密码
[root@root ~]# passwd lamp
#给普通用户设置密码

[root@root ~]# passwd
[root@root ~]# passwd root
#以上两个命令是给超级用户设置密码
  • 普通用户修改自己的密码

普通用户修改本身的密码比超级用户修改密码的限制严格。

  • 首先输入普通用户本身的密码;
  • 如果输入新的密码输入错误,按Backspace退格键是不能将密码删掉的,它认为这个退格键也是密码符号;
  • 新密码必须符合密码的复杂性原则;
[root@root ~]$ whoami
lamp
[root@root ~]$ passwd lamp
passwd:只有根用户才能指定用户名称。
#只有超级用户才可以在passwd后面指定用户名。普通用户要修改自己的密码后面是不能写用户名的
[root@root ~]$ passwd 
#passwd直接回车,修改当前用户所在密码
更改用户 lamp 的密码。
#需要先输入当前用户的密码。也就是确认一下你是不是lamp用户
为 lamp 更改 STRESS 密码。
(当前)UNIX密码: 
新的 密码:
#普通用户的密码要遵循密码的复杂性原则。只有超级用户才可以强制使用不符合复杂性的密码
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新
[root@root ~]$ 
... ...
#

关于以上的说明:

  • 超级用户可以改任何用户的密码,即能修改超级用户本身的密码,也能修改其他普通用户的密码;
  • 普通用户可以修改自己的密码,但是不能修改其他用户的密码;
2、查看密码状态
  • 只能用超级用户来测试。
  • passwd -S ——> 实际上显示的就是/etc/shadow/文件中显示的这些参数;

[root@localhost ~]# passwd -S lamp
lamp PS 2013-01-06 0 99999 7 -1
#用户名密码设定时间(2013-01-06),密码修改间隔时间(0)
#密码有效期限(99999),警告时间(7),密码不失效(-1)

shadow文件的内容:

在这里插入图片描述

3、锁定用户和解锁用户

[root@localhost ~]# passwd -l lamp
[root@localhost ~]# passwd -u lamp

锁定用户:其实就是在shadow文档中的密码前面加双!!,将其屏蔽掉。

4、使用字符串作为用户的密码

[root@localhost ~]# echo “123” | passwd --stdin lamp

passwd --stdin ——> 把你输入的字符串作为密码。这种方法主要作用是写Shell编程的时候使用,例如,批量添加100个用户设置的初始默认密码。要求每个用户登录完成后都修改一下密码。

三、修改用户信息usermod和修改用户密码状态chage

1、修改用户信息usermod

[root@localhost ~]# usermod [选项] 用户名

选项:

  • -u UID : 修改用户的UID号
  • -c 用户说明 : 修改用户的说明信息
  • -G 组名 : 修改用户的附加组
  • -L : 临时锁定用户
  • -U : 解锁用户锁定(Unlock)

示例如下:

[root@root ~]# usermod -c "test user" lamp
#这个说明之间如果没有空格可以不用双引号括起来。如果有空格必须用双引号括起来。

在这里插入图片描述关于以上的说明:

  • useradd命令选项和usermod命令选项的区别:usermod是修改已经存在的用户,而useradd是添加新用户的同时设定它的选项。
  • passwd命令的选项 -l/-u 来锁定和解锁用户;usermod命令的选项 -L/-U 也可以锁定和解锁用户,这个两天命令的作用基本是一样的。
  • 除了以上两种方法可以将用户锁定外,还有其他的方法可以将用户锁定。
    • 手工用vi修改/etc/passwd文件,将用户的权限由它的标准权限/bin/bash/修改为/sbin/nologin/时,这个用户也会被禁用;
    • 或者直接将用户注释掉;
    • 也可以vim修改shadow这个文件,把用户密码手工加入感叹号!
    • 密码串之间加入任意一个字符,那么它的密码换算下来可定不是它的原始密码了,这样这个密码就会失效,这个用户就会失效。
2、修改用户密码状态chage

[root@localhost ~]# chage [选项] 用户名

选项:

  • -l : 列出用户的详细密码状态
  • -d 日期 : 修改密码最后一次更改日期(shadow3字段)
  • -m 天数 : 两次密码修改间隔(4字段)
  • -M 天数 : 密码有效期(5字段)
  • -W 天数 : 密码过期前警告天数(6字段)
  • -I 天数 : 密码过后宽限天数(7字段)
  • -E 天数 : 账号失效时间(8字段)

上面这些chage命令选项不用记,直接用vim修改shadow文件就可以实现。

示例如下:

[root@root ~]# chage -l lamp
Last password change					: Jul 25, 2019
Password expires					: never
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7
#这条命令其实吵到的就是shadow文件当中的几个密码时间 

[root@localhost ~]# chage -d 0 lamp
#这个命令其实是把密码修改日期归0了(shadow文件的第3字段)
#这样用户一登录就要修改密码

关于以上的说明:

[root@root ~]# cat /etc/shadow
... ...
sshd:!!:18069::::::
tcpdump:!!:18069::::::
lamp:$6$gc.SnyvU$W.q5JScVipjq5hVsk0hULmQCj2d7c3YsOKMOlDM66ZynBKsm8iqlcZjq8dOCX7Lt4lRHYD1vOMlhHNaCwUzBr/:18102:0:99999:7:::
[root@root ~]# chage -d 0 lamp
[root@root ~]# cat /etc/shadow
... ...
sshd:!!:18069::::::
tcpdump:!!:18069::::::
lamp:$6$gc.SnyvU$W.q5JScVipjq5hVsk0hULmQCj2d7c3YsOKMOlDM66ZynBKsm8iqlcZjq8dOCX7Lt4lRHYD1vOMlhHNaCwUzBr/:0:0:99999:7:::
#可以发现使用了 chage -d 0 lamp 命令后,shadow文件第3个字段密码修改时间就变成了0

最后登录lamp用户的登录效果:
在这里插入图片描述

如果将shadow第3个字段修改为0,系统会认为这个用户没有修改过密码。因为第3字段修改为0就表示1970年1月1日,所以系统认为这个用户没有改过密码。当我的用户一旦登录就会它的密码修改日期修改为0,这样只要这个用户一登录就必须先修改密码,才能够正常的使用,这样就保证了系统的安全性。

四、删除用户userdel和用户切换命令su

1、用户userdel

[root@localhost ~]# userdel [-r] 用户名

选项:

  • -r : 删除用户的同时删除用户家目录
  • 一般userdel命令和选项-r联合使用。如果将某个用户删掉,但是没有将该用户的家目录删掉,那么这个家目录就会变成一个没有所有者的垃圾文件,这时候还要手工去删除这个家目录。

示例如下:

[root@root ~]# cat /etc/passwd
... ...
pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lamp:x:500:500:test user:/home/lamp:/bin/bash
[root@root ~]# userdel -r lamp
[root@root ~]# cat /etc/passwd
... ...
pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
#可以发现这个lamp用户被删掉了
[root@root ~]# cd /home/
[root@root home]# ls
lost+found
#这个lamp的家目录也消失了
1.1> 手工删除用户
  • [root@localhost ~]# vi /etc/passwd
  • [root@localhost ~]# vi /etc/shadow
  • [root@localhost ~]# vi /etc/group
  • [root@localhost ~]# vi /etc/gshadow
  • [root@localhost ~]# rm -rf /var/spool/mail/lamp
  • [root@localhost ~]# rm -rf /home/lamp/

关于以上的说明:

可以不使用useradd命令,通过手工去修改以上这几个文件,也可以添加用户。其实useradd命令就是修改了以上这几个文件。我们不演示添加,只演示一下删除,这是一样的。

2、查看用户ID

[root@localhost ~]# id 用户名

示例如下:

[root@root ~]# id lamp
uid=500(lamp) gid=500(lamp) 组=500(lamp)
[root@root ~]# usermod -G root lamp
[root@root ~]# id lamp
uid=500(lamp) gid=500(lamp) 组=500(lamp),0(root)
#

查看用户的UID、GID、组ID、

3、切换用户身份su

[root@localhost ~]# su [选项] 用户名

选项:

  • - : 选项只使用 “ - ” 代表连带用户的环境变量一起切换;
  • -c 命令 : 仅执行一次命令,而不切换用户身份

举例:

  • [lamp@localhost ~]$ su - root
    #切换成root

  • [lamp@localhost ~]$ su - root -c “useradd user3”
    #不切换成root,但是执行useradd命令添加user3用户
    #没有切换root命令,用-c选项调用root身份来执行某一个只有root管理员才可以执行的命令

关于su名的解释:

示例(1)如下:

在这里插入图片描述

  • 如果su命令中不加- ,将会出现错误。虽然名字以改变,但是用户的环境变量没有改变。这是su命令最容易犯的错误。
  • 超级用户切换成普通用户不需要密码;普通用户切换成超级用户或者普通用户切换成其他普通用户,都是需要输入正确密码的。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值