设为首页 收藏本站
查看: 789|回复: 0

[经验分享] linux下目录与文件的权限及特殊权限

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-3-23 09:16:34 | 显示全部楼层 |阅读模式
一、Linux下目录与文件的权限
chown    更改文件或目录的所属主,所属组    
/etc/passwd 配置文件存放用户信息
useradd    添加用户
chown 所属主:所属组 文件或目录   
chown -R    更改目录及目录下面的文件所有权限
chown -v    可视化显示权限更改

1
2
3
4
5
6
7
8
9
10
11
[iyunv@localhost tmp]# chown user1:root aa
[iyunv@localhost tmp]# ls -l
drwxr-xr--. 2 user1 root 4096 Mar 18 16:41 aa
-rw-------. 1 root  root    0 Nov 13 09:25 yum.log
[iyunv@localhost tmp]# ls -l aa/
-rw-r--r--. 1 root root 0 Mar 18 16:41 bb
[iyunv@localhost tmp]# chown -R user1:user1 aa
[iyunv@localhost tmp]# ls -ld aa/
drwxr-xr--. 2 user1 user1 4096 Mar 18 16:41 aa/
[iyunv@localhost tmp]# ls -l aa/
-rw-r--r--. 1 user1 user1 0 Mar 18 16:41 bb




chmod    更改rwx权限    r=4    w=2    x=1   

chmod -R    更改目录及目录下面的文件权限
chmod -v    可视化显示权限更改
1
2
3
4
5
6
7
8
9
[iyunv@localhost tmp]# mkdir aa
[iyunv@localhost tmp]# ls -ld aa/
drwxr-xr-x. 2 root root 4096 Mar 18 16:46 aa/
[iyunv@localhost tmp]# touch aa/bb
[iyunv@localhost tmp]# ls -l aa/
-rw-r--r--. 1 root root 0 Mar 18 16:46 bb
[iyunv@localhost tmp]# chmod -Rv 666 aa
mode of `aa' changed to 0666 (rw-rw-rw-)
mode of `aa/bb' changed to 0666 (rw-rw-rw-)



umask    指定目录或文件的默认权限root用户是022,普通用户是002
更改umask值    umask 001   
1
2
3
4
5
6
7
8
9
10
[iyunv@localhost ~]# umask
0022
[iyunv@localhost ~]# umask 001
[iyunv@localhost ~]# umask
0001
[iyunv@localhost ~]# mkdir aa
[iyunv@localhost ~]# touch bb
[iyunv@localhost ~]# ls -l
drwxrwxrw-. 2 root root 4096 Mar 18 16:26 aa
-rw-rw-rw-. 1 root root    0 Mar 18 16:26 bb



如果更改umask值为001,目录权限为776  rwxrwxrw- 文件权限为666  rw-rw-rw- 文件根本不需要x权限,所以权限还是不变。

root下默认目录为755 rwxr-xr-x,文件为644    rw-r--r--
目录最大权限为777    rwxrwxrwx    777
                     ----w--w-    022
                     rwxr-xr-x    755
文件最大权限为666    rw-rw-rw-    666
                     ----w--w-    022
                     rw-r--r--    644
一个目录必须具有rx权限,可以进入目录 cd,可以列出目录内容 ls
目录若没有x执行权限,我们不能cd到这个目录下,但是可以ls这个目录。
1
2
3
4
5
6
7
8
9
10
11
12
[iyunv@localhost tmp]# mkdir aa
[iyunv@localhost tmp]# ls -ld aa/
drwxr-xr-x. 2 root root 4096 Mar 18 16:33 aa/
[iyunv@localhost tmp]# chmod 754 aa
[iyunv@localhost tmp]# ls -ld aa/
drwxr-xr--. 2 root root 4096 Mar 18 16:33 aa/
[iyunv@localhost tmp]# su - user1
[user1@localhost ~]$ cd /tmp/
[user1@localhost tmp]$ cd aa
-bash: cd: aa: Permission denied
[user1@localhost tmp]$ ls -ld aa/
drwxr-xr--. 2 root root 4096 Mar 18 16:33 aa/



普通用户默认目录为775 rwxrwxr-x,文件为664    rw-rw-r--

二、修改文件、目录的特殊权限   
chattr
+i    增加后,文件不能被删除、重命名、设定连接、写入、新增数据
1
2
3
4
5
6
7
8
9
10
[iyunv@localhost tmp]# chattr +i aa
[ root@localhost tmp]# touch aa/cc
touch: cannot touch `aa/cc': Permission denied
[ root@localhost tmp]# chattr -i aa
[ root@localhost tmp]# touch aa/cc
[ root@localhost tmp]# chattr +i aa
[ root@localhost tmp]# rm -rf aa/cc
rm: cannot remove `aa/cc': Permission denied
[ root@localhost tmp]# mv aa bb
mv: cannot move `aa' to `bb': Operation not permitted



+a    增加该属性后,只能追加不能删除,非root用户不能修改属性
文件只能追加,目录下可以建立子目录与文件,可以写文件,不能删除子目录和文件,也不能改名。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[ root@localhost tmp]# touch 11
[ root@localhost tmp]# ls -l
-rw-r--r--. 1 root  root    0 Mar 18 17:10 11
[ root@localhost tmp]# echo 'abc'>11
[ root@localhost tmp]# cat 11 abc
[ root@localhost tmp]# chattr +a 11
[ root@localhost tmp]# echo 'def'>11
bash: 11: Operation not permitted
[ root@localhost tmp]# echo 'def'>>11
[ root@localhost tmp]# cat 11 abc def
[ root@localhost tmp]# chmod 666 11
chmod: changing permissions of `11': Operation not permitted
[ root@localhost tmp]# chown user1:root 11
chown: changing ownership of `11': Operation not permitted
[ root@localhost tmp]# rm -rf 11
rm: cannot remove `11': Operation not permitted




lsattr    查看文件或目录的特殊权限
1
2
3
[iyunv@localhost tmp]# lsattr
-------------e- ./yum.log
----i--------e- ./aa



lsattr -d    查看目录的特殊属性
1
2
[iyunv@localhost tmp]# lsattr -d aa
-----a-------e- aa



lsattr -R    列出当前目录及子目录的特殊属性
1
2
3
4
5
6
[ root@localhost tmp]# lsattr -R
-------------e- ./yum.log
-----a-------e- ./aa
./aa:
-------------e- ./aa/bb
-------------e- ./aa/cc



set_uid 使普通用户临时拥有执行这条命令所属主的权限
set_uid=4    set_gid=2     stick_bit=1

1
2
3
4
[ root@localhost ~]# umask 0022
[ root@localhost ~]# which passwd /usr/bin/passwd
[ root@localhost ~]# ls -l /usr/bin/passwd
- rwsr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd



rws=rwx+s    小s说明文件具有rwx的权限 大S说明文件没有x权限
passwd所属主为root用户,有了rws权限后普通用户也具有root的权限,所以普通用户可以自己更改密码。
执行者必须对文件拥有x权限(否则即使设置了SUID,由于你对文件根本无法执行SUID此时也无效,此时权限位显示S);
举例说明:
1
2
3
4
5
6
[ root@localhost tmp]# chmod u-sx /usr/bin/passwd  
[ root@localhost tmp]# ls -l /usr/bin/passwd  
-rw-r-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd
[iyunv@localhost ~]# chmod u+s /usr/bin/passwd
[iyunv@localhost ~]# ls -l /usr/bin/passwd
-rwSr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd



大写S 说明文件没有x权限,不能执行,没有意义。

chmod u-s /usr/bin/passwd    可执行的文件、二进制的才可以设置s权限;
1
2
3
[ root@localhost tmp]# chmod u-s /usr/bin/passwd  
[ root@localhost tmp]# ls -l /usr/bin/passwd  
-rwxr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd



u-s 后文件具有rwx权限
1
2
3
4
5
6
7
8
[ root@localhost ~]# ls -l /usr/bin/passwd  
-rwsr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd
[ root@localhost tmp]# chmod 755 /usr/bin/passwd  
[ root@localhost tmp]# ls -l /usr/bin/passwd  
-rwxr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd
[ root@localhost tmp]#  chmod 4755 /usr/bin/passwd
[ root@localhost tmp]# ls -l /usr/bin/passwd  
-rwsr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd



本身passwd是755 ,最前面加了suid 这个值为4,所以这个passwd的权限是4755
1
2
3
[ root@localhost ~]# chmod 6755 /usr/bin/passwd
[ root@localhost ~]# ls -l /usr/bin/passwd  
-rwsr-sr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd



6是代表suid4+sgid2=6 然后本身的权限是755,所以是6755

set_gid    使普通用户临时具有文件所属组的权限,可以作用于文件和目录
chmod g+s  目录名
更改完成后在目录下面新建立的目录都是,父目录所属组的属性
新建立的目录拥有父目录所属组的权限,继承父目录的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[ root@localhost tmp]# mkdir aa
[ root@localhost tmp]# ls -ld aa/
drwxr-xr-x. 2 root root 4096 Mar 19 10:04 aa/
[iyunv@localhost tmp]# chown user1:user1 aa
[iyunv@localhost tmp]# ls -ld aa/
drwxr-xr-x. 3 user1 user1 4096 Mar 19 10:05 aa/
[iyunv@localhost tmp]# chmod  g+s aa/
[ root@localhost tmp]# ls -ld aa/
drwxr-sr-x. 4 user1 user1 4096 Mar 19 10:07 aa/
[iyunv@localhost tmp]# mkdir aa/cc
[ root@localhost tmp]# ls -l aa
drwxr-sr-x. 2 root user1 4096 Mar 19 10:06 cc
[ root@localhost tmp]# touch aa/1.txt
[ root@localhost tmp]# ls -l aa/1.txt  
-rw-r--r--. 1 root user1 0 Mar 19 10:07 aa/1.txt
[ root@localhost tmp]# chmod g-s aa/
[ root@localhost tmp]# ls -ld aa
drwxr-xr-x. 4 user1 user1 4096 Mar 19 10:07 aa
[ root@localhost tmp]# mkdir aa/dd
[ root@localhost tmp]# ls -l aa/
drwxr-sr-x. 2 root user1 4096 Mar 19 10:06 cc
drwxr-xr-x. 2 root root  4096 Mar 19 10:10 dd



去掉guid的s权限后,在目录创建的目录不会继承父目录的属性;

sticky_bit     防删除位,rwt 属性只有创建者可以删除自己的,其他用户不可以删除。root具有至高无上的权限都可以删除。
chmod o+t 目录名
1
2
3
4
5
6
7
8
9
[ root@localhost ~]# ls -ld /tmp/
drwxrwxrwt. 3 root root 4096 3月  19 19:30 /tmp/
[ root@localhost tmp]# mkdir 11
[ root@localhost tmp]# chmod 777 11
[ root@localhost tmp]# ls -ld 11/
drwxrwxrwx 2 root root 4096 3月  19 19:40 11/
[ root@localhost tmp]# chmod o+t 11/
[ root@localhost tmp]# ls -ld 11/
drwxrwx rwt 2 root root 4096 3月  19 19:40 11/



目录必须有x权限才可以进去,小写t说明目录有x权限,T说明没有x权限,文件是T显示的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[ root@localhost 11]# su - test1
[ test1@localhost ~]$ cd /tmp/11/
[ test1@localhost 11]$ mkdir 12
[ test1@localhost 11]$ touch 123
drwxrwxr-x 2 test1 test1 4096 3月  19 20:14 12
-rw-rw-r-- 1 test1 test1    0 3月  19 20:15 123
drwxr-xr-x 2 root  root  4096 3月  19 20:14 root
[ root@localhost 11]# su - test2
[ test2@localhost ~]$ cd /tmp/11/
[ test2@localhost 11]$ ls -l
drwxrwxr-x 2 test1 test1 4096 3月  19 20:14 12
-rw-rw-r-- 1 test1 test1    0 3月  19 20:15 123
drwxr-xr-x 2 root  root  4096 3月  19 20:14 root
[ test2@localhost 11]$ rm -rf 12
rm: 无法删除"12": 不允许的操作
[ test2@localhost 11]$ rm -rf 123
rm: 无法删除"123": 不允许的操作
[ test2@localhost 11]$ touch 234.txt
[ test2@localhost 11]$ ls -l
drwxrwxr-x 2 test1 test1 4096 3月  19 20:14 12
-rw-rw-r-- 1 test1 test1    0 3月  19 20:15 123
-rw-rw-r-- 1 test2 test2    0 3月  19 20:16 234.txt
drwxr-xr-x 2 root  root  4096 3月  19 20:14 root



可以创建目录或文件,但是不能删除其他用户的目录或文件。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-49630-1-1.html 上篇帖子: linux下的连接文件——软连接和硬连接的区别 下篇帖子: Debian安装compiz实现3D桌面效果 linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表