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

    1,chmod

    指令名称 : chmod 
    使用权限 : 所有使用者 
    使用方式 : chmod [-cfvR] [--help] [--version] mode file... 
    说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 

      root:系统特权用户类,既 UID = 0 的用户 
      owner:拥有文件的用户 
      group:拥有文件的用户组 
      other:不属于上面 3 类的所有其他用户

    参数 : 
      mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中 
      u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 
      + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 
      r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 
      -c : 若该档案权限确实已经更改,才显示其更改动作 
      -f : 若该档案权限无法被更改也不要显示错误讯息 
      -v : 显示权限变更的详细资料 
      -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) 
      --help : 显示辅助说明 
      --version : 显示版本 

    举例:

    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,此外chmod也可以用数字来表示权限如 chmod 777 file 
      语法为:chmod abc file 
      其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 
      r=4,w=2,x=1 
      若要rwx属性则4+2+1=7; 
      若要rw-属性则4+2=6; 
      若要r-x属性则4+1=5。

    7,chmod a=rwx file  和 chmod 777 file  效果相同 chmod ug=rwx,o=x file  和 chmod 771 file  效果相同 

      若用chmod 4755 filename可使此程序具有root的权限.

    PS:此处chmod 4755 filename中的第一位数4表示高位特殊权限
      主要有三种高位特殊权限 S :SUID SGID SBIT
     
     SUID 4 :当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。如果所有者是 root 的话,那么执行人就有超级用户的特权了。(对文件进行操作,eg:修改密码的时候除了root用户可以修改密码,普通用户可以修改密码,原因就是因为采用了SUID,普通用户以root用户的权限来执行修改密码的操作)
     
     SGID 2当一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的特权, 任意存取整个组所能使用的系统资源。若一个目录设置了SGID,则所有被复制到这个目录下的文件, 其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-p (preserve,保留文件属性)的参数,才能保留原来所属的群组设置。(对文件夹进行操作,将SUID的s放到文件所在的用户组X位置上的话,就是SGID)
     
    sticky Bit(SBIT)1这个就是针对other来设置的了,和上面两个一样,只是功能不同而已。eg:最具有代表的就是/tmp目录,任何人都可以在/tmp内增加、修改文件(因为权限全是rwx),但仅有该文件/目录建立者与 root能够删除自己的目录或文件。(当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。)
      对一个文件设置了sticky-bit之后,尽管其他用户有写权限, 也必须由属主执行删除、移动等操作。
      对一个目录设置了sticky-bit之后,存放在该目录的文件仅准许其属主执行删除、 移动等操作。
     
    4 为 SUID = u+s 
    2 为 SGID = g+s 
    1 为 SBIT = o+t 
    当然数字也可以相加,但是必须是符合上面的对文件和目录的限制才会起作用,“-”就是去除某个权限

    chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效,U=用户) 
    chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效,g=组名) 
    chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效

     2,chown

    chown就是修改 第一列内容的 ,chmod是修改 第3,4列内容的。
     

    用来更改某个目录或文件的用户名和用户组的
    chown 用户名:组名 文件路径(可以是就对路径也可以是相对路径)
    例1:

    chown root:root /tmp/tmp1

    就是把tmp下的tmp1的用户名和用户组改成root和root(只修改了tmp1的属组).
    例2:

    chown -R root:root /tmp/tmp1

    就是把tmp下的tmp1下的所有文件的属组都改成root和root。

  • 相关阅读:
    NOIP 2016 回文日期
    USACO Ski Course Design
    USACO Combination Lock
    USACO 利润Profits
    POJ 3368 Frequent values
    USACO Balanced Lineup
    JDOJ 1065 打倒苏联修正主义
    JDOJ 2174 忠诚
    VIJOS-P1514 天才的记忆
    VIJOS-P1423 最佳路线
  • 原文地址:https://www.cnblogs.com/huxinga/p/9946464.html
Copyright © 2011-2022 走看看