一、命令介绍
chmod 命令,是Linux管理员最常用的命令之一,用于修改文件或目录的访问权限。
Linux系统中,每一个文件都有文件所有者和所属群组,并且规定文件的所有者,所属群组,以及其他人队问价有读取(r), 可写(w),执行(x)等权限,
亦可分别用数字4、2、1 表示。
文件的可读、可写、可执行权限可以简写为rwx,也可以使用数字7表示(4+2+1)。
权限设定字符串格式如下:
[ugoa...][[+-=][rwxX]...][,...]
其中
- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
- + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
- r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
参数
- -c : 若该文件权限确实已经更改,才显示其更改动作
- -f : 若该文件权限无法被更改也不要显示错误讯息
- -v : 显示权限变更的详细资料
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
----------------------------------------------------------------------------------------------------
二、实例
使用chmod命令修改文件 1 访问权限,使所有者,群组,以及其他人都有rwx权限。
chmod ugo+rwx 1
chmod 777 1
如果我们想要所有人都具有文件2的rwx权限,可以使用
chmod a+rwx 2
我们想要在文件2现有权限的基础上修改文件所有者及所属群组具有rwx权限,而其他人只具有r权限。
chmod ug=rwx o-wx 2
我们新建一个文件3,使其具有同文件2相同的权限
chmod 774 3
我们新建一个目录new,并在目录中新建文件1 和 文件2 .如果要修改new目录和目录中的所有文件权限为777,这时我们九需要使用 R参数。
chmod -Rf 777 new
--------------------------------------------------------------------------------------------------------------------------
三、总结
chmod命令使Linux管理员最常用的命令之一,可见他对于Linux系统管理相当重要。
目录的读写权限和文件的读写权限区别很明显,前者是可以列出目录下的文件和创建新文件,后者就是读取文件的内容和向文件写入。对于执行权限的区别我的理解是
如果对目录没有执行权限,但是对目录下的文件有执行权限,那么相当于对该文件也没有权限
如果对目录有执行权限,但是目录下的文件没有执行权限,相当于对该文件也没有权限
所以要执行一个目录下的文件,必须目录和文件都具有执行权限。
文章不当之处,望指正。