文件权限及特殊权限管理SUID、SGID和Sticky
-
文件权限应用模型;
- 进程的发起者: 进程属主
- 进程的属组: 进程属组
- 进程的属主,是否与文件的属主相同,如果相同,进程则以文件属主的权限来访问文件:否则进程的属主所属的组,其中之一是否与文件的属组相同:如果相同,进程则以文件属组的权限来访问文件:否则进程则以文件的其他用户的权限来访问文件。
- 文件普通权限;
- 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念;
- 所有者: owner,简称“u”,文件或目录的所有者;
- 所属组: group,简称“g”,和文件属主有相同组ID的所有用户;
- 其它组: other,简称“o”,其它用户;
- 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
- 读: read,简称“r”,表示只允许读其内容,而禁止对其做所有的更改操作;
- 写: write,简称“w”,表示可以修改文件的内容;
- 执行: execute,简称“x”,表示可以运行其文件;
- 读写执行针对文件意义;
- r:可以使用内容查看类的命令来显示其相关内容;
- w: 可以使用编辑器修改其内容;
- x:可以将其发起一个进程;
- 读写执行针对目录意义;
- r:可以使用ls命令查看目录内容的文件信息
- w:可以创建、删除文件
- x:可以使用ls -l命令来查看目录内容的文件信息,并且可以使用cd命令切换此目录为工作目录:
- 使用8位数来表示;
- r:4
- w:2
- x:1
- chown:修改文件的属主,仅管理员可执行;
- chmod:修改文件权限;
- chgrp:修改文件的属组,仅管理员可执行;
- umask:
- 文件特殊权限;
- 执行文件SUID:让本来没有相应权限的用户运行这个程序时,可以访问没有权限访问的资源。何用户执行可执行可执行文件时,不再以用户自己的身份达成进程的属主,而是以文件的属主当作进程的属主;
- s: 表示添加suid之前有执行权限;
- S: 表示添加suid之前没有执行权限;
- 设定suid权限:chmod u+s filename;
- 设定suid权限:假设原来的权限为644,chmod 4644;
- 目录文件SGID:具有sgid的目录,用户在此目录创建的文件,新建文件的属组不再是用户的属组,而是目录的属组;
- s: 表示添加suid之前有执行权限;
- S: 表示添加suid之前没有执行权限;
- 设定suid权限:chmod g+s filename;
- 设定suid权限:假设原来的权限为644,chmod 2644;
- 粘滞位sticky:对于公共可写的目录,用户可创建文件,可以删除自己的文件,但无法删除别的用户的文件;
- t: 表示添加suid之前有执行权限;
- T: 表示添加suid之前没有执行权限;
- 设定sticky权限:chmod o+t filename;
- 设定sticky权限:假设原来的权限为644,chmod 1644