Linux 下文件系统权限控制及管理

 

   很久没写日志了,呵呵,因为一直在享受人生中最后的自由时光……

   LINUX 下权限管理的文章很多了,但一直以来,我都只是会用chmod 777 -R .. ,近来认真研究了一下,发现,其实原理明白了,就非常简单了。

   首先,先明确一下,文件和文件夹都是带有两个权限属性的,一个是属于谁,一个是属于哪个用户组。比如

 

zhangyufeng@zhangyufeng-laptop:/media/ZYF$ ls -la
总用量 
720
drwxrwxrwx 
1 root root 36864 2009-06-09 16:32 .
drwxrwxrwx 
1 root root     0 2009-06-09 17:54 ..
-rwxrwxrwx 1 root root   504 2009-03-12 00:33 01.htm
-rwxrwxrwx 2 root root  2301 2009-03-12 00:33 01.html
-rwxrwxrwx 1 root root   772 2009-03-26 22:25 02.htm
-rwxrwxrwx 1 root root   777 2009-03-26 22:25 03.htm
-rwxrwxrwx 1 root root   475 2009-04-12 16:37 04.htm
-rwxrwxrwx 1 root root   448 2009-03-12 00:33 38.htm
……

 

  在这里,每个文件都是属于root用户,也属于root用户组,如果这个时候,有一个属于root用户组的用户 zhangyufeng 来操作01.html,会不会有权限呢?

  答案是不一定有,因为属于root用户,root用户可以没有权限,(执行 chmod u-w,u-r 01.htm 就可以让root用户没有权限),看起来好复杂,呵呵,其实很简单哦。

  chmod 命令是相对于现在文件所属于的用户及用户组的…… 例如:

  相对于01.htm来说:

  给root用户加读权限  chmod u+r 01.htm  咦,命令中没有出现root字样哦,是啊,这里的u就是指的文件所属于的用户啦,详解:
     


u 表示“用户(user)”,即文件或目录的所有者。

  g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

  o 表示“其他(others)用户”。

  a 表示“所有(all)用户”。它是系统默认值。

操作符号可以是:

  
+ 添加某个权限。

  
- 取消某个权限。

  
= 赋予给定权限并取消其他所有权限(如果有的话)。

设置 mode 所表示的权限可用下述字母的任意组合:

  r 可读。

  w 可写。

    x 可执行。

  X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。

  s 在文件执行时把进程的属主或组ID置为该文件的文件属主。

       方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。

  t 保存程序的文本到交换设备上。

  u 与文件属主拥有一样的权限。

  g 与和文件属主同组的用户拥有一样的权限。

  o 与其他用户拥有一样的权限。

 

   明白了吧! 其实原理就是这么简单。

   那么,我想给zhangyufeng 用户操作01.htm的权限,咋办? 呵呵,最爽的办法是把zhangyufeng用户加到root用户组里……然后再 chmod g+w,g+r 01.htm

 

  另外,还不得不说一下chgrp 和 chown 这两个命令,chgrp是修改文件属于的用户组,chown 是修改文件属于的用户,使用很简单,大家 --help就成啦,呵呵。

posted @ 2009-06-10 11:47  玉米疯收  阅读(1930)  评论(2编辑  收藏  举报