Linux下修改文件夹及文件权限,chmod用法
Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。
chmod [options] mode files
mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分开。
语法
chmod [-cfvR] [--help] [--version] mode file...
参数说明
- -c : 若该文件权限确实已经更改,才显示其更改动作
- -f : 若该文件权限无法被更改也不要显示错误讯息
- -v : 显示权限变更的详细资料
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
- –help : 显示辅助说明、输出帮助信息。
- –version : 显示版本
- –reference=filename参照filename的权限来设置权限
- -v,–verbose无论修改是否成功,输出每个文件的信息
mode : 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
其中:
- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。u用户, g组, o其它, a 所有用户(默认)
- + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
- r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
数字形式
实际情况中多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限
r=4,w=2,x=1
- 若要rwx属性则4+2+1=7
- 若要rw-属性则4+2=6
- 若要r-x属性则4+1=5
还可设置第四位,它位于三位权限序列的前面,第四位数字取值是4,2,1,代表意思如下:
- 4,执行时设置用户ID,用于授权给基于文件属主的进程,而不是给创建此进程的用户。
- 2,执行时设置用户组ID,用于授权给基于文件所在组的进程,而不是基于创建此进程的用户。
- 1,设置粘着位。
实例:
chmod u+x file 给file的属主增加执行权限
chmod 751 file 给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
chmod =r file 为所有用户分配读权限
chmod 444 file 同上例
chmod -R u+r directory 递归地给directory目录下所有文件和子目录的属主分配读的权限
chmod 4755 设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限。
常用命令
chmod 777 file
chmod -R 777 *
备注:在服务器使用docker时,一些文件会出现权限问题,此时可以使用chmod命令更改权限,使在容器内获得所有权限,可以让本机与服务器进行文件交互。