一,权限概述
什么是权限
合适的人干合适的事情
权限的作用
根据用户的等级,分配对应的权利,完成不同用户对不同资源的相关操作。
权限的分类
r(4)读w(2)写x(1)执行
对文件(目录)的影响:
读:查看文件内容(查看目录内的相关信息比如ls),写:对内容修改并保存(创建删除文件或目录),执行:执行文件中的程序(进入目录)
linux文件所有者
user(属主):文件的拥有者,换句话说,就是某个用户对这个文件有的权限
group(属组):文件所属的用户组,换句话说,就是某个用户组对这个文件有的权限
other(其它用户):除了上面提到的属主、属组以外的其它用户,对这个文件的权限
root用户权限
god用户,拥有最大的权限,高于一切其它用户,因此设置权限的时候可以不考虑root用户。
二,普通权限管理
查看文件权限
ls -l (简写为ll):查看文件权限命令
文件权限详解
-rw-------. 1 root root 2093 8月 7 18:39 original-ks.cfg
文件权限由三部分构成,每部分都是有rwx构成(如果是-表示没有该权限)
前三个rwx表示了拥有者的权限
中三个rwx表示了拥有组的权限
后三个rwx表示了其他用户的权限
ps:还行有一些特殊权限在x的位置,表示满足特殊权限的同时也满足x权限
【
- 设置特殊权限(
SUID
、SGID
、Sticky
)不会默认设置执行权限x
。- SUID 和 SGID(在文件上)依赖于执行权限
x
才能生效;如果没有x
执行权限,它们不会起作用,显示为大写的S
。- SGID(在目录上)和 Sticky 位 不依赖执行权限
】
设置文件权限(字母)
chmod 【参数】【权限模式】文件名
-R:表示递归设置权限,当为文件夹的时候使用
字母:
chmod 【ugoa+/=/-rwx】文件名
u表示所有者,g表示所有组,o表示其他用户,a表示ugo全部用户,+表示添加权限,-表示去掉权限,=表示覆盖权限
比如chmod o+w a.txt
数字:
chmod 三个数字 文件名
0表示没有权限,4表示读,2表示写,1表示执行,相加就是权限
三个数字分别表示,ugo
比如chmod 741 a.txt
表示设置a.txt文件u(4+2+1=7rwx),g(4+0+0=4r),o(0+0+1=1x)
特殊说明
umask 【权限掩码】(临时设置)
文件的权限通常是由 3 组数字表示的:
r
(读)、w
(写)、x
(执行)。这三种权限分别适用于文件的所有者、组成员和其他用户。
- 文件的默认权限:
666
(rw-rw-rw-,即所有人都有读写权限)- 目录的默认权限:
777
(rwxrwxrwx,即所有人都有读写和执行权限)
umask
的值是从这些默认权限中减去的部分。比如:
- 如果
umask
为0022
,文件的默认权限会从666
减去0022
,即文件的最终权限是644
(rw-r--r--)。- 如果创建的是目录,默认权限会从
777
减去0022
,即目录的最终权限是755
(rwxr-xr-x)。
注意
在linux中如果你要删除一个文件,必须要保证,文件所在的文件夹也要可以被删除(也就是同时具备w权限,简单的说关于删除创建等w的权限看目录)
永久设置
将命令添加到配置文件中,以便在每次登录时自动应用。
~家目录下的配置文件,当前用户生效,etc下的配置文件就是所有用户生效
操作系统/环境 配置文件 示例 Bash ~/.bashrc
或~/.bash_profile
umask 022
Zsh ~/.zshrc
umask 022
Fish ~/.config/fish/config.fish
set -g umask 022
系统范围设置 /etc/profile
或/etc/bashrc
umask 022
(对所有用户有效)Debian/Ubuntu /etc/login.defs
在文件中找到 UMASK
行,修改为022
三,属主与属组设置
属主与属组的概述
属主:所属的用户,文档的所有者
属组:所属的用户组,就是这个组的所有用户
修改文件属主与属组
chown 【-R】新文件拥有者【:新文件拥有组】 文件路径
-R:递归
chgrp 【参数】组名 文件或目录
-R
:递归地更改指定目录及其所有子目录和文件的组所有权。-v
:显示详细信息,报告每个文件的更改情况。-c
:类似于-v
,但仅在发生更改时报告。
四,特殊权限
高级权限概述
linux文件的三种特殊权限:suid权限,sgid权限,sticky权限;其中suid权限作用于属主,sgid权限作用于属组,sticky权限作用于other其他上。
冒险位SUID
使用户以文件所有者的身份执行该文件,而不是以执行者自身的身份执行。(可执行文件)
chmod u+s filename或者用数字4表示【chmod 4xxx 文件】
强制位SGID
- 文件:使用户以文件所属组的权限执行该文件。
- 目录:新创建的文件/子目录将继承父目录的组。
chmod g+s filename
或chmod g+s directory或用数字2表示【chmod 2xxx 文件/目录】
粘黏位Sticky
只允许文件所有者、目录所有者或超级用户删除/修改文件,其他用户即使有写权限也无法删除/修改不属于自己的文件。
chmod +t directory或者用数字1表示【chmod 1xxx 文件/目录】
五,acl权限控制
acl概述
- 用户级别的权限设置:除了文件所有者、组和其他用户之外,还可以为特定用户设置访问权限。
- 组级别的权限设置:可以为特定组设置与文件或目录相关的权限。
- 继承权限:ACL 允许设置继承权限,使得目录中的新文件和子目录自动继承父目录的 ACL 设置。
查看acl权限
getfacl 文件名
设置acl权限
setfacl 选项 参数 文件名/目录名
- 选项
- -m:修改现有的acl设置
- -b:清除文件或目录的所有 ACL 权限,恢复到默认权限
- -x:清除文件或目录的所有 ACL 权限,恢复到默认权限。
- -d:设置默认 ACL(适用于目录),新创建的文件和子目录将继承这些权限。
- -R:递归地应用 ACL 设置到目录及其子目录和文件。
- --set-file=文件名:从文件中读取 ACL 设置并应用到指定文件或目录。
- 参数【用户u/组g/其他o:对应的名字:权限】如果是其它就不用指定对应的名字
[root@ly 桌面]# getfacl a
# file: a
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@ly 桌面]# setfacl -m u:ly:rwx a
[root@ly 桌面]# getfacl a
# file: a
# owner: root
# group: root
user::rw-
user:ly:rwx
group::r--
mask::rwx
other::r--
[root@ly 桌面]# ll
总用量 8
-rw-rwxr--+ 1 root root 39 10月 19 23:29 a
-rw-r--r--. 1 root root 713 10月 19 23:07 a.zip