- linux 权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户和所属组,通过这样的机制来限制哪些用户或用户组对特定文件进行相应的操作。
- linux 进程都是以某个用户身份运行,进程的权限与该用户的权限一样,用户的权限越大,进程的权限越大
- linux 中文件和文件夹都有至少三种权限,常见的权限如下图
linux 权限授权,默认是授权给三个角色,分别是user、group、other;
- u代表user、group代表组、other代表other
- 每个文件的权限基于ugo 进行设置
- 权限三位一组(RWX),同时需要授权个三个角色,ugo;
- 每个文件拥有一个所属用户和所属组,对应u、g,不属于该文件的所属用户,或所属组使用o来表示
- Chown 属主及属组:
修改某个用户、组对文件夹的属主及属组,用命令chown 实现,案例如下:
- 修改lile 文件夹所属的用户为root,其中-R 参数为表示递归处理所有文件及子目录
chown -R root lile
- 修改lile 文件夹所属的组为root
chown -R :root lile 或者 chgrp -R toot lile
- 修改lile 文件夹所属的用户为root,组也为root
chown -R root:root lile
- chmod 用户及组的权限
修改某个用户、组对文件夹的权限,用命令chmod 实现,其中以代指ugo,-、+、= 代表加入、删除和等于对应的权限,案例如下
- 授权用户对lile 目录拥有RWX 权限
chmod -R u+rwx lile
- 授权组对lile 目录拥有rwx 权限
chmod -R g+rwx lile
- 授权用户、组、其他人对lile 目录拥有rwx权限
chmod -R u+rwx, g+rwx,o+rwx lile
- 撤销用户对lile 目录的w权限
chmod -R u-w lile
- 撤销用户、组、其他人对lile 目录拥有x权限
chmod -R u-w ,g-w ,o-w lile
- 授权用户、组、其他人对lile 目录只有rx权限
chmod -R u=rx,g=rx,o=rx lile
- chmod 二进制权限:
linux 权限默认使用rwx来表示,为了简化,linux权限引用了二进制表示方法,如下
linux 权限可以用rwx 二进制来表示,其中有权限用1表示,没有权限用0表示,二进制显示如下:
rwx=111,r-x=101,rw-=110,r--=100 一次类推转化为十进制,对应进制如下
rwx=111=4+2+1=7,r-x=101=4+1=5,rw-=110=4+2=6,r--=100=4+0+0=4
得出结论:r=4,w=2,x=1
用二进制修改权限案例,默认目录的权限为755
- 授权用户对lile 目录拥有rwx 权限
chmod -R 755 lile
- 授权组对lile 目录的rwx权限
chmod -R 775 lile
- 授权用户、组、其他人对lile 目录的rwx权限
chmod -R 777 lile
- 撤销用户对 lile 的w权限
chmod -R 555 lile
- 撤销用户、组、其他人对lile 的x 权限
chmod -R 644 lile
- 授权用户、组、其他人对lile 只有rx 权限
chmod -R 555 lile
- linux 特殊权限及掩码
每个终端都拥有一个umask属性,umask 可以用来确定新建文件、目录的默认权限,默认系统权限的掩码为022,。在系统中每创建一个文件或目录,文件的权限是666,目录的权限是777,权限对外开放较大,设置了权限掩码之后,默认的文件和目录减去umask值才是真实的文件和目录的权限。
- 对应目录权限为777-022=755;
- 对应文件权限为666-022=644;
执行umask命令可以查看当前默认的掩码,umask -S 023 可以设置默认的权限
在linux权限中,除普通权限外,还有三个特殊权限
权限 | 对文件的影响 | 对目录的影响 |
Suid | 以文件的所属用户身份执行,而非执行文件的用户 | 无 |
Sgid | 以文件所属组身去执行 | 在该目录中创建任意新文件的所属组与该目录的所属组相同 |
Sticky | 无 | 对目录拥有写入权限的用户 尽可以删除其拥有的文件,无法删除其他用户拥有的文件 |
linux中设置特殊权限方法如下:
- 设置suid chmod u+s lile
- 设置sgid chmod g+s lile
- 设置sticky chmod o+t lile
特殊权限可以使用数字方式表示
- SUID = 4
- SGID = 2
- Sticky = 1