Linux权限管理体系

1、权限管理概述

Linux通过rwx3种权限控制系统与保护系统,组成9位权限.

Linux权限体系中还有3位特殊权限,组合起来就是12位权限体系.

Linux这简单的rwx控制整个Linux系统的安全,权限与用户共同组成Linux系统的安全防护体系.

2、linux权限计算

权限
r read是否可读
w write是够可写
x execute 是否可以执行(一般是命令脚本)

Linux下面任何一个文件/目录与用户的关系有3种关系

文件/目录与用户的关系 含义
所有者 这个文件或目录属于某个用户(所有者)。
用户组(家庭) 你自己这个文件或目录属于某个用户组(家庭)。家人。
其他人(陌生人) 这个文件或目录不属于某个用户 也不属于这个用户组。隔壁老王。

人们为了更加方便的使用权限,于是给每个权限字母设置了一个对应的数字,通过数字表示对应的权限。

文件/目录与用户的关系 含义
r 是否可读 4
W 是够可写 2
X 是否可执行 1
- 没有权限 0
7全部权限 6不可以执行 5不可以写 4只能读

chmod命令:change mode使用数字或字母形式修改权限 chown命令:change owner修改文件所有者,用户组。-R循环赋予权限给文件夹下面(慎用)

bash 复制代码
#all可以省略
chmod +x 1.txt
chmod a+x 1.txt

3、linux权限测试

对于文件而言

对于文件来说只有w权限不够,需要有r权限配合

如果文件只有w只能通过追加方式写入,如果vi/vim写入会清空文件内容只留最新的(:wg!)。

x权限也需要有r配合

对于目录而言

目录的r权限查看目录下内容,如果只有r目录下文件的属性信息无法查看提示"?",目录的r权限需要x权限配合.

对于目录x权限表示是否能够进入目录权限,是否能够查看与修改目录下文件的(属性信息)权限。

目录的w权限表示在目录下面创建,删除,重命名文件,只有w还不够,需要?配合

对于目录x权限表示是否能够进入目录权限,是否能够查看与修改目录下文件的(属性信息)权限。

实际应用建议:如果要对某个目录拥有"写"权限,则授予目录rwx即可。

小结

权限 文件 目录
r 是否可以读取文件内容(r) 是否可以查看目录内容,需要x权限配合(rx)
w 是否可以修改文件内容,一般还需要r权限配合.(rw) 是否可以在目录中创建,删除,重命名文件权限,需要rx权限配合(rwx)
x 是否可以执行文件,(命令,脚本),一般还需要r权限配合(rx,rwx) 是否可以进入目录,是否可以访问目录下文件属性(rx,rwx)

4、删除文件需要什么权限

bash 复制代码
mkdir shishu
chown shishuwu:shishuwu shishu#这里不加-R
touch shishu/root{01..10}.txt

问:shishuwu能否删除shishu下面属于root的文件? 解释:删除文件看文件所在目录权限 mode-dir目录755,所有者是shishuwu可以删除

bash 复制代码
[root@nanjing shishuwu]# ll
-rwxrwxrwx 1 root root    0 1月  28 20:39 shishuwu.txt
[root@nanjing shishuwu]# ls -dl /shishuwu/
drwxr-xr-x 3 root root 4096 1月  28 20:39 /shishuwu/
[shishuwu@nanjing ~]$ \rm /shishuwu/shishuwu.txt 
rm: cannot remove '/shishuwu/shishuwu.txt': Permission denied
#因目录为没有w权限 所以无法删除.

小结:

要删除一个文件,不仅需要对该文件所在的目录有读写权限,还需要对文件本身有删除权限。如果文件属于其他用户,即使目录对您有读写权限,您也可能无法删除该文件,除非您是超级用户或文件的所有者。

5、Permission denied故障排查

分析权限拒绝的流程

缕清用户与文件/目录权限关系,你要知晓你对于这个文件或目录拥有什么权限?

分析缺少了什么权限导致的问题?根据操作分析是与文件的权限有关,还是目录的权限有关?

得出结论,缺少了文件xxxx权限,目录的xxxx权限导致的故障.

日常操作 需要的权限
查看文件的内容 文件要有r权限
编辑或修改文件内容 文件要有rw权限
执行脚本/命令 文件需要有rx权限
查看目录内容 目录要有rx权限
创建文件,删除文件 文件所在目录要有rwx权限
重命名 文件所在目录要有rwx权限

6、系统默认权限(了解)

Linux系统通过umask命令控制文件和目录的默认权限.

如何控制的?

普通文件最大权限(缺少执行权限): 666

普通目录最大权限: 777

减去umask的值,文件umask如果某一位是奇数,需要减去umask后这一位上+1

csharp 复制代码
[root@nanjing ]# umask
0022

得出root用户创建文件和目的权限

文件:644;目录:755

sh 复制代码
[root@nanjing test]# touch moren.txt
[root@nanjing test]# mkdir moren
[root@nanjing test]# ll
总用量 4
drwxr-xr-x 2 root root 4096 1月  28 23:17 moren
-rw-r--r-- 1 root root    0 1月  28 23:17 moren.txt

7、Linux权限控制与系统安全(了解)

通过权限控制让系统安全:

  • 搭建网站来说,服务器权限设置
  • 最小化原则:既要保证网站可以正常访问,也要保证网站安全

推荐的网站的权限配置为

  • 文件644 root.root
  • 目录755 root.root

网站在运行的时候需要用户:这个用户不推荐是root,推荐自己/自动创建虚拟用户www/nginx.

1)单台机器

网站运行的时候是www用户,网站程序代码/app/code/www 目录,为例如何设置权限?

sh 复制代码
#01./app/code/www目录
文件和目录所有者 root root(查看权限)
文件和目录权限   644 755
​
#02. /app/code/www/upload 上传目录
#如果不修改,则用户无法上传文件到upload目录下面
文件和目录所有者 www www 
文件和目录权限644 755
​
#03:控制用户上传指定类型的文件
sh、py等执行、破坏、垃圾文件
#04.只能上传,不能执行

2)集群

8、3个特殊权限

特殊权限 判断 含义 例子
set uid=suid 命令u的位置上有个s或S,对应权限4 运行这个命令的时候相当于是这个命令的所有者的权限 passwd
sticky 目录的o的位置上有个t,对应的权限数字1 对于包含sticky权限的目录,每个用户都可以在目录下面创建内容,但是每个用户只能管理自己的文件. /tmp/
set gid =sgid 命令的g的位置上有个s或S,对应的权限数字2 运行这个命令的时候相当于是这个命令的用户组的权限 常用暂无

12位权限对应4位数字,第一位无特殊权限默认是0

sh 复制代码
[root@nanjing ~]# stat /tmp
  文件:"/tmp"
  大小:4096            块:8          IO 块:4096   目录
设备:fd01h/64769d      Inode:8193        硬链接:9
权限:(1777/drwxrwxrwt)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2024-01-28 10:06:38.701953788 +0800
最近更改:2024-01-28 23:15:40.652951330 +0800
最近改动:2024-01-28 23:15:40.652951330 +0800
创建时间:-
[root@nanjing ~]# stat /root/test/moren
  文件:"/root/test/moren"
  大小:4096            块:8          IO 块:4096   目录
设备:fd01h/64769d      Inode:1180625     硬链接:2
权限:(0755/drwxr-xr-x)  Uid:( 1000/shishuwu)   Gid:( 1000/shishuwu)
最近访问:2024-01-28 23:17:17.373062218 +0800
最近更改:2024-01-28 23:17:17.373062218 +0800
最近改动:2024-01-28 23:31:05.345002814 +0800
创建时间:-

9、Linux特殊属性

目的:预防重要文件或命令被修改.

lsattr 查看这种特殊属性

chatrr 修改这种特殊属性

  • a属性 append 只能追加
  • i属性 immutable 不朽的,无法被毁灭的.
css 复制代码
chattr +a oldboy.txt #删除权限-a 
chattr +i oldboy.txt #删除权限-i
相关推荐
JunLan~3 小时前
Rocky Linux 系统安装/部署 Docker
linux·docker·容器
方竞4 小时前
Linux空口抓包方法
linux·空口抓包
海岛日记5 小时前
centos一键卸载docker脚本
linux·docker·centos
AttackingLin6 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
学Linux的语莫7 小时前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible
踏雪Vernon7 小时前
[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式
linux·docker·容器·harmonyos
学Linux的语莫7 小时前
搭建服务器VPN,Linux客户端连接WireGuard,Windows客户端连接WireGuard
linux·运维·服务器
legend_jz7 小时前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
Komorebi.py7 小时前
【Linux】-学习笔记04
linux·笔记·学习