4.3.1 chmod与umask命令
1.chmod(change mode)命令语法:chmod [-cfvR] [--help] [--version] [u|g|o|a][+|-|=][mode] 文件或目录功能:改变文件或目录的读写和执行权限。有符号法和八进制数字法。
(1)符号法符号法的一般形式为:chmod [u|g|o|a][+|-|=][r|w|x] 文件或目录选项及其功能见表4-37。
(2)八进制数字法八进制数字法的一般形式为:chmod [mode] 文件或目录其中mode用三位八进制数作选项,每位数字分别表示用户本人(u)、同组用户(g)、其他用户(o)的权限,0(000)表示没有权限,1(001)表示可执行权限,2(010)表示可写权限,4(100)表示可读权限,然后将他们相加,可以得到一位八进制数。
表4-37 chmod命令的各选项及其功能选项
功能
-a(all)
表示所有用户
-g(group)
表示与该文件的拥有者属于同一个组群(group)的用户
-o(other)
表示其他用户
-u(user)
表示用户本人
+
给指定用户增加许可权限
-
取消指定用户的许可权限
=
给指定用户指定许可权限
-r(read)
读权限,表示可以复制该文件或目录的内容
-w(write)
写权限,表示可以修改该文件或目录的内容
-x(execute)
执行权限,表示可以执行该文件或进入目录
-c
若该文件权限确实已经更改,才显示其更改动作
-f
若该文件权限无法被更改也不要显示错误信息
-v
显示权限变更的详细信息
-R
对当前目录中所有文件及其子目录进行相同的权限变更(即以递回的方式逐个变更)
--help
显示辅助说明
--version
显示版本
实例4-23 使用chmod命令
下面给出了chmod命令的一些其他常用的方法及其说明:
(1)符号法例1:#chmod a+rx exam1.txt(让所有用户可以读和执行文件exam1.txt)
例2:#chmod go-rx exam1.txt(取消同组和其他用户的读和执行文件exam1.txt的权限)
例3:#chmod ugo+r exam1.txt(将文件exam1.txt 设为所有人皆可读取)
例4:#chmod a+r exam1.txt(将文件exam1.txt 设为所有人皆可读取)
例5:#chmod ug+w,o-w exam1.txt exam2.txt(将文件exam1.txt 与exam2.txt 设为该文件拥有者和与其同组用户可写入,但其他以外的人则不可写入)
例6:#chmod u+x exam1.py(将exam1.py 设定为只有该文件拥有者可以执行)
例7:#chmod -R a+r *(将目前目录下的所有文件与子目录设为任何人可读取)
(2)八进制数字法
chmod也可以用数字来表示权限语法:#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。
例1:#chmod 741 exam1.txt(让本人可读可写可执行、同组用户可读、其他用户可执行文件exam1.txt)
例2:#chmod a=rwx file1和#chmod 777 file1效果相同例3:#chmod ug=rwx,o=x file1和chmod 771 file1效果相同
2.umask命令语法:umask [-S] [权限掩码]
功能:指定在创建文件或目录时预设的权限掩码。
权限掩码:如果带-S选项,那么用字符法来表示权限掩码;如果不带-S选项,那么用八进制法来表示权限掩码,将现有的存取权限(文件是666,目录是777,文件不能设x位,目录可设x位)减掉权限掩码后,即可得到新建文件或目录的权限。
当在Linux系统中创建一个文件或目录时,会有一个默认权限,这个默认权限是根据umask得来的。umask设置了用户创建文件或目录的默认权限,它和chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件的权限码。
新创建文件的权限是666-umask,出于安全考虑,系统不允许为新创建的文件赋予执行权限,必须在创建新文件后用chmod命令增加执行权限。
新创建目录的权限是777-umask。
 注意:
文件用八进制的基数666,即无x位;目录用八进制的基数777。
chmod设哪个位,哪个位就有权限,而umask设哪个位,哪个位就没权限。
4.3.3 chown命令语法:chown user[:group] filename 或 chown -R user[:group] directory
功能:chown(change owner)命令改变文件或目录的所有权。Linux是多用户多任务操作系统,所有的文件皆有拥有者。利用 chown可以将文件的拥有者加以改变。一般来说,这个命令由超级用户使用,一般用户没有权限改变别人文件的拥有者,该命令的选项及其功能见表4-38。
表4-38 chown命令的各选项及其功能选项
功能
-c
文件属主改变时显示说明
-R/r
改变目录下的文件及其子目录下所有文件的属主