您的位置:首页 > 运维架构 > Linux

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

2009-06-10 11:47 531 查看
很久没写日志了,呵呵,因为一直在享受人生中最后的自由时光……

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就成啦,呵呵。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: