博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

linux中文件权限

Posted on 2012-11-12 19:47  藤一1222  阅读(195)  评论(0编辑  收藏  举报

1. 假设linux系统当前目录下有一个文件myfile,输入命令ls -l myfile

假设输出 -rw-r--r-- 2 abc abc 1024 Oct 14 04:10 myfile

(1)首先,除去前面的-,后面9个字符表示权限位,分别表示文件属主的权限,同组用户的权限,其他用户的权限

权限分为读、写和可执行,-表示文件类型为普通文件

(2)linux下的文件类型有:

  -:普通文件

  d:目录文件

  l:链接文件

  p:管道文件(有名管道)

  s:套接字文件

  b:块设备文件

  c:字符设备文件

(3)权限位后面的数字2表示此文件myfile的文件链接数,链接分为硬链接和软链接

硬链接:相当于指向磁盘文件的指针,所以它们的inode一样,硬链接有一个好处就是表示方便,缺点为不能跨文件系统使用

创建方法:ln target_file new_link_file。

软链接:相当于存储文件的绝对路径,可以跨文件系统使用,但是删除源文件会导致链接文件失效,硬链接则不会

创建方法:ln -s target_file new_link_file。

目录的链接数至少为2,因为.是当前目录的硬链接

(4)接下来两个字符串分别为文件属主和文件所属的组名

(5)1024为文件的大小,单位为字节

(6)为文件的最近修改时间

(7)为文件名

2. 修改文件的权限

使用chmod,有两种方法,为符号模式和绝对模式

(1)符号模式

语法:chmod [who] operator [permission] filename

who有u(文件属主),g(同组用户),o(其他用户),a(所有用户)

operator: +,-,=

permission: r,w,x

例如:把文件myfile设置为文件属主能够执行,其他用户不能读

chmod u+x o-r myfile

$ ls -l myfile

-rwxr----- 2 abc abc 1024 Oct 14 04:10 myfile

(2)绝对模式

使用八进制,r=4,w=2,x=1

所以上面那个例子也可以这样写:

chmod 740 myfile

3. 目录的权限

r:可以列出目录下的文件;

w:可以在该目录下创建和修改文件;

x:可以访问(进入)该目录

注意:目录的权限会覆盖该目录下文件的权限

例如:如果目录docs具有权限

drwxr--r-- 2 abc admin 2048 Oct 4 12:00 docs

而其中的文件pay的权限为:

-rwxrwxrwx 1 abc admin 1024 Oct 4 13:00 pay

那么admin组的用户将无法编辑pay文件

4. suid位 和 guid位

suid位意味着如果某个用户对属于自己的shell脚本设置了这个权限,那么其他用户在执行此文件时也拥有其文件属主所具有的权限

同样的道理应用于guid

设置suid:

(1) chmod u+s filename

(2) chmod 4755 filename

设置guid:

chmod 6755 filename