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

小鸟chacha初学linux 文件目录的权限及归属

2012-01-23 17:39 330 查看
在linux的多用户环境中,为保证不同用户的文件/目录不被管理员以外的用户删除,从而影响工作效率,因而

不同用户对不同文件有着不同权限。

文件所有者owner:

文件拥有者所属组:团队协作的项目,对某些文件,组成员必然拥有特殊的权限

其他人:

下面是管理员家目录下的文件

[root@localhost cc]# ls -Al

总计 48

drwxr-xr-x 3 root root 4096 01-21 13:06 fetion_spring

-rw-r--r-- 1 root root 59 01-21 12:56 fetion_spring.exe

drwxr-xr-x 3 root root 4096 01-21 12:30 fetion_summer

-rw-r--r-- 1 root root 62 01-21 12:47 fetion_summer.exe

-rw-r--r-- 1 root root 259 01-21 12:48 f_spring-summer.exe.patch

-rw-r--r-- 1 root root 1498 01-21 12:37 f_spring-summer.patch

权限 属主 属组 文件大小 修改时间 文件名

大家仔细观察fetion_spring的权限是drwxr-xr-x

文件类型 文件属主权限 文件属组权限 其他人权限

d r w x r - x r - x

目录 读 写 执行 读 不可写 执行 读 不可写 执行

[root@localhost cc]# ll test //查看test权限

-rw-r--r-- 1 root root 0 01-22 10:48 test

[root@localhost cc]# chmod u+x test//给属主user增加执行权限

[root@localhost cc]# ll test

-rwxr--r-- 1 root root 0 01-22 10:48 test//属主有读写执行权限

[root@localhost cc]# ll test

-rwxr--r-- 1 root root 0 01-22 10:48 test

[root@localhost cc]# chmod g+w test//给属组增加写的权限

[root@localhost cc]# ll test

-rwxrw-r-- 1 root root 0 01-22 10:48 test

[root@localhost cc]# ll test

-rwxrw-r-- 1 root root 0 01-22 10:48 test

[root@localhost cc]# chmod o+w test//给其他人增加写的权限

[root@localhost cc]# ll test

-rwxrw-rw- 1 root root 0 01-22 10:48 test

[root@localhost cc]# chmod a-w test//给所有的all 属主 属组 其他人 去除写的权限

[root@localhost cc]# ll test

-r-xr--r-- 1 root root 0 01-22 10:48 test

可以用等号对相应的权限进行赋值

[root@localhost cc]# ll test

-r-xr--r-- 1 root root 0 01-22 10:48 test

[root@localhost cc]# chmod u=rw,g=r,o=r test

[root@localhost cc]# ll test

-rw-r--r-- 1 root root 0 01-22 10:48 test

我们可以用数字表示权限 有权限相应位表示为1 没有的话相应位表示为0

如果一个文件的属主的权限是rwx则表示为111=7,类似的rw-表示为110=6

[root@localhost cc]# chmod 777 test//改变权限

[root@localhost cc]# ll test

-rwxrwxrwx 1 root root 0 01-22 10:48 test

改变属主是其他人

[root@localhost cc]# ll test

-rwxrwxrwx 1 root root 0 01-22 10:48 test

[root@localhost cc]# chown lover test

[root@localhost cc]# ll test

-rwxrwxrwx 1 lover root 0 01-22 10:48 test

如果是改变目录需加上参数-R

改变属主是其他组

[root@localhost cc]# chgrp wife test

[root@localhost cc]# ll test

-rwxrwxrwx 1 lover wife 0 01-22 10:48 test

可以使用chown同时改文件的用户和属组

[root@localhost cc]# chown root:root test用户和组中间使用冒号隔开

[root@localhost cc]# ll test

-rwxrwxrwx 1 root root 0 01-22 10:48 test

[root@localhost cc]# chown lover.girls test用户和组中间使用"."隔开

[root@localhost cc]# ll test

-rwxrwxrwx 1 lover girls 0 01-22 10:48 test

也可以使用chown改变文件的属组

[root@localhost cc]# chown .root test

[root@localhost cc]# ll test

-rwxrwxrwx 1 lover root 0 01-22 10:48 test

[root@localhost cc]# chown .girls test

[root@localhost cc]# ll test

-rwxrwxrwx 1 lover girls 0 01-22 10:48 test

默认权限

当我们新建一个文件或者目录时 会赋于其一个默认权限

[root@localhost cc]# mkdir abc

[root@localhost cc]# ll -d abc

drwxr-xr-x 2 root root 4096 01-22 11:16 abc

易知 当前权限是755

[root@localhost cc]# umask

0022

易知 文件默认权限是777-022

有些文件有特殊的属性

例如:a 表示增加属性后,表示只能增加数据,不能删除数据,只有root才能设置这个属性

i 增加这个属性后,表示不能对文件或目录删除,修改、重命名。相当于写保护。只有root 才能设置这个属性

[root@localhost cc]# touch test

[root@localhost cc]# chattr +a test 增加a属性

[root@localhost cc]# lsattr test 查看a属性

-----a------- test

[root@localhost cc]# rm -f test

rm: 无法删除 “test”: 不允许的操作 无法删除

[root@localhost cc]# chattr -a test

[root@localhost cc]# lsattr test

------------- test

[root@localhost cc]# rm -f test //可以删除文件

[root@localhost cc]# ls

abc fetion_summer f_spring-summer.patch

fetion_spring fetion_summer.exe

fetion_spring.exe f_spring-summer.exe.patch

可以增加内容到文件

[root@localhost cc]# which passwd

/usr/bin/passwd

[root@localhost cc]# ll /usr/bin/passwd

-rwsr-xr-x 1 root root 22960 2006-07-17 /usr/bin/passwd

大家看到属性属主的权限中的x变为s

说明文件被setuid了,意思是,其他用户使用这条命令时 被赋予use[root@localhost cc]# setfacl -m u:lover:rw,g:wife:rwx a

[root@localhost cc]# getfacl a

# file: a

# owner: root

# group: root

user::rw-

user:lover:rw-

group::r--

group:wife:rwx

mask::rwx

other::r--

r的权限

setuid存在如下要求:

该文件是二进制可执行文件

user对文件有x权限

同理对于setgid文件。

用户在执行该命令时,获得用户组的支持

[root@localhost cc]# touch love

[root@localhost cc]# chmod +s love

[root@localhost cc]# ll love

-rwSr-Sr-- 1 root root 0 01-22 11:52 love

[root@localhost cc]# chmod -s love

[root@localhost cc]# ll love

-rw-r--r-- 1 root root 0 01-22 11:52 love

[root@localhost cc]# chmod u+s love

[root@localhost cc]# ll love

-rwSr--r-- 1 root root 0 01-22 11:52 love

[root@localhost cc]# ll -d /tmp

drwxrwxrwt 12 root root 4096 01-22 08:03 /tmp

其他用户的执行权限的x变成t sbit

意思是除了root和user本身或本组 其他人不得删除

Suid sgid sbit 组成111

如果只有suid权限则为100=4

如果有suid sgid 则为110=6

[root@localhost cc]# ll /bin/mkdir

-rwxr-xr-x 1 root root 29852 2009-07-13 /bin/mkdir

[root@localhost cc]# chmod 7755 /bin/mkdir

[root@localhost cc]# ll /bin/mkdir

-rwsr-sr-t 1 root root 29852 2009-07-13 /bin/mkdir

[root@localhost cc]# chmod 755 /bin/mkdir

[root@localhost cc]# ll /bin/mkdir

-rwxr-xr-x 1 root root 29852 2009-07-13 /bin/mkdir

file access control lists

详细规定了不同文件不同用户的权限

setfacl

-m 新增规则

-x 删除规则

[root@localhost cc]# setfacl -m u:lover:rw,g:wife:rwx a用逗号隔开

[root@localhost cc]# getfacl a

# file: a

# owner: root

# group: root

user::rw-//对于user的权限

user:lover:rw-

group::r--//对于属组的权限

group:wife:rwx

mask::rwx

other::r--

[root@localhost cc]# setfacl -m m:r a

[root@localhost cc]# getfacl a

# file: a

# owner: root

# group: root

user::rw-

user:lover:rw- #effective:r--

group::r--

group:wife:rwx #effective:r--

mask::r--

other::r--

本文出自 “初学linux” 博客,请务必保留此出处http://zhxchacha.blog.51cto.com/4277964/767229
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: