Linux 与 Unix 是多用户操作系统, 所以文件的权限与所有权的实现就显得很有必要; 每个文件主要与三组权限打交道, 分别是用户(user), 用户组(group), 其他用户(other)
用户 (u) 是文件的所有者, 通常有所有的文件的操作权限
用户组 (g) 是多个用户的集合, 可能有文件的部分访问权, 相当于各用户之间的共享文件
其他 (o) 是指文件所有者和用户组成员之外的任何人
使用 ls -l 可以显示出当前目录下的文件类型, 权限, 所有者以及组在内的多方面信息;
第一列含义为:-(filetype)---(user)---(group)---(other), 每组权限对应一个三位的二进制数, 第一位表示拥有读 (r) 的权限, 第二位表示有写 (w) 的权限, 第三位表示有执行 (x) 的权限(若该文件可执行); 在拥有相应的权限时相应的位被置为 1(否则为 0), 表示当前对象拥有此权限
1: 用户可读写执行:-rwx------, 通常来说, 对于数据文件, 用户的权限为 rw-, 可执行文件与脚本的权限为 rwx; 对于用户来说, 还拥有一个叫做 setuid 的特殊权限, 他能出现权限 x 的位置, setuid(S)权限允许可执行文件以其拥有者的权限来执行, 即使该可执行文件是由其他用户运行的, 若被赋予权限则序列为:-rwS------
2: 用户组读写可执行:----rwx---, 对于用户组来说, 其拥有一个被称作 setgid(S)的特殊权限它允许我们使用任意一个有效用户组来运行该文件, 前提是该组需要与该文件的所需组权限相同,,----rwS---
3: 其他用户:-------rwx
一: 使用 chmod(change mode)设置文件权限:
--x=1;-w-=2;r--=4; r-x=5; rw-=6;rwx=7;
假如设置权限: rwxrw-r--
- chomd 764 filepath
- chmod u=rwx, g=rw, o=r filepath; chmod ugo=r,g=w filepath
为文件增添权限或删除权限:
1: 增添可执行权限给用户与用户组(+):
chmod u+x, g+x filepath
2: 删除 (-) 用户组的可执行权限:
chmod g-x fielpath
chmod g=u-r filepath 意为设置用户组的权限为与用户相同的权限, 但删除 r 权限
3: 给所有 (a) 的权限类别 (即用户, 用户组, 其他用户) 添加 / 删除可执行权限
chmod a+x filepath
二: 更改所有权(change owner)
1: 使用 chown 更改文件的所有权, 一般用户没有权限来改变别人的文件的拥有者, 也没有权限可以将自己的文件的拥有者改设为别人, 只有系统管理者 (root) 才有这样的权限: chown user:group filepath (user , group 为新的用户与用户组)
2: 给目录设置粘滞位(sticky bit)
粘滞位: 目录有一个叫做粘滞位的特殊权限, 如果某目录设置了粘滞位, 则只有创建该目录的用户才能删除目录中的文件. 其出现在其他用户组中的执行权限位置. 当设置执行权限时 -------rwt, 当没有设置执行权限时 -------rwT,chmod a+t dirname
3: 递归方式设置所有权和文件权限, 使用选项 - R;
- chmod 764 . -R
- chown user:group . -R
补: 文件类型:- 普通文件 d 目录(directory); c 字符设备(char);b 块设备(block);l 符号链接(link)s 套接字(socket)p 管道(pipe)
posted on 2019-11-10 13:47 斤斤计较了 阅读(...) 评论(...) 编辑 收藏
来源: https://www.cnblogs.com/hongbo-tao/p/11812139.html