Total Pageviews

Saturday, 6 February 2016

linux的权限模型

linux的基础权限体系是基于UGO的.

  • U:文件或文件夹的所属用户的权限
  • G:文件或文件夹的所属组队权限
  • O:其他用户对文件夹或文件的权限

权限包括

  • r:对文件和文件夹读权限,用数字表示是4(2^2)
  • w:对文件和文件夹写权限,用数字表示是2(2^1)
  • x:对文件的执行权限,和对文件的浏览权限,用数字表示是1(2^0)
一般用ls -l命令查看的权限可能如下:
-rwxrwxr--       root      root  ….
从左到右解释:
  • -:文件类型,-表示文件,d表示文件夹
  • rwx:即U类型的权限,表示文件的所属用户对文件具有 读 写 执行 权限,可以用7表示(4+2+1)
  • rwx:即G类型的权限,表示文件的所属组对文件具有 读 写 执行 权限,可以用7表示(4+2+1)
  • r--:即O类型的权限,其他用户对文件有读权限,可以用4表示(4)
  • root:即文件的所属用户是root
  • root:即文件的所属组是root组

命令

  • chgrp:修改文件或文件夹的所属组
  • chown:修改文件或文件夹的所属用户
  • chmod:修UGO权限。
例如:
chmod u+w # 表示为所属用户添加写权限
chmod g+w # 表示为所属组添加写权限
chmod o+x # 表示为其他用户添加执行权限
chmod 750 # 表示为所属用户添加读写执行(7),为所属用户添加读执行(5),其他用户没有任何权限(0)

扩展权限

suid:只对文件有效,表示文件在执行的时候以文件的所属用户的权限执行,比如/usr/bin/passwd,在终端上文件会显示红色,并且U权限中的x会被替换成s。例如:
chmod u+s:# 将文件设置suid
sgid:通常对文件夹有效,表示在文件夹中建立文件或文件夹的时候继承该文件夹的组用户。G权限中的x会被替换成s
chmod g+s:# 将文件夹设置sgid
sticky:作用于文件夹,表示在该文件夹下的文件只能由文件的owner删除,其他人可以在文件夹下创建、浏览、但也只能删除自己为owner的文件。O权限中的x会被替换成t
chmod o+t:# 将文件夹设置sticky