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