本文出自   http://blog.csdn.net/shuangde800

---------------------------------------------------------------------------------



权限

  • 权限是操作系统用来限制对资源访问的机制,权限一般分为读,写,执行。系统中每个文件都拥有特定的权限,所属用户及所属组,通过这样的机制来限制哪些用户,哪些组可以对特定文件进行什么样的操作。
  • 每个进程都是以某个用户的身份运行的,所以进程的权限与该用户的权限一样,用户的权限越大,该进程拥有的权限就越大。



文件的权限


权限 对文件的影响 对目录的影响
r(读取) 可读取文件内容 可列出目录内容
w(写入) 可修改文件内容 可在目录中创建和删除文件
x(执行) 可作为命令执行 可访问目录内容


目录必须有x权限,否则无法查看其内容。x也叫浏览权限






UGO


Linux权限基于UGO模型进行控制:
  • U代表User,G代表Group,O代表Other
  • 每一个文件的权限基于UGO进行设置
  • 权限三个一组(rwx),对应UGO分别设置
  • 每一个文件拥有一个所属用户和所属组,对应UG,不属于该文件所属用户或所属组的使用O权限

命令ls -l可以查看当前目录下的文件信息

drwxrwxr-x 2 shuangde shuangde 4096 8月 25 00:33 hdu
-rw-rw-r-- 1 shuangde shuangde 26 8月 24 22:50 input.txt

drwxrwxr-x
d: 文件类型, d表示是目录,-表示是普通文件
rwx: U权限
rwx: G权限
r-x:  Other权限,  -代表没有该权限






修改文件所属用户,组


  • 命令chown(change own)用以改变文件所属用户
$ chown  shuangde   test.cpp   把test.cpp文件的用户修改为shuangde
-R 参数递归地修改目录下的所有文件的所属用户

  • 命令chgrp(change group)用来改变文件的所属组:
$ chgrp  lab104   test.cpp   把test.cpp文件的所属组修改为lab104
-R 参数递归地修改目录下的所有文件的所属组




修改权限

命令chmod用以修改文件的权限
   $ chmod  模式  文件
模式为如下格式:
u,g,o分别代表用户,组和其他
a可以代指ugo
+, -代表加入或删除对应的权限
r, w, x代表三种权限

示例:
$ chmod  u+rw   test.cpp   把test.cpp的用户权限增加rw
$ chmod  g-x   test.cpp      把test.cpp的组权限删除x
$ chmod  go+r  test.cpp     把test.cpp的组和其他权限增加r
$ chmod  a-x  test             把test.cpp的ugo权限删除x


命令chmod也支持以数字(二进制)方式修改权限, 3个权限分别由三个数字表示:
-r  = 4  (2^2)
-w = 2  (2^1)
-x  = 1  (2^0)
实际上就是按照二进制:  111,  每位代表rwx相同顺序的位置,如果该位为0,则表示没有该权限。
没有权限 = 0

使用数字表示权限时,每组分别为对应数字之和:
rw   =  4 + 2      = 4 | 2       = 6
rwx =  4 + 2 + 1 = 4 | 2 | 1  = 7
r-x  =  4 + 1       = 4 | 1       = 5  

所以,使用数字表示ugo权限使用如下方式表示:
chmod 660  test.cpp   等价于   rw-rw----
chmod 775  test.cpp   等价于   rwxrwxr-x




Logo

更多推荐