Linux 指南/权限
Linux 权限是 Unix 权限。
在你的主目录中,输入
% ls -l
你将会看到你得到了关于你的目录内容的很多详细信息。
每个文件(和目录)都有访问权限,可以通过输入 ls -l 来显示。 另外,ls -lg 会提供关于哪个组拥有文件(在以下示例中为 istrain)的额外信息。
-rwxrw-r-- 1 ccaajim istrain 3210 Aug15 14:25 train.doc
在左边的列中是一个由 10 个符号组成的字符串,由符号 d, r, w, x, -, 和偶尔出现的 s 或 S 组成。 现在对你来说重要的是 r 代表读取,w 代表写入,x 代表执行。 如果存在 d,它将位于字符串的左侧,表示目录;否则字符串将以 - 开头。
剩下的 9 个符号表示权限,或访问权限,被视为三组三个符号。
左边的 3 个符号表示拥有文件(或目录)的用户(以上示例中的 ccaajim)的文件权限。 最右边的 3 个符号表示所有其他人的权限(在 Unix 中称为世界)。 中间的三个符号是赋予用户帐户所属的组的权限。
符号 r、w 等,根据它们是引用简单文件还是目录,有略微不同的含义。
- r(或 -),表示读取权限(或否则),也就是说,存在或不存在读取和复制文件的权限。
- w(或 -),表示写入权限(或否则),也就是说,更改文件的权限(或否则)。
- x(或 -),表示执行权限(或否则),也就是说,在适当情况下执行文件的权限。
- r 允许用户列出目录中的文件;
- w 表示用户可以从目录中删除文件或将文件移动到目录中;
- x 表示访问目录中文件的权利。 这意味着你可以读取目录中的文件,前提是你对单个文件具有读取权限。
因此,为了读取文件,你必须对包含该文件的目录拥有执行权限,因此必须对包含该目录作为子目录的任何目录拥有执行权限,等等,一直到树的顶端。
权限字符串 | 效果 |
---|---|
-rwxrwxrwx | 每个人都可以读取、写入和执行(以及删除)的文件 |
-rw------- | 只有所有者可以读取和写入的文件 - 其他人不能读取或写入,并且没有人拥有执行权限(例如你的邮箱文件) |
粘滞位 由 "t" 标志表示:它表示文件或目录只能由其所有者(或 root)删除。
setuid 位由 "s" 标志表示:它表示应该使用其所有者的用户 ID 执行该文件。
只有文件的拥有者可以使用 chmod 更改文件的权限。 chmod 的选项如下
符号 | 含义 |
---|---|
u | 用户 |
g | 组 |
o | 其他 |
a | 所有(即 u 和 g 和 o) |
r | 读取 |
w | 写入(以及删除) |
x | 执行(以及访问目录) |
+ | 添加权限 |
- | 取消权限 |
例如,要删除文件 allcolours 对组和其他人读取、写入和执行权限,请输入
% chmod go-rwx allcolours
这将保留其他权限不变。
要授予文件 allcolours 对所有人读取和写入权限,请输入
% chmod a+rw allcolours
除了上面概述的语法之外,你还可以使用 chmod 和一个表示用户和预期权限的数字参数。 一个常见的例子是
% chmod 755 myscript.sh
此示例等同于 chmod u=wrx,g=rx,o=rx
它是如何工作的? 好吧,我们称这个数字为三元组,以提醒我们它是一个三位数字符串。 每个数字代表 u、g 和 o 中的其中一个的权限。 我们为每个可能的权限分配一个数字值,如下所示
数字 | 含义 |
---|---|
1 | 执行 |
2 | 写入 |
4 | 读取 |
0 | 清除权限 |
在上面的示例中,数字字符串为 755。 只有一个方式可以得到这个结果(可以这样说)。
位置 | 值 | 组成 |
---|---|---|
u | 7 | 4 + 2 + 1 |
g | 5 | 4 + 0 + 1 |
o | 5 | 4 + 0 + 1 |
这意味着 chmod 755 filename 表示对文件所有者具有读取、写入和执行权限,对组和其他人具有读取和执行权限。
此命令可以获取或设置创建文件的默认权限。