您的位置:首页 > 运维架构 > Linux

Linux命令之chmod

2017-04-20 08:41 302 查看

RTFM系列之chmod

Synopsis

$chmod [option]... mode[.mode]... file...
$chmod [option]... octal-mode file...
$chmod [option]... --reference=RFILE file...


Description

chmod 命令改变每一个文件的 file mode bits ,看到这,我想起了C++的流状态:badbit,failbit,eofbit 和goodbit,这里的bits也是类似的,表示了文件的一些属性。我们既可以用各种符号来改变这些bits,就像
ls -a
一样,也可以不使用符号,而是用一个八进制数来改变,这里不涉及,如有兴趣请参考文末链接。

mode格式

用符号形式进行更改的格式:chmod [ugoa…][[-+=][perms…]…] file

解释:

ugoa

u是指user,文件拥有者

g是指group,其它在文件的group里的用户

o是指other,其它不在文件的group里的用户

a是指all,即所有用户

perms是指permission,可以是0或者rwxXst 里面的字母

r,read

w,write

x,可执行,可查找(对于目录)

X,只有当文件是一个目录或者已经对某用户可执行,这个文件才能可执行或可查找

t,删除文件permission

或者也可以直接用[ugo]里面的一个,来获得对相应对象的permission,例如chmod +u a.sh,那么a.sh就有了user用户应该有的permission

[-+=]

+
将特定的bit添加到file mode bits,我们对文件的permission进行操作,其实就是file mode bits 的增删和修改

-
上面是添加,这里就是删除啦

=
+
一样可以添加bit但是没有被说明的bit会被删除,例如=r,wxXst将会被删除,但不是所有的bit都会被删,except that a directory’s unmentioned set user and group ID bits are not affected.

如果相对不同的用户设置不同的permission,可以用逗号隔开,这样a+r,u+w

总之,mode的格式是这样的

'[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'


option格式

-c,–changes//每次改变file mode bits时显示改变操作

-f, –silent,–quiet//抑制大多数错误信息的显示

-v,–verbose//输出文件信息

–reference=RFILE//采用RFILE的mode

R, –recursive//递归地改变mode

Note

chmod 不能改变符号链接的permission

参考资料:这里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux