改变权限位 对于属于你的文件,可以按照自己的需要改变其权限位的设置。在改变文件权限位设置 之前,要仔细地想一想有哪些用户需要访问你的文件(包括你的目录)。可以使用c h m o d命令来 改变文件权限位的设置。这一命令有比较短的绝对模式和长一些的符号模式。我们先来看一 看符号模式。 1 符号模式 chmod命令的一般格式为: chmod [who] operator [permission] filename who的含义是: u 文件属主权限。 g 同组用户权限。 o 其他用户权限。 a 所有用户(文件属主、同组用户及其他用户)。 operator的含义: + 增加权限。 - 取消权限。 = 设定权限。 permission的含义: r 读权限。 w 写权限。 x 执行权限。 s 文件属主和组s e t - I D。 t 粘性位*。 l 给文件加锁,使其他用户无法访问。 u,g,o 针对文件属主、同组用户及其他用户的操作。 *在列文件或目录时,有时会遇到“ t”位。“t”代表了粘性位。如果在一个目录上出现 “t”位,这就意味着该目录中的文件只有其属主才可以删除,即使某个同组用户具有和属主 同等的权限。不过有的系统在这一规则上并不十分严格。 如果在文件列表时看到“ t”,那么这就意味着该脚本或程序在执行时会被放在交换区(虚 存)。不过由于当今的内存价格如此之低,大可不必理会文件的“ t”的使用。 下载 2 chmod命令举例 现在让我们来看一些使用c h m o d命令的例子。假定m y f i l e文件最初具有这样的权限: r w x rwx rwx : 命令结果含义 chmod a-x myfile rw- rw- rw- 收回所有用户的执行权限 chmod og-w myfile rw- r-- r- - 收回同组用户和其他用户的写权限 chmod g+w myfile rw- rw- r- - 赋予同组用户写权限 chmod u+x myfile rwx rw- r- - 赋予文件属主执行权限 chmod go+x myfile rwx rwx r- x 赋予同组用户和其他用户执行权限 当创建m y f i l e文件时,它具有这样的权限: 如果这是我写的一个脚本,我希望能够具有执行权限,并取消其他用户(所有其他用户) 的写权限,可以用: $ chmod u+x o-w myfile 这样,该文件的权限变为: 现在已经使文件属主对myfile文件具有读、写执行的权限,而admin组的用户对该文件具 有读权限。 如果希望某个脚本文件对你自己来说可执行,而且你对该文件的缺省权限很放心,那么 只要使它对你来说具有执行权限即可。 $ chmod u+x dt 3 绝对模式 chmod命令绝对模式的一般形式为: chmod [mode] file 其中mode是一个八进制数。 在绝对模式中,权限部分有着不同的含义。每一个权限位用一个八进制数来代表,如下3所示。 八进制目录/文件权限表示 八进制数含义八进制数含义 0 4 0 0 文件属主可读0 0 1 0 同组用户可执行 0 2 0 0 文件属主可写0 0 0 4 其他用户可读 0 1 0 0 文件属主可执行0 0 0 2 其他用户可写 0 0 4 0 同组用户可读0 0 0 1 其他用户可执行 0 0 2 0 同组用户可写 在设定权限的时候,只需按照表1 - 3查出与文件属主、同组用户和其他用户所具有的权限 相对应的数字,并把它们加起来,就是相应的权限表示。 从表上可以看出,文件属主、同组用户和其他用户分别所能够具有的最大权限值就是7。
再来看看前面举的例子: 相应的权限表示应为6 4 4,它的意思就是: 0 4 0 0 + 0 2 0 0 (文件属主可读、写) = 0 6 0 0 0 0 4 0 (同组用户可读) = 0 0 4 0 0 0 0 4 (其他用户可读) = 0 0 0 4 0 6 4 4 有一个计算八进制权限表示的更好办法,如表1 - 4所示: 表1-4 计算权限值 文件属主同组用户其他用户 r w x r w x r w x 4 + 2 + 1 4 + 2 + 1 4 + 2 + 1 使用表1 - 4,可以更容易地计算出相应的权限值,只要分别针对文件属主、同组用户和其 他用户把相应权限下面的数字加在一起就可以了。 myfile文件具有这样的权限: r w - r - - r - - 4 + 2 4 4 把相应权限位所对应的值加在一起,就是6 4 4。 4 chmod命令的其他例子 以下是一些chmod命令绝对模式的例子: 命令结果含义 chmod 666 rw- rw- rw- 赋予所有用户读和写的权限 chmod 644 rw- r-- r- - 赋予所有文件属主读和写的权限,所有其他用户读权限 chmod 744 rwx r-- r- - 赋予文件属主读、写和执行的权限,所有其他用户读的权限 chmod 664 rw- rw- r- - 赋予文件属主和同组用户读和写的权限,其他用户读权限 chmod 700 rwx --- --- 赋予文件属主读、写和执行的权限 chmod 444 r-- r-- r- - 赋予所有用户读权限 下面举一个例子,假定有一个名为yoa的文件,具有如下权限: 我现在希望使自己对该文件可读、写和执行, admin组用户对该文件只读,可以键入: 如果希望自己对该文件可读、写和执行,对其他所有用户只读,我可以用: 如果希望一次设置目录下所有文件的权限,可以用: chmod 644* 这将使文件属主和同组用户都具有读和写的权限,其他用户只具有读权限。 还可以通过使用- R选项连同子目录下的文件一起设置: chmod -R 664 /usr/local/home/dave/* 这样就可以一次将/ u s r / l o c a l / h o m e / d a v e目录下的所有文件连同各个子目录下的文件的权限 全部设置为文件属主和同组用户可读和写,其他用户只读。使用- R选项一定要谨慎,只有在 需要改变目录树下全部文件权限时才可以使用。 | 动网论坛PHP官方站点 |