首页 > 代码库 > chmod命令

chmod命令

在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里面更改,预设情况下,rootumask022,而一般使用者则为002,因为可写的权限非常重要,因此预设会去掉写权限


本文出自 “12350027” 博客,谢绝转载!

chmod命令