在Linux中,为了方便这些权限,可以使用数字去代替rwx,
具体规则为:r=4,w=2,x=1,-=0;
举例:
“-rwxrwx---”用数字表示就是770;
具体是这样来的:rwx=4+2+1=7;rwx=4+2+1=7; - - -=0+0+0=0.
chmod语法:chmod[-R]xyz文件名(这里的xyz表示数字)
-R选项作用同chown的-R选项,表示级联更改。
(chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。
1.命令格式:
chown [选项]... [所有者][:[组]] 文件...
2.命令功能:
通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员)。
在Linux系统中,root用户,默认一个目录的权限为755,而一个文件的默认权限为644。
如果创建了一个目录,而该目录不想让其他人看到里面的内容,则只需设置成“rwxr-----”(740)即可。
chmod还支持使用rwx的方式来设置权限。
九个属性分别是(1)user 所有者;(2)group 所属组;(3)others非本群组;我们可以使用u、g、o来代表他们三个的属性,此外,a则代表all,即全部。(详细见书p58)
umask命令
在默认情况下,目录权限值为755,普通文件权限值为644,那么这个值是由谁来规定呢?追究其原因就涉及到了这个umask。
umask 语法:umask xxx(这里的xxx代表三个数字)。
查看umask值只要输入:“umask”然后回车。
#0022
umask预设是0022,其代表什么含义?
(1)若用户建立为普通文件,则预设没有可执行权限,只有rw两个权限。最大为666(-rw-rw-rw-).
(2)若用户建立为目录,则预设所有权限均开放,即777(drwxrwxrwx).
umask数值代表的含义为,上边两条规则中的默认值(文件为666;目录为777)需要减掉的权限。
所以目录的权限为
“rwxrwxrwx”-"----w--w-"="rwxr-xr-x",
普通问件的权限为
“rw-rw-rw-”-“----w--w-”="rw-r--r--"。
umask的值是可以自定义的,比如设定的umask值为002,再创建目录或问件时,默认权限分别为:
“rwxrwxrwx”-"-------w-"="rwxrwxr-x"和“rw-rw-rw-”-"-------w-"="rw-rw-r--".
关于umask的计算,有的朋友喜欢把它换算成数字去做减法。比如:(不可用纯数字的算法去算umask)
“rwxrwxrwx”-"----w--w-"=777-022=755.乍一看好像没有任何问题,但是有时候会出错,比如当umask=033时,如果是用单纯的减法,那么文件默认权限为666-033=633。实际上的权限为:
“rw-rw-rw-”-"----wx-wx"="rw-r--r--"(0-x=0,其中0代表“-”)。
umask可以在/etc/bashrc里面更改,预设情况下,root的umask为022,而一般使用者则为002,因为可写的权限非常重要,因此预设会去掉写权限。