Linux chmod命令

来源:互联网 发布:淘宝背后的老板是谁 编辑:程序博客网 时间:2024/05/26 19:17
linux chmod命令是在日常运维中比较常用的命令之一,对文件管理比较重要,如设置web目录时需设置特定的权限以保证服务器安全。在写完shell脚本后,我们一般需要给这脚本设置权限:chmod a+x shell.sh。有很多人,特别是搞开发的程序员,不懂权限,对程序及目录直接给予chmod -R 777 file,这种最高级的权限,对服务器安全会造成很大的安全隐患,一般不建议这样设置,在线上服务器上,可配置chown来设置web目录权限,如对用户上传图片的目录设置为web执行用户者的权限,对需要用程序操作的web中目录,也同样的设置:chown -R apache:apache web,其它只读的文件或目录,保持root权限即可,这样可以增加服务器安全性

        linux命令 : chmod
        使用权限 : 所有用户
        使用方式 : chmod [-cfvR] [--help] [--version] mode file...
说明 : Linux/Unix 的文件调用权限分为三级 : 文件拥有者[属主]、属组、其他用户。利用 chmod 可以控制文件如何被他人所调用。与chmod相关的命令:chown,umask,
  参数 : mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
u 表示该文件的拥有者[user],
g 表示与该文件的拥有者属于组(group),
o 表示其他用户[other],
a 表示这三者皆是[all](常用)
+ 表示增加权限(常用)
- 表示取消权限(常用)
= 表示唯一设定权限。

r 表示有可读取的权限,
w 表示有可写入的权限,
x 表示有可执行的权限,
X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

  -c : 若该文件权限确实已经更改,才显示其更改动作
  -f : 若该文件权限无法被更改也不要显示错误讯息
  -v : 显示权限变更的详细资料
        -R : 对目前目录下的所有文件与子目录进行相同的权限变更  (常用)
        --help : 显示帮助
        --version : 显示版本

        r=4,
        w=2,
        x=1
  rwx属性则4+2+1=7;
     rw-属性则4+2=6;
  r-x属性则4+1=5。


[root@linuxyw linux]# ll 
total 8
drwxr-xr-x 2 root root 4096 Apr 29 14:50 linuxyw
-rw-r--r-- 1 root root   36 Apr 27 23:40 linuxyw.com
-rw-r--r-- 1 root root    0 Apr 29 14:46 www.linuxyw.com

示例:给文件修改所有为所有人可读权限:
chmod ugo+r linuxyw.com  或  chmod a+r linuxyw.com
给文件修改所有为所有人可执行权限:
chmod a+x linuxyw.com
给文件修改所有为文件属主用户可执行权限:
chmod u+x linuxyw.com
把linuxyw目录下的文件设置为所有人可执行权限:
chmod -R a+x linuxyw/
把linuxyw目录下的文件全部设置为755权限:
chmod -R 755 linuxyw/
取消linux目录下的所有文件可写权限:
chmod -R a-w  linuxyw/


先看一下文件的权限格式先看一下文件的权限格式
[root@linuxyw linux]# ll
total 8
drwxr-xr-x 2 root root 4096 Apr 29 14:50 linuxyw
-rw-r--r-- 1 root root   36 Apr 27 23:40 linuxyw.com
-rw-r--r-- 1 root root    0 Apr 29 14:46 www.linuxyw.com

ll的结果返回七列,分别表示如下含义:
第一栏  [文件属性]
第二栏  [文件数]
第三栏  [拥有者]
第四栏  [所有者群组]
第五栏  [大小]
第六栏  [建档日期]
第七栏  [档名]
我们设置文件的权限就是这是第一栏里的文件属性。
 
文件属性这块共有十个字段,如:drwxr-xr-x
 
我们把这10个列分成4块:[d] [rwx] [r-x] [r-x]
第一块:也就是第一列,用来表示这个文件的类型,有如下值:
       (1)[ d ]则是目录,我这里的是d,表示的是一个目录
       (2)[ - ]则是文件;
       (3)[ l ]则表示为连结档(link file);
       (4)[ b ]则表示为装置文件里面的可供储存的接口设备;
       (5)[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。
第二块:第 2到4 列,表示文件拥有者的权限。
第三块:第5到7 列,表示拥有者同组人的权限。
第四块:第8到10列,表示是非拥有者组人的权限。
     这些权限均有[rwx] 三个参数表示,而且分别对应不同的位置。每块由3个列组成,每列对应一个值。 [ r ]代表可读、[ w ]代表可写、[ x ]代表可执行。
       举例: 如果拥有者只有只读的权限,那么第2到4列就是[r--],有读写的权限就是[rw-],有读写和执行的权利就是[rwx].
使用数字赋权的命令格式如下:
       chmod abc filename
其中的abc 分别代表3个数字,并且分别对应问个不同的属组。 即:
       数字a 对应 第2到4位,表示拥有者的权限。
       数字b 对应 第5到7位,表示同组用户的权限。
       数字c 对应第8到10位,表示其他组的权限。
 
       rwx 对应4,2,1. 那么只读的权限用4表示[r--],读写用6(4+2)表示[rw-],写加执行用7(4+2+1)表示[rwx]。 只读加执行用5(4+1)表示[r-x]。
 
示例:
       chmod 755 file1
       chmod 777 file1 <==> chmod a=rwx file 
       chmod 771 file  <==> chmod ug=rwx,o=x file 
0 0