linux命令之chmod修改权限
chmod
修改文件权限的linux命令chmod(全称:change mode)控制⽤户对⽂件的权限的命令
Linux/Unix 的⽂件调⽤权限分为三级 : ⽂件所有者(Owner)、⽤户组(Group)、其它⽤户(Other Users)。
只有⽂件所有者和超级⽤户 [ root ] 可以修改⽂件或⽬录的权限。可以使⽤绝对模式(⼋进制数字模式),符号模式指定⽂件的权限。
使⽤权限 : 所有使⽤者
语法
chmod [-cfvR] [--help] [--version]
参数说明
mode : 权限设定字串,格式如下 :
[][[+-=][rwxX]...][,...]
其中:
u 表⽰该⽂件的拥有者,g 表⽰与该⽂件的拥有者属于同⼀个体(group)者,o 表⽰其他以外的⼈,a 表⽰这三者皆是。
+ 表⽰增加权限、- 表⽰取消权限、= 表⽰唯⼀设定权限。
r 表⽰可读取,w 表⽰可写⼊,x 表⽰可执⾏,X 表⽰只有当该⽂件是个⼦⽬录或者该⽂件已经被设定过为可执⾏。
其他参数说明:
-c : 若该⽂件权限确实已经更改,才显⽰其更改动作
-f : 若该⽂件权限⽆法被更改也不要显⽰错误讯息
-v : 显⽰权限变更的详细资料
-R : 对⽬前⽬录下的所有⽂件与⼦⽬录进⾏相同的权限变更(即以递归的⽅式逐个变更)
符号模式
使⽤符号模式可以设置多个项⽬:who(⽤户类型),operator(操作符)和 permission(权限),每个项⽬的设置可以⽤逗号隔开。命令chmod 将修改 who 指定的⽤户类型对⽂件的访问权限,⽤户类型由⼀个或者多个字母在 who 的位置来说明,如 who 的符号模式表所⽰: who⽤户类型说明
u user⽂件所有者
g group⽂件所有者所在组
o others所有其他⽤户
a all所⽤⽤户, 相当于ugo
operator 的符号模式表:
Operator说明
+为指定的⽤户类型增加权限
-去除指定⽤户类型的权限
=设置指定⽤户权限的设置,即将⽤户类型的所有权限重新设置
permission 的符号模式表:
模式名字说明
r读设置为可读权限
w写设置为可写权限
x执⾏权限设置为可执⾏权限
X特殊执⾏权限只有当⽂件为⽬录⽂件,或者其他类型的⽤户有可执⾏权限时,才将⽂件权限设置可执⾏
s setuid/gid当⽂件被执⾏时,根据who参数指定的⽤户类型设置⽂件的setuid或者setgid权限
t粘贴位设置粘贴位,只有超级⽤户可以设置该位,只有⽂件所有者u可以使⽤该位
模式名字说明
⼋进制语法
chmod命令可以使⽤⼋进制数来指定权限。⽂件或⽬录的权限位是由9个权限位来控制,每三位为⼀组,它们分别是⽂件所有者(User)的读、写、执⾏,⽤户组(Group)的读、写、执⾏以及其它⽤户(Other)的读、写、执⾏。历史上,⽂件权限被放在⼀个⽐特掩码中,掩码中指定的⽐特位设为1,⽤来说明⼀个类具有相应的优先级。
#权限rwx⼆进制
7读 + 写 + 执⾏rwx111
6读 + 写rw-110
5读 + 执⾏r-x101
4只读r--100
3写 + 执⾏-wx011
2只写-w-010
1只执⾏--x001
0⽆---000
例如, 765 将这样解释:
所有者的权限⽤数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
⽤户组的权限⽤数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
其它⽤户的权限数字表达:其它⽤户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。
案例
将⽂件 设为所有⼈皆可读取 :
chmod ugo+
将⽂件 设为所有⼈皆可读取 :
chmod a+
将⽂件 与 设为该⽂件拥有者,与其所属同⼀个体者可写⼊,但其他以外的⼈则不可写⼊ :
chmod ug+w,
为 ex1.py ⽂件拥有者增加可执⾏权限:
chmod u+x ex1.py
将⽬前⽬录下的所有⽂件与⼦⽬录皆设为任何⼈可读取 :
chmod -R a+r *
此外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。
chmod a=rwx file
和
chmod 777 file
效果相同
chmod ug=rwx,o=x file
和
chmod 771 file
效果相同
若⽤ chmod 4755 filename 可使此程序具有 root 的权限。
更多说明
命令说明
chmod a+r *file*给file的所有⽤户增加读权限
chmod a-x *file*删除file的所有⽤户的执⾏权限
chmod a+rw *file*给file的所有⽤户增加读写权限
chmod +rwx *file*给file的所有⽤户增加读写执⾏权限
chmod u=rw,go= *file*对file的所有者设置读写权限,清空该⽤户组和其他⽤户对file的所有权限(空格代表⽆权限)chmod -R u+r,go-r *docs*对⽬录docs和其⼦⽬录层次结构中的所有⽂件给⽤户增加读权限,⽽对⽤户组和其他⽤户删除读权限chmod 664 *file*对file的所有者和⽤户组设置读写权限, 为其其他⽤户
设置读权限
chmod 0755 *file*相当于u=rwx (4+2+1),go=rx (4+1 & 4+1)。0没有特殊模式。
chmod 4755 *file*4设置了设置位,剩下的相当于 u=rwx (4+2+1),go=rx (4+1 & 4+1)。
find path/ -type d -exec chmod a-x {} \;删除可执⾏权限对path/以及其所有的⽬录(不包括⽂件)的所有⽤户,使⽤'-type f'匹配⽂件
find path/ -type d -exec chmod a+x {} \;允许所有⽤户浏览或通过⽬录path/
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论