1 维护用户账户
1.1 修改用户账户
usermod命令用于修改用户的属性,格式为
usermod [选项] 用户名
Linux系统中的一切都是文件,因此在系统中创建用户也就是修改配置文件的过程。用户的信息保存在/etc/passwd文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用usermod命令修改已经创建的用户信息,诸如用户的UID、基本/扩展用户组、默认终端等。usermod命令的参数以及作用如下表所示。
参 数 | 作 用 |
-c | 填写用户账户的备注信息 |
-d -m | 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 |
-e | 账户的到期时间,格式为YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止其登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 变更默认终端 |
-u | 修改用户的UID |
例子:
创建用户user1,查看用户及其组信息。
[root@rhel7-lzq-01 ~]# useradd user1 [root@rhel7-lzq-01 ~]# id user1 uid=1001(user1) gid=1001(user1) 组=1001(user1)
也可以直接通过tail 查看是否添加用户成功。
编辑
将用户user1加入root用户组中,这样扩展组列表中会出现root用户组的字样,而基本组不会受到影响:
[root@rhel7-lzq-01 ~]# usermod -G root user1 [root@rhel7-lzq-01 ~]# id user1 uid=1001(user1) gid=1001(user1) 组=1001(user1),0(root)
用-g参数修改用户的基本组ID,用-G参数修改用户扩展组ID
[root@rhel7-lzq-01 ~]# id user1 uid=1001(user1) gid=1001(user1) 组=1001(user1),0(root) [root@rhel7-lzq-01 ~]# usermod -u 8888 user1 [root@rhel7-lzq-01 ~]# id user1 uid=8888(user1) gid=1001(user1) 组=1001(user1),0(root)
修改用户user1的主目录为/var/user1,把启动shell修改为/bin/tcsh,完成后恢复到初始状态,操作如下:
[root@rhel7-lzq-01 ~]# tail -n 5 /etc/passwd postfix:x:89:89::/var/spool/postfix:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin lu:x:1000:1000:lu:/home/lu:/bin/bash user1:x:1001:1001::/home/user1:/bin/bash
[root@rhel7-lzq-01 ~]# usermod -d /var/user1 -s /bin/tcsh user1 [root@rhel7-lzq-01 ~]# tail -3 /etc/passwd tcpdump:x:72:72::/:/sbin/nologin lu:x:1000:1000:lu:/home/lu:/bin/bash user1:x:8888:1001::/var/user1:/bin/tcsh [root@rhel7-lzq-01 ~]#
[root@rhel7-lzq-01 ~]# usermod -d /home/user1 -s /bin/bash user1 [root@rhel7-lzq-01 ~]# tail -3 /etc/passwd tcpdump:x:72:72::/:/sbin/nologin lu:x:1000:1000:lu:/home/lu:/bin/bash user1:x:8888:1001::/home/user1:/bin/bash
1.2 禁用和恢复用户账户
有时需要临时禁用一个账户而不删除它。禁用用户账户可以用passwd或usermod命令实现,也可以直接修改/etc/passwd或/etc/shadow文件。
例如,暂时禁用和恢复user1账户,可以使用以下3种方法实现。
(1)使用passwd命令
修改用户口令(密码)信息
[root@rhel7-lzq-01 ~]# passwd user1 更改用户 user1 的密码 。 新的 密码: 无效的密码: 密码少于 8 个字符 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。
锁定用户:
[root@rhel7-lzq-01 ~]# passwd -l user1 锁定用户 user1 的密码 。 passwd: 操作成功
查看锁定情况:
使用passwd命令禁用user1账户,利用tail命令可以看到被锁定的账户密码栏前面会加上“!”
[root@rhel7-lzq-01 ~]# tail -1 /etc/shadow user1:!!$6$CM5uCdgm$bwxneTRd62xKfVzheARIlBfpA3XYADrK8JeRE7SZXU5KvhY35MJXN1FTgvMLBEAKk/5ds7aqWzIcRb7do3EZz.:20017:0:99999:7:::
解除锁定并查看结果:
利用passwd命令的-u选项解除账户锁定,重新启用user1账户
[root@rhel7-lzq-01 ~]# passwd -u user1 解锁用户 user1 的密码。 passwd: 操作成功 [root@rhel7-lzq-01 ~]# tail -1 /etc/shadow user1:$6$CM5uCdgm$bwxneTRd62xKfVzheARIlBfpA3XYADrK8JeRE7SZXU5KvhY35MJXN1FTgvMLBEAKk/5ds7aqWzIcRb7do3EZz.:20017:0:99999:7:::
(2)使用usermod命令
[root@rhel7-lzq-01 ~]# usermod -L user1 [root@rhel7-lzq-01 ~]# tail -1 /etc/shadow user1:!$6$CM5uCdgm$bwxneTRd62xKfVzheARIlBfpA3XYADrK8JeRE7SZXU5KvhY35MJXN1FTgvMLBEAKk/5ds7aqWzIcRb7do3EZz.:20017:0:99999:7::: [root@rhel7-lzq-01 ~]# usermod -U user1 [root@rhel7-lzq-01 ~]# tail -1 /etc/shadow user1:$6$CM5uCdgm$bwxneTRd62xKfVzheARIlBfpA3XYADrK8JeRE7SZXU5KvhY35MJXN1FTgvMLBEAKk/5ds7aqWzIcRb7do3EZz.:20017:0:99999:7:::
(3)直接修改用户账户配置文件
可将/etc/shadow文件中关于user1账户的passwd域的第一个字符前面加上一个“!”,达到禁用账户的目的,在需要恢复的时候只要删除字符“!”即可。
1.3 删除用户账户
要删除一个账户,可以直接删除/etc/passwd和/etc/shadow文件中要删除的用户所对应的行,或者用userdel命令删除。userdel命令的格式为
userdel [-r] 用户名
如果不加-r选项,userdel命令会在系统中所有与账户有关的文件中(例如/etc/passwd,/etc/shadow,/etc/group)将用户的信息全部删除。
如果加-r选项,则在删除用户账户的同时,还将用户主目录以及其下的所有文件和目录全部删除掉。另外,如果用户使用E-mail的话,同时也将/var/spool/mail目录下的用户文件删掉。
[root@rhel7-lzq-01 ~]# userdel -r user1 [root@rhel7-lzq-01 ~]# tail -5 /etc/passwd avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin lu:x:1000:1000:lu:/home/lu:/bin/bash
2 维护组群
2.1 添加组
[root@rhel7-lzq-01 ~]# groupadd testgroup [root@rhel7-lzq-01 ~]# cat /etc/group ... ntp:x:38: stapusr:x:156: stapsys:x:157: stapdev:x:158: tcpdump:x:72: lu:x:1000: testgroup:x:1001:
2.2 删除组
要删除一个组可以用groupdel命令,例如删除刚创建的testgroup组时可用以下命令:
[root@rhel7-lzq-01 ~]# groupdel testgroup [root@rhel7-lzq-01 ~]# tail -5 /etc/group stapusr:x:156: stapsys:x:157: stapdev:x:158: tcpdump:x:72: lu:x:1000:
2.3 修改组群
修改组群的命令是groupmod,其命令格式为
groupmod [选项] 组名
常见的命令选项如下表所示。
选 项 | 说 明 |
-g gid | 把组群的GID改成gid |
-n group-name | 把组群的名称改为group-name |
-o | 强制接受更改的组的GID为重复的号码 |
修改组名
[root@rhel7-lzq-01 ~]# groupmod -n lzq lu [root@rhel7-lzq-01 ~]# tail -5 /etc/group stapusr:x:156: stapsys:x:157: stapdev:x:158: tcpdump:x:72: lzq:x:1000:
3 为组群添加用户
在Red Hat Linux中使用不带任何参数的useradd命令创建用户时,会同时创建一个和用户账户同名的组群,称为主组群。当一个组群中必须包含多个用户时,则需要使用附属组群。在附属组中增加、删除用户都用gpasswd命令。gpasswd命令的格式为
gpasswd [选项] [用户] [组]
只有root用户和组管理员才能够使用这个命令,命令选项如下表所示:
选 项 | 说 明 |
-a | 把用户加入组 |
-d | 把用户从组中删除 |
-r | 取消组的密码 |
-A | 给组指派管理员 |
例子:
要把user1用户加入testgroup组,并指派user1为管理员,可以执行下列命令:
[root@rhel7-lzq-01 ~]# groupadd testgroup [root@rhel7-lzq-01 ~]# gpasswd -a user1 testgroup [root@rhel7-lzq-01 ~]# gpasswd -A user1 testgroup
4 su命令和sudo命令的使用
4.1 su 命令
su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户,比如从root管理员切换至普通用户:
[root@rhel7-lzq-01 ~]# id uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [root@rhel7-lzq-01 ~]# useradd -G testgroup test [root@rhel7-lzq-01 ~]# su - test [test@rhel7-lzq-01 ~]$ id uid=1001(test) gid=1002(test) 组=1002(test),1001(testgroup) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
当从root管理员切换到普通用户时是不需要密码验证的,而从普通用户切换成root管理员就需要进行密码验证。
[test@rhel7-lzq-01 ~]$ su root 密码: [root@rhel7-lzq-01 test]# su - test 上一次登录:一 10月 21 09:41:01 CST 2024pts/0 上 [test@rhel7-lzq-01 ~]$ exit 登出 [root@rhel7-lzq-01 test]#
4.2 sudo
尽管像上面这样使用su命令后,普通用户可以完全切换到root管理员身份来完成相应工作,但这会暴露root管理员的密码,从而增大了系统密码被黑客获取的概率,因此上述操作并不是最安全的方案。
这个命令自学。