linux chmod命令参数及用法详解-文件文件夹权限设定命令

时间:2021-10-29 16:42:21
chmod

  1.作用
  chmod命令是非常重要的,用于改变文件或目录的访问权限,用户可以用它控制文件或
目录的访问权限,使用权限是超级用户。

  2.格式
  chmod命令有两种用法。一种是包含字母和操作符表达式的字符设定法(相对权限设定
);另一种是包含数字的数字设定法(绝对权限设定)。

  (1)字符设定法
  chmod [who] [+ | - | =] [mode] 文件名

  ◆操作对象who可以是下述字母中的任一个或它们的组合
  u:表示用户,即文件或目录的所有者。
  g:表示同组用户,即与文件属主有相同组ID的所有用户。
  o:表示其它用户。
  a:表示所有用户,它是系统默认值。

  ◆操作符号
  +:添加某个权限。
  -:取消某个权限。
  =:赋予给定权限,并取消其它所有权限(如果有的话)。

  ◆设置mode的权限可用下述字母的任意组合
  r:可读。
  w:可写。
  x:可执行。
  X:只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
  s:文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的
用户ID位,“g+s”设置组ID位。
  t:保存程序的文本到交换设备上。
  u:与文件属主拥有一样的权限。
  g:与和文件属主同组的用户拥有一样的权限。
  o:与其它用户拥有一样的权限。
  文件名:以空格分开的要改变权限的文件列表,支持通配符。
  一个命令行中可以给出多个权限方式,其间用逗号隔开。

  (2) 数字设定法
  数字设定法的一般形式为: chmod[mode] 文件名

  数字属性的格式应为3个0到7的八进制数,其顺序是(u)(g)(o)文件名,以空格分开的要
改变权限的文件列表,支持通配符。

   数字表示的权限的含义如下:0001为所有者的执行权限;0002为所有者的写权限;
0004为所有者的读权限;0010为组的执行权限;0020为组的写权限;0040为组的读权限;
0100为其他人的执行权限;0200为其他人的写权限;0400为其他人的读权限;1000为粘贴位
置位;2000表示假如这个文件是可执行文件,则为组ID为位置位,否则其中文件锁定位置位
;4000表示假如这个文件是可执行文件,则为用户ID为位置位。


应用实例:
A例:如果这是我写的一个脚本,我希望能够具有执行权限,并取消其他用户(所有其他用户)的写权限,可以用:
# chmod u+x o-w myfile

B例:如果希望某个脚本文件对你自己来说可执行,而且你对该文件的缺省权限很放心,那么只要使它对你来说具有执行权限即可。
#chmod u+x dt

如果希望一次设置目录下所有文件的权限,可以用:
#chmod 644*

如果希望自己对该文件可读、写和执行,对其他所有用户只读,我可以用:
#chmod 744 myfile

还可以通过使用- R选项连同子目录下的文件一起设置: -R是递归
chmod -R 664 /usr/local/home/dave/*


注:此命令经常用在shell和awk脚本
编写shell和awk脚本,统计apache指定日期的IP访问量
          #vi /51ou/ak2
          #!/bin/awk -f
          BEGIN{
          printf "date:"
          getline d<"-"      
          }
          {
          if(substr($4,2,11)=d)
           {
           print $1
           }
          }

          #vi /shell/sh2
          #!/bin/bash
          /shell/ak2 /var/log/httpd/access_log|sort|uniq|wc -l
          #chmod a+x /51ou/ak2
          #chmod a+x /51ou/sh2

更多Linux命令: http://www.51ou.com/browse/linuxml/index.html