shell命令:文件权限和chown、chown

看以下文件:

-rw-r--r--   1    root   root      176   Jan  6  2007 .bashrc

最前面10个字符表示文件的信息:

第1个字符是文件类型:

  • d:目录;
  • -:文件;
  • l:连结档(link file);
  • b:装置文件里面的可供储存的接口设备(可随机存取装置);
  • c:装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

第2、3、4个字符表示文件所有者具有的权限

第5、6、7个字符表示文件所属组其他用户具有的权限

第8、9、10个字符表示其他组用户具有的文件操作权限

r表示可读,w表示可写,x表示可执行。

chmod命令修改文件权限。

其中rwx分别用数字4、2、1表示,如rw-为数字6,--x为数字1,rwx为数字7。


chgrp命令修改文件所属组。

chown命令修改文件所属用户,或者直接修改组和用户:

chown 用户:组 文件名

文件夹权限

r决定着此文件夹下文件(或目录,下同)是否能被列出(如是否能在该文件夹下成功执行ls命令)
w决定着是否可以在此文件夹下创建(或删除或重命名,下同)新文件
x决定着是否能够进入这个文件夹

注意:文件夹的rw权限只影响本文件夹下的列出文件和创建文件,不影响子文件夹。

下面详细介绍下x权限:

若想成功访问一个文件,需要对这个文件的访问路径上的所有文件夹有x权限。

举例:
若要读取文件/dir/abc,除了需要对abc有r权限,还要对dir目录有x权限
若要写文件./file,除了需要对file有w权限,还需要对当前目录.有x权限,但是不需要对.的父目录有x权限,因为这个访问路径上没有用绝对路径。
若想在文件夹./d/下创建文件f,需要对当前目录.有x权限,对目录d有xw权限。不需要对当前目录有w权限,也不需要对当前目录的父目录有x权限。

若对一个目录的权限是--x,则:

  • 能够进入目录
  • 不能用ls列出里面的文件
  • 不能在这个目录里创建新文件
  • 虽然不能列出但是可以访问目录内的文件(若对文件有相应访问权限的话)
  • 可以在里面子目录里用ls(若对子目录有r权限),创建文件(若对子目录有wx权限)

我们可以认为文件夹的rw权限要依赖x权限,但是实际情况更复杂,并且一般用不到所有不具体讨论了。

posted @ 2018-12-17 09:03  xuejianbest  阅读(1381)  评论(0编辑  收藏  举报