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