8. Linux用户和用户组管理(2)

这篇博客详细介绍了Linux系统中用户和用户组的管理,包括如何使用usermod命令修改用户信息,如锁定和解锁用户,如何用chage命令强制用户在登录时修改密码,userdel命令删除用户,id命令查看用户UID和GID,su命令切换用户身份,以及groupadd、groupmod、groupdel、gpasswd和newgrp命令对用户组的操作。内容涵盖了用户和用户组的创建、修改、删除及权限切换等多个方面。
摘要由CSDN通过智能技术生成

目录

8.11 Linux修改系统用户信息(usermod命令)

8.12 Linux强制系统用户登陆时修改密码(chage命令)

8.13 Linux删除系统用户(userdel命令)

8.14 Linux查看用户的UID和GID(id命令)

8.15 Linux临时切换用户身份(su命令)

su 和 su - 的区别

8.16 Linux whoami和who am i命令

8.17 Linux添加用户组(groupadd命令)

8.18 Linux修改用户组(groupmod命令)

8.19 Linux删除用户组(groupdel命令)

8.20 Linux将系统用户加入或移除群组(gpasswd命令)

8.21 Linux切换用户的有效群组(newgrp命令)

newgrp命令的底层实现


8.11 Linux修改系统用户信息(usermod命令)

 

前面章节介绍了如何利用 useradd 命令添加用户,但如果不小心添错用户信息,后期如何修改呢?

办法有两个,一个是使用 Vim 文本编辑器手动修改涉及用户信息的相关文件(/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow),另一个方法就是使用本节介绍了 usermod 命令,该命令专门用于修改用户信息。

这里一定要分清 useradd 命令和 usermod 命令的区别,前者用于添加用户,当然,添加用户时可以对用户信息进行定制;后者针对与已存在的用户,使用该命令可以修改它们的信息。


usermod 命令的基本格式如下:

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

选项:

  • -c 用户说明:修改用户的说明信息,即修改 /etc/passwd 文件目标用户信息的第 5 个字段;
  • -d 主目录:修改用户的主目录,即修改 /etc/passwd 文件中目标用户信息的第 6 个字段,需要注意的是,主目录必须写绝对路径;
  • -e 日期:修改用户的失效曰期,格式为 "YYYY-MM-DD",即修改 /etc/shadow 文件目标用户密码信息的第 8 个字段;
  • -g 组名:修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID);
  • -u UID:修改用户的UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID);
  • -G 组名:修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件;
  • -l 用户名:修改用户名称;
  • -L:临时锁定用户(Lock);
  • -U:解锁用户(Unlock),和 -L 对应;
  • -s shell:修改用户的登录 Shell,默认是 /bin/bash。


如果你仔细观察会发现,其实 usermod 命令提供的选项和 useradd 命令的选项相似,因为 usermod 命令就是用来调整使用 useradd 命令添加的用户信息的。

不过,相比 useradd 命令,usermod 命令还多出了几个选项,即 -L 和 -U,作用分别与 passwd 命令的 -l 和-u 相同。需要注意的是,并不是所有的 Linux 发行版都包含这个命令,因此,使用前可以使用 man usermod 命令确定系统是否支持。

此命令对用户的临时锁定,同 passwd 命令一样,都是在 /etc/passwd 文件目标用户的加密密码字段前添加 "!",使密码失效;反之,解锁用户就是将添加的 "!" 去掉。


接下来,给大家分别讲解 usermod 命令几个选项的具体用法。

【例 1】

#锁定用户
[root@localhost ~]# usermod -L lamp
[root@localhost ~]# grep "lamp" /etc/shadow

lamp:!$6$YrPj8g0w$ChRVASybEncU24hkYFqxREH3NnzhAVDJSQLwRwTSbcA2N8UbPD9bBKVQSky xlaMGs/Eg5AQwO.UokOnKqaHFa/:15711:0:99999:7:::
#其实锁定就是在密码字段前加入"!",这时lamp用户就暂时不能登录了

#解锁用户
[root@localhost ~]# usermod -U lamp
[root@localhost ~]# grep "lamp" /etc/shadow

lamp:$6$YrPj8g0w$ChRVASybEncU24hkYFqxREH3NnzhAVDJSQLwRwTSbcA2N8UbPD9bBKVQSkyx laMGs/Eg5AQwO.UokOnKqaHFa/:15711:0:99999:7:::
#取消了密码字段前的 "!"


【例 2】

#把lamp用户加入root组
[root@localhost ~]# usermod -G root lamp
[root@localhost ~]# grep "lamp" /etc/group

root:x:0:lamp
#lamp用户已经加入了root组
lamp:x:501:


【例 3】

#修改用户说明
[root@localhost ~]# usermod -c "test user" lamp 
[root@localhost ~]# grep "lamp" /etc/passwd

lamp:x:501:501:test user:/home/lamp:/bin/bash
#查看一下,用户说明已经被修改了

 

8.12 Linux强制系统用户登陆时修改密码(chage命令)

 

除了 passwd -S 命令可以查看用户的密码信息外,还可以利用 chage 命令,它可以显示更加详细的用户密码信息,并且和 passwd 命令一样,提供了修改用户密码信息的功能。

如果你要修改用户的密码信息,我个人建议,还是直接修改 /etc/shadow 文件更加方便。

首先,我们来看 chage 命令的基本格式:

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

选项:

  • -l:列出用户的详细密码状态;
  • -d 日期:修改 /etc/shadow 文件中指定用户密码信息的第 3 个字段,也就是最后一次修改密码的日期,格式为 YYYY-MM-DD;
  • -m 天数:修改密码最短保留的天数,也就是 /etc/shadow 文件中的第 4 个字段;
  • -M 天数:修改密码的有效期,也就是 /etc/shadow 文件中的第 5 个字段;
  • -W 天数:修改密码到期前的警告天数,也就是 /etc/shadow 文件中的第 6 个字段;
  • -i 天数:修改密码过期后的宽限天数,也就是 /etc/shadow 文件中的第 7 个字段;
  • -E 日期:修改账号失效日期,格式为 YYYY-MM-DD,也就是 /etc/shadow 文件中的第 8 个字段。


【例 1】

#查看一下用户密码状态
[root@localhost ~]# chage -l lamp
Last password change:Jan 06, 2013
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


读者可能会问,既然直接修改用户密码文件更方便,为什么还要讲解 chage 命令呢?因为 chage 命令除了修改密码信息的功能外,还可以强制用户在第一次登录后,必须先修改密码,并利用新密码重新登陆系统,此用户才能正常使用。

例如,我们创建 lamp 用户,并让其首次登陆系统后立即修改密码,执行命令如下:

#创建新用户 lamp
[root@localhost ~]#useradd lamp
#设置用户初始密码为 lamp
[root@localhost ~]#echo "lamp" | passwd --stdin lamp
#通过chage命令设置此账号密码创建的日期为 1970 年 1 月 1 日(0 就表示这一天),这样用户登陆后就必须修改密码
[root@localhost ~]#chage -d 0 lamp


这样修改完 lamp 用户后,我们尝试用 lamp 用户登陆系统(初始密码也是 lamp):

local host login:lamp
Password:     <--输入密码登陆
You are required to change your password immediately (root enforced)
changing password for lamp.     <--有一些提示,就是说明 root 强制你登录后修改密码
(current)UNIX password:
#输入旧密码
New password:
Retype new password:
#输入两次新密码

chage 的这个功能常和 passwd 批量初始化用户密码功能合用&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值