day 22
linux的文件管理权限
文件的权限针对三类对象进行定义:
owner 属主,缩写u
group 属组,缩写g
other 其他,缩写o
*u g o 就是可以设定和更改权限的对象
每个文件针对每类访问者定义了三种主要权限:
r:Read 读
w:Write 写
x:eXecute 执行
*这三个就是可以对ugo设定和更改的内容
注意:root账户不受文件权限的读写限制,执行权限受限制(就是r和w没限制,但是x有限制)
(就八进制语言来说,-是0,x是1,w是2,r是4,三个符号一组,算的时候把这些符号代表的数字加起来,一组一组地算)
(三个数字从左到右代表着u g o 各自的权限,算法如上,查询的时候一般查到的是三组符号 )
文件和目录的特殊权限
在Linux系统中,用户对文件或目录的访问权限除了r、w、x三种一般权限外,还有SET UID(SUID)、SET GID(SGID)、Sticky Bit(粘滞位)三种特殊权限,用于对文件或目录进行更加灵活方便的访问控制。
SUID:是为了让一般用户在执行某些程序的时候, 在程序的运行期间, 暂时获得该程序文件所属者 的权限。(实际上是权限较低的用户叫权限高的用户来搞)
*suid仅对二进制文件有效。
*在执行过程中,调用者会暂时获得该文件的所有者权限。
*该权限只在程序执行的过程中有效。
SGID:SGID 可以用在两个方面: ■ 文件: 如 果 SGID 设置在二进制文件上, 则不论用户是谁,在执行该程序的时候,程序的所属组将会变成该程序文件的所属组。 ■ 目录, 如 果 SGID 是设置在 A 目录上, 则在 A 目录内所建立的文件或 目录的所属组, 将会是此 A 目录的所属组。
(就是写在某个文件上的东西会自动归为这个文件所在的组,或者在某个目录上写的东西会变成这个目录的所属组)
SBID:Sticky Bit (SBit) 当前只针对目录有效, 对文件没有效果。其对目录的作用是: ■ 在 具 有 SBit 的目录下, 用户若在 该目录下具有 w 及 x 权限 , 则当用户在该目录下建立文件或目录时, 只有文件拥有者与 root 才有权力删除。 例 如:当 student 用户属于 A 目录的组成员或属于 other ,且拥有 wx 权限时, 可以对该目录内任何人建立的目录或 文件进行“ 删除/重命名/移动” 等操作。 如果将 A 目录加上了 Sticky Bit 权限, 则 student用户只能针对自己建立的 文件或目录进行“ 删除/重命名/移动” 等操作
(给这个目录的删除和写入加了权限,一般用户就不能在这个目录下写入或删除)
为文件或目录添加三种特殊权限同样可以通过chmod命令来实施,使用“u±s”、“g±s”、“o±t”的字符权限模式分别用于 添加和移除SUID、GUID、sticky权限。 若使用数字形式的权限模式,可采用“nnnn”格式的四位八进制数字表示
*就是特殊权限的设置可以用chmod这个指令来设置
其 中:后面三位是一般权限的数字表示,前面第一位则是特殊权限的标志数字:
0——表示不设置特殊权限
1——表示只设置sticky
2——表示只设置GUID权限
3——表示只设置SGID和 sticky权限
4——表示只设置SUID权限
5——表示只设置SUID和sticky权限
6——表示只设置SUID和SGID
7 ——表示同时设置SUID、GUID、sticky3种权限
权限掩码umask
在Linux系统中,当用户创建一个新的文件或目录时,系统都会为新建的文件或目录分配默认的权限,该默认权限与 umask值有关,其具体关系是:
新建文件的默认权限=0666-umask值 新建目录的默认权限=0777-umask值