chmod命令用来修改文件或目录的权限。
在Linux中,一个文件的用户分为三类,分别是所有者(u)、所属组(g)和其它人(o),权限也是三类,分别是读、写、执行(r、w、x)。一个文件在创建时,文件的所有者默认将拥有所有权限。
我们先通过ls -l来看一下Centos安装时默认生成的三个文件的权限。
我们以install.log为例,前面第一个字段为-rw-r--r--,其中第一位为-表示为一个文件,如果d表示是一个目录,l表示是一个链接文件。从第二位开始以三位为一组分成三组,第一组rw-表示所有者的权限,有读写权限,第二组r--表示所属组的权限,只有读权限,第三组r--表示其它用户的权限,只有读权限。
命令名称
chmod
命令原意
change the permissions mode of a file
所在路径
/bin/chmod
执行权限
所有用户
功能描述
修改文件或目录的权限
命令语法
chmod [选项] [{ugoa}{+-=}{rwx}] [文件或目录],u表示文件所有者,g表示文件所属级,o表示其它用户,a表示所有用户,+表示增加权限,-表示减少权限,=表示使用哪些权限。(这种方式用得较少)
chmod [选项] [mode=777] [文件或目录](一般都是用这种方式)
命令选项
-c, --changes:类似 --verbose,但只在有更改时才显示结果
--no-preserve-root:不特殊对待根目录(默认)
--preserve-root:禁止对根目录进行递归操作
-f, --silent, --quiet:去除大部份的错误信息
-v, --verbose:为处理的所有文件显示诊断信息
--reference=参考文件:使用指定参考文件的模式,而非自行指定权限模式
-R, --recursive:以递归方式更改所有的文件及子目录
--help:显示此帮助信息并退出
--version:显示版本信息并退出
其中以-R选项用得最多。
命令实例
1、chmod u+x install.log,给install.log的所有者添加执行权限
2、chmod ugo+x install.log,给所有者、所属组、其它用户都加上执行权限
3、chmod u-w install.log,所有者去除写权限
上面三种都是用rwx字符来表示权限,下面我们来说说用数字该如何表示一个文件的权限。
数字和字符的对应关系:
r=4
w=2
x=1
如上可以得到:7=4+2+1则为rwx,6=4+2+0则为rx-,5=4+0+1则为r-x。
4、chmod 777 install.log,将所有者、所属组和其它人的权限都设置为rwx。
5、chmod 644 install.log,将install.log的权限恢复为默认
6、chmod -R 666 /tmp,将tmp目录和它的所有子目录、文件都设置为读写权限。-R为递归设置。