用户组群与文件目录权限管理
1.用户账户密码文件
(1)用户账户管理文件-/etc/passwd
/etc/passwd是账户管理文件,可使用cat查看其内容
[root@localhost ~]# cat -n /etc/passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
...
[root@localhost ~]#
passwd文件中的每一行代表一个用户的资料,每行由7个字段的数据组成,字段之间用":"符号分隔。格式如下
账户名称:密码:UID:GID:用户信息:主目录:命令解释器(登录Shell)
(2)用户密码文件-/etc/shadow
/etc/shadow文件用于存储加密后的密码,查看此文件的命令如下
[root@localhost ~]# ls -l /etc/shadow
----------. 1 root root 1296 4月 1 10:52 /etc/shadow
[root@localhost ~]#
查看/etc/passwd文件的权限,命令如下
[root@localhost ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2305 4月 1 10:52 /etc/passwd
[root@localhost ~]#
查看/etc/shadow文件的内容,命令如下
[root@localhost ~]# cat -n /etc/shadow
1 root:$6$0ZyfBk0i7m92J5ow$TG8UwxB.csD4MLgvLtAC8OuA50nuRQX2x9VaHFxZzsbjj19iQim9k0Q0osfazdu6eLg8EaLYuFkhXOChUBrYu.:19796:0:99999:7:::
2 bin:*:19347:0:99999:7:::
3 daemon:*:19347:0:99999:7:::
4 adm:*:19347:0:99999:7:::
5 lp:*:19347:0:99999:7:::
...
[root@localhost ~]#
/etc/shadow和/etc/passwd文件的内容相似,一行代表一个用户的信息,用":"符号分隔为9个字段。格式如下
账户名称:密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志字段
2.用户账号管理
(1)useradd(adduser)命令-建立用户账户
命令格式如下
useradd [选项] 用户名
命令如下
[root@localhost ~]# useradd -u 2000 -d /home/user01 -s /bin/bash -p admin@123 -f -1 user01
[root@localhost ~]# tail -1 /etc/passwd
user01:x:2000:2000::/home/user01:/bin/bash
[root@localhost ~]#
(2)passwd命令-设置用户账户密码
命令格式如下
passwd [选项] 用户名
命令如下
[root@localhost ~]# passwd
更改用户 root 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd user01
更改用户 user01 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#
[root@localhost ~]#
(3)chage命令-修改用户账户口令属性
命令格式如下
chage [选项] 用户名
命令如下
[root@localhost ~]# chage -m 10 -M 90 -W3 user01
[root@localhost ~]# chage -l user01
最近一次密码修改时间 :4月 02, 2024
密码过期时间 :7月 01, 2024
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :10
两次改变密码之间相距的最大天数 :90
在密码过期之前警告的天数 :3
[root@localhost ~]#
(4)usermod-修改用户账户
usermod命令可用于修改用户账户的属性,命令格式如下
usermod [选项] 用户名
命令如下
[root@localhost ~]# id user01
用户id=2000(user01) 组id=2000(user01) 组=2000(user01)
[root@localhost ~]# usermod -G root user01
[root@localhost ~]# id user01
用户id=2000(user01) 组id=2000(user01) 组=2000(user01),0(root)
[root@localhost ~]# usermod -u 5000 user01
[root@localhost ~]# id user01
用户id=5000(user01) 组id=2000(user01) 组=2000(user01),0(root)
[root@localhost ~]# usermod -d /var/user01 -s /bin/tabs user01
[root@localhost ~]# tail -2 /etc/passwd
test:x:2004:2004::/home/test:/bin/bash
user01:x:5000:2000::/var/user01:/bin/tabs
[root@localhost ~]# usermod -d /var/user01 -s /bin/bash user01
[root@localhost ~]#
有时需禁用一个账户而不是删除它,可用passwd或usermod命令实现,也可通过直接修改/etc/passwd或/etc/shadow文件来实现
(1)使用passwd命令
命令如下
[root@localhost ~]# passwd -l user01
锁定用户 user01 的密码 。
passwd: 操作成功
[root@localhost ~]# tail -1 /etc/shadow
user01:!!$6$jHW/hjmm0tSWSLOV$qAqo.td1UWyqSlfimlpczyzNkJelqXH5MyAJfrN2peHDs4cD7rk/.YBx94C9QA21QJ.8zgzqmK7y163qUIJFv0:19815:10:90:3:::
[root@localhost ~]# tail -1 /etc/passwd
user01:x:5000:2000::/var/user01:/bin/bash
[root@localhost ~]# passwd -u user01
解锁用户 user01 的密码。
passwd: 操作成功
[root@localhost ~]#
(2)使用usermod命令
命令如下
[root@localhost ~]# usermod -L user01
[root@localhost ~]# tail -1 /etc/shadow
user01:!$6$jHW/hjmm0tSWSLOV$qAqo.td1UWyqSlfimlpczyzNkJelqXH5MyAJfrN2peHDs4cD7rk/.YBx94C9QA21QJ.8zgzqmK7y163qUIJFv0:19815:10:90:3:::
[root@localhost ~]# tail -1 /etc/passwd
user01:x:5000:2000::/var/user01:/bin/bash
[root@localhost ~]# usermod -U user01
[root@localhost ~]#
(3)直接修改用户账户配置文件
可以在/etc/passwd或/etc/shadow文件中关于用户user01的passwd域的第一个字符前面加上一个 ”*“ ,以达到禁用账户的目的,在需要恢复的时候只要删除字符 ” * “即可
(5)userdel-删除用户账户
命令格式如下
userdel [选项] 用户名
命令如下
[root@localhost ~]# useradd -p 123456 user02
[root@localhost ~]# useradd -p 123456 user03
[root@localhost ~]# ls /home
he test user01 user02 user03 user04
[root@localhost ~]# tail -5 /etc/passwd
user03:x:2002:3001::/home/user03:/bin/bash
user04:x:2003:2003::/home/user04:/bin/bash
test:x:2004:2004::/home/test:/bin/bash
user01:x:5000:2000::/var/user01:/bin/bash
user02:x:5001:5001::/home/user02:/bin/bash
[root@localhost ~]# userdel -r user03
[root@localhost ~]# ls /home
he test user01 user02 user04
[root@localhost ~]#
3.组群管理
(1)理解组群文件
1)/etc/group文件
/etc/group文件用于存放用户的组帐户信息,任何用户都可读,每个组群账户在group文件中占一行,并用“:“符号分隔为4个字段,格式如下
组群名称:组群密码(一般为空,用x占位):GID:组群成员
查看其内容,命令如下
[root@localhost ~]# useradd -p 123456 user03
[root@localhost ~]# usermod -G root user01
[root@localhost ~]# usermod -G bin user02
[root@localhost ~]# usermod -G bin user03
[root@localhost ~]# cat -n /etc/group
1 root:x:0:user01
2 bin:x:1:user02,user03
3 daemon:x:2:
4 sys:x:3:
5 adm:x:4:
6 tty:x:5:
...
[root@localhost ~]# id user02
用户id=5001(user02) 组id=5001(user02) 组=5001(user02),1(bin)
[root@localhost ~]#
2)/etc/gshadow文件
/etc/gshadow文件用于存放组群的加密口令、组管理员等信息,只有root用户可读取,每个组群账户在gshadow文件中占一行,并用“:“符号分隔为4个字段,格式如下
组群名称:加密后的组群密码:组群管理员:组群成员
查看其内容,命