day011-权限管理专题
文章目录
- 1. 对比文件内容
- 1.1 diff
- 1.2 vimdiff
- 2. /etc/skel目录
- 3. 权限基础
- 4. 修改权限
- 4.1 用数字权限修改
- 4.2 用字母修改权限(ugo)
- 4.3 修改文件所有者和用户组
- 5. 文件与目录权限
- 6. permission denied 权限拒绝
- 7. 特殊权限
- 8. 特殊属性
- 9. 思维导图
1. 对比文件内容
1.1 diff
[root@oldboy99-Kylin ~/skx]# diff /etc/passwd passwd
1d0
< root:x:0:0:root:/root:/bin/bash
8d6
< halt:x:7:0:halt:/sbin:/sbin/halt
13d10
< nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
20,22d16
< rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
< dbus:x:81:81:D-Bus:/var/run/dbus:/sbin/nologin
< polkitd:x:996:993:User for polkitd:/:/sbin/nologin
39a34,35
> # 123
> # 孙克旭
1.2 vimdiff
[root@oldboy99-Kylin ~/skx]# vimdiff /etc/passwd passwd
- 推荐使用vimdiff
2. /etc/skel目录
/etc/skel
目录是一个用于存放新用户默认配置文件的模板目录。当使用useradd
命令创建新用户时,系统会自动将该目录下的所有文件和子目录复制到新用户的家目录(如/home/username/
)中,从而为新用户提供统一的初始环境配置。
应用场景:
- 向目录中添加文件/通知,新用户都会收到新文件。
[root@oldboy99-Kylin ~]# cd /etc/skel/
[root@oldboy99-Kylin /etc/skel]# echo "欢迎新用户!" >./info.txt
[root@oldboy99-Kylin /etc/skel]# ll
总用量 4
-rw-r--r-- 1 root root 19 5月 9 17:57 info.ttx
[root@oldboy99-Kylin /etc/skel]# useradd lidao
[root@oldboy99-Kylin /etc/skel]# su - lidao
[lidao@oldboy99-Kylin ~]$ ll
总用量 4
-rw-r--r-- 1 lidao lidao 19 5月 9 17:57 info.txt
[lidao@oldboy99-Kylin ~]$ cat info.txt
欢迎新用户!
- 不小心把某个用户家目录删除了,可以直接复制该目录下的内容。
[root@oldboy99-Kylin ~]# \rm -fr /home/lidao/
[root@oldboy99-Kylin ~]# su - lidao
上一次登录: 五 5月 9 18:56:10 CST 2025 pts/0 上
su: 警告:无法更改到 /home/lidao 目录: 没有那个文件或目录
[lidao@oldboy99-Kylin /root]$ cd
-bash: cd: /home/lidao: 没有那个文件或目录
[lidao@oldboy99-Kylin /root]$ 注销
[root@oldboy99-Kylin ~]# mkdir /home/lidao
[root@oldboy99-Kylin ~]# cp /etc/skel/.bash* /home/lidao/
[root@oldboy99-Kylin ~]# ll /home/lidao/ -a
总用量 12
drwxr-xr-x 2 root root 62 5月 9 18:58 .
drwxr-xr-x 7 root root 71 5月 9 18:57 ..
-rw-r--r-- 1 root root 75 5月 9 18:58 .bash_logout
-rw-r--r-- 1 root root 71 5月 9 18:58 .bash_profile
-rw-r--r-- 1 root root 138 5月 9 18:58 .bashrc
[root@oldboy99-Kylin ~]# ll /home/lidao/ -d
drwxr-xr-x 2 root root 62 5月 9 18:58 /home/lidao/
[root@oldboy99-Kylin ~]# chown lidao:lidao /home/lidao/
[root@oldboy99-Kylin ~]# ll /home/lidao/ -d
drwxr-xr-x 2 lidao lidao 62 5月 9 18:58 /home/lidao/
[root@oldboy99-Kylin ~]# su - lidao
上一次登录: 五 5月 9 18:57:38 CST 2025 pts/0 上
[lidao@oldboy99-Kylin ~]$
3. 权限基础
- Linux系统中的权限管理是核心安全机制,主要通过读(r)、写(w)、执行(x)三种权限控制用户对文件和目录的访问。
权限 | 说明 | 数字表示 |
---|---|---|
r | read,读取权限,查看文件内容权限 | 4 |
w | write,修改权限,是否可以修改文件内容 | 2 |
x | execute,执行权限 | 1 |
- | 没有权限 | 0 |
案例:
- 权限400:r-- — —
- 权限644:rw- r-- r–
- 权限755:rwx r-x r-x
4. 修改权限
- chmod:change mode,修改权限
- chown:change owner,修改文件所有者和用户组
- 都有的选项:-R,递归修改目录下所有文件属性
4.1 用数字权限修改
[root@oldboy99-Kylin ~]# ll sort.txt
-rw-r--r-- 1 root root 476 5月 9 15:47 sort.txt
[root@oldboy99-Kylin ~]# chmod 755 sort.txt
[root@oldboy99-Kylin ~]# ll sort.txt
-rwxr-xr-x 1 root root 476 5月 9 15:47 sort.txt
[root@oldboy99-Kylin ~]# chmod 000 sort.txt
[root@oldboy99-Kylin ~]# ll sort.txt
---------- 1 root root 476 5月 9 15:47 sort.txt
4.2 用字母修改权限(ugo)
[root@oldboy99-Kylin ~]# ll sort.txt
---------- 1 root root 476 5月 9 15:47 sort.txt
[root@oldboy99-Kylin ~]# chmod u=rw,g=r,o=r sort.txt
[root@oldboy99-Kylin ~]# ll sort.txt
-rw-r--r-- 1 root root 476 5月 9 15:47 sort.txt
# 加入可执行权限
[root@oldboy99-Kylin ~]# chmod +x sort.txt
[root@oldboy99-Kylin ~]# ll sort.txt
-rwxr-xr-x 1 root root 476 5月 9 15:47 sort.txt
4.3 修改文件所有者和用户组
[root@oldboy99-Kylin ~]# ll sort.txt
-rwxr-xr-x 1 root root 476 5月 9 15:47 sort.txt
[root@oldboy99-Kylin ~]# chown skx:skx sort.txt
[root@oldboy99-Kylin ~]# ll sort.txt
-rwxr-xr-x 1 skx skx 476 5月 9 15:47 sort.txt
5. 文件与目录权限
权限 | 文件 | 目录 |
---|---|---|
r | 查看文件内容 | 查看目录内容,需要有x权限 |
w | 修改文件,需要有r权限 | 在目录下创建、删除、重命名文件,需要有x权限 |
x | 执行权限(命令、脚本),需要有r权限 | 进入目录 |
- 重点:能否删除文件需要查看该文件目录是否有w权限。
6. permission denied 权限拒绝
- 权限拒绝故障的本质:当前用户对文件或目录缺失了相关权限。
# 用户缺少可读权限
[skx@oldboy99-Kylin ~]$ cat /etc/shadow
cat: /etc/shadow: 权限不够
[skx@oldboy99-Kylin ~]$ ll /etc/shadow
---------- 1 root root 1167 5月 9 18:54 /etc/shadow
###########################################################################
# 目录对其他用户缺少可读权限
[skx@oldboy99-Kylin ~]$ touch /etc/test.txt
touch: 无法创建 '/etc/test.txt': 权限不够
[skx@oldboy99-Kylin ~]$ ll /etc/ -d
drwxr-xr-x 126 root root 8192 5月 9 18:54 /etc/
###########################################################################
# 用户缺少读权限
[skx@oldboy99-Kylin ~]$ tail /var/log/secure
tail: 无法打开'/var/log/secure' 读取数据: 权限不够
[skx@oldboy99-Kylin ~]$ ll /var/log/secure
-rw------- 1 root root 41276 5月 9 20:50 /var/log/secure
- 用户目录权限故障案例:
[root@oldboy99-Kylin ~]# useradd lidao
# 删除用户,但是用户的家目录还存在
[root@oldboy99-Kylin ~]# userdel lidao
[root@oldboy99-Kylin ~]# useradd lidao
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
正在创建信箱文件: 文件已存在
[root@oldboy99-Kylin ~]# su - lidao
su: 警告:无法更改到 /home/lidao 目录: 权限不够
-bash: /home/lidao/.bash_profile: 权限不够
[lidao@oldboy99-Kylin /root]$ 注销
-bash: /home/lidao/.bash_logout: 权限不够
# 家目录的属主和用户组都是数字,说明用户已经失效
[root@oldboy99-Kylin ~]# ll /home/lidao/ -d
drwx------ 2 1007 1007 92 5月 9 20:59 /home/lidao/
# 为家目录重新配置属主和用户组
[root@oldboy99-Kylin ~]# chown lidao:lidao /home/lidao/
[root@oldboy99-Kylin ~]# su - lidao
上一次登录: 五 5月 9 20:59:30 CST 2025 pts/0 上
[lidao@oldboy99-Kylin ~]$
7. 特殊权限
- 有三个特殊权限,未来不要使用
特殊权限 | 说明 |
---|---|
suid setuid | /bin/passwd,运行命令时相当于获取命令的所有者(root)权限 |
sticky粘滞位 | /tmp拥有粘滞位,每个用户只能管理自己创建的文件 |
sgid setgid | 运行这个命令的时候相当于获取命令用户组(root)的权限 |
8. 特殊属性
- a属性:append,只能向文件追加内容
- i属性:immutable,不可改变的;不能对文件做任何修改
# 查看文件的特殊属性
[root@oldboy99-Kylin ~]# lsattr sort.txt
-------------------- sort.txt
# 给文件更改特殊属性
[root@oldboy99-Kylin ~]# chattr +ai sort.txt
[root@oldboy99-Kylin ~]# lsattr sort.txt
----ia-------------- sort.txt
# 目前该文件无敌了
[root@oldboy99-Kylin ~]# \rm -f sort.txt
rm: 无法删除 'sort.txt': 不允许的操作
[root@oldboy99-Kylin ~]# echo "123" >> sort.txt
-bash: sort.txt: 不允许的操作
[root@oldboy99-Kylin ~]# mv sort.txt sort2.txt
mv: 无法将'sort.txt' 移动至'sort2.txt': 不允许的操作
9. 思维导图
【金山文档】 思维导图 https://www.kdocs.cn/l/co3I7PtpTYQX