zoukankan      html  css  js  c++  java
  • Linux chmod 命令 详解

          

           chmod 命令用的很多,但是对这个命令却不是很了解。 在网上搜了一下。 整理如下。

     

    命令格式:

           chmod [-cfvR] [--help] [--version] mode file...

    [root@qs-wg-db2 ~]# chmod --help

    Usage: chmod [OPTION]... MODE[,MODE]... FILE...

      or:  chmod [OPTION]... OCTAL-MODE FILE...

      or:  chmod [OPTION]... --reference=RFILE FILE...

    Change the mode of each FILE to MODE.

     

      -c, --changes           like verbose but report only when a change is made

          --no-preserve-root  do not treat `/' specially (the default)

          --preserve-root     fail to operate recursively on `/'

      -f, --silent, --quiet   suppress most error messages

      -v, --verbose           output a diagnostic for every file processed

          --reference=RFILE   use RFILE's mode instead of MODE values

      -R, --recursive         change files and directories recursively

          --help     display this help and exit

          --version  output version information and exit

     

    Each MODE is of the form `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.

     

    Report bugs to <bug-coreutils@gnu.org>.

    [root@qs-wg-db2 ~]#

     

     

    参数说明:

    1. -cfvR 部分

           -c : 若该档案权限确实已经更改,才显示其更改动作

           -f : 若该档案权限无法被更改也不要显示错误讯息

           -v : 显示权限变更的详细资料

           -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) 这个-R 用的还是很多的。

     

    2.  Mode 部分

    这部分可以分成如下3块: [who] operator [permission]

                                                     `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.

     

    who的含义是:

           u 文件属主权限

           g 同组用户权限

           o 其它用户权限

           a 所有用户(包括以上三种)

    operator的含义:

           + 增加权限

           - 取消权限

           =  唯一设定权限

    permission的含义:

           r 读权限

           w 写权限

           x 执行权限

           表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

           s 文件属主和组id

           l 给文件加锁,使其它用户无法访问

     

    : chmod a+x

     

    3. 示例:

    1)将档案 file1.txt 设为所有人皆可读取 :

           chmod ugo+r file1.txt 

    2)将档案 file1.txt 设为所有人皆可读取 :

           chmod a+r file1.txt 
    3)将档案 file1.txt  file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

           chmod ug+w,o-w file1.txt file2.txt 

    4)将 ex1.py 设定为只有该档案拥有者可以执行 :

           chmod u+x ex1.py 

    5)将目前目录下的所有档案与子目录皆设为任何人可读取 :

           chmod -R a+r * 

    6)收回所有用户的对file1的执行权限

           chmod a-x file1

     

    4. 使用数字来赋权

     

    4.1 先看一下文件的权限格式

     

    [root@qs-wg-db2 scripts]# ll

    total 20

    -rw-r--r-- 1 oracle oinstall    0 Feb 24 00:00 alertlogbyday.log

    -rwxr-xr-x 1 oracle oinstall  430 Feb 20 01:10 alertlogbyday.sh

    -rwxr-xr-x 1 oracle oinstall    7 Feb 24 05:00 del_st_arch.log

    -rwxr-xr-x 1 oracle oinstall  648 Feb 19 00:51 del_st_archive.sh

    -rwxr-xr-x 1 oracle oinstall    9 Feb 24 05:00 max_sn.log

    drwxr-xr-x 3 root   root     4096 Feb 23 23:40 pymonitor

     

    ll的结果返回七列,分别表示如下含义:

    第一栏  [文件属性]

    第二栏  [文件数]

    第三栏  [拥有者]

    第四栏  [所有者群组]

    第五栏  [大小]

    第六栏  [建档日期]

    第七栏  [档名]

     

    我们设置文件的权限就是这是第一栏里的文件属性。

     

    文件属性这块共有十个字段,如:drwxr-xr-x

     

    我们把这10个列分成4块:[d] [rwx] [r-x] [r-x]

    第一块:也就是第一列,用来表示这个文件的类型,有如下值:

           1[ d ]则是目录,我这里的是d,表示的是一个目录

           2[ - ]则是文件;

           3[ l ]则表示为连结档(link file)

           4[ b ]则表示为装置文件里面的可供储存的接口设备;

           5[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。

    第二块:第 24 列,表示文件拥有者的权限。

    第三块:第57 列,表示拥有者同组人的权限。

    第四块:第810列,表示是非拥有者组人的权限。

     

           这些权限均有[rwx] 三个参数表示,而且分别对应不同的位置。每块由3个列组成,每列对应一个值。 [ r ]代表可读、[ w ]代表可写、[ x ]代表可执行。

           举例: 如果拥有者只有只读的权限,那么第24列就是[r--],有读写的权限就是[rw-],有读写和执行的权利就是[rwx].

     

    4.2 使用数字赋权

    4.1 中了解准备知识之后,就可以使用数字赋权了。 每块用户有3个权限[rwx]. 他们对应数字:

           r -->4

           w-->2

           x-->1

     

    使用数字赋权的命令格式如下:

           chmod abc filename

    其中的abc 分别代表3个数字,并且分别对应问个不同的属组 即:

           数字a 对应 24位,表示拥有者的权限。

           数字b 对应 57位,表示同组用户的权限。

           数字c 对应第810位,表示其他组的权限。

     

           rwx 对应421. 那么只读的权限用4表示[r--],读写用64+2)表示[rw-],写加执行用74+2+1)表示[rwx] 只读加执行用54+1)表示[r-x]

     

    示例:

           chmod 755 file1

           chmod 777 file1 <==> chmod a=rwx file 

           chmod 771 file  <==> chmod ug=rwx,o=x file 

     

     

     

     

     

    整理自网络

    ------------------------------------------------------------------------------

    Blog http://blog.csdn.net/tianlesoftware

    网上资源: http://tianlesoftware.download.csdn.net

    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

    DBA1 群:62697716(); DBA2 群:62697977()

    DBA3 群:62697850   DBA 超级群:63306533;    

    聊天 群:40132017

    --加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

    道森Oracle,国内最早、最大的网络语音培训机构,我们提供专业、优质的Oracle技术培训和服务! 我们的官方网站:http://www.daosenoracle.com 官方淘宝店:http://daosenpx.taobao.com/
  • 相关阅读:
    线段树专辑—— pku 1436 Horizontally Visible Segments
    线段树专辑——pku 3667 Hotel
    线段树专辑——hdu 1540 Tunnel Warfare
    线段树专辑—— hdu 1828 Picture
    线段树专辑—— hdu 1542 Atlantis
    线段树专辑 —— pku 2482 Stars in Your Window
    线段树专辑 —— pku 3225 Help with Intervals
    线段树专辑—— hdu 1255 覆盖的面积
    线段树专辑—— hdu 3016 Man Down
    Ajax跨域访问
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3609775.html
Copyright © 2011-2022 走看看