15、linux⽂件、⽬录的权限及如何改变权限(root⽤户不受任何权限的限制)
15.1、linux普通⽂件的读、写、执⾏权限说明:
r:读,表⽰具有读取\阅读⽂件内容的权限;
w:可写,表⽰具有新增,修改⽂件内容的权限:
如果没有r配合,那么vi编辑⽂件会提⽰⽆法编辑(但可以强制编辑,echo可以重定向或追加)
特别提⽰:删除⽂件(修改⽂件名等)的权限是受⽗⽬录的权限控制(wx,常⽤rwx),与⾃⾝的权限⽆关(如果⽬录中有⽂件,且⽬录不予许删除,则不能删除该⽬录,空⽬录则可以被删除),但上级⽬录的上级需要最低 x 进⼊⽬录权限,否则不能进⼊这⼀级,也不能进⼊下⼀级;
x: ⽂件执⾏的权限,全路径执⾏,和进⼊内部进⾏./执⾏⽂件进⾏执⾏
⽂件本⾝需要能够执⾏
普通⽤户同时还需要具备r的权限才能
⽤户创建⽂件时的权限是644,
15.2、linux⽬录的读、写、执⾏权限说明:
x:可执⾏,表⽰进⼊⽬录的权限,cd dir
r:可读(显⽰列表)、表⽰具有浏览⽬录⽂件及⼦⽬录的权限,及ls dir
如果没有x权限(进⼊⽬录的权限),ls列表时,可以看到⽂件名,但是看不到具体的⽂件权限属性,
w:表⽰具有增加,删除或修改⽬录内⽂件名的权限,也需要x的配合,否则⽆法进⼊⽬录
⽤户创建⽬录的权限是755;
15.3、linux改变⽂件权限的⽅法:
15.3.1、chmod:
是⽤来改变⽂件或⽬录权限的命令,但只有⽂件的属主和超级⽤户root才能使⽤这种命令,通过chmod来改变⽂件或⽬录的权限有两种⽅法,
⼀种是通过权限字母化操作符表达式的⽅法来设置权限,另⼀种是使⽤数字办法来设置权限(常⽤),如果我们想改变的仅仅是打开⽬录的权限,使⽤chmod命令时不⽤加任何参数,
如果想把⽬录以下的所有⽂件或⼦⽬录也同时改变,需要使⽤-R参数;
15.3.2、数字法:
chmod [数字法] ⽂件名:r:4 w:2 x:1
15.3.3、字符型法:
+:添加某个权限
-:取消某个权限
=:取消其它所有的权限赋予给定的的权限
15.3.4、chown:
当我们改变⼀个⽂件的属主时,我们所使⽤的⽤户必须是该⽂件的属主且同时是⽬标组成员,超级⽤户。只有超级⽤户才能改变⽂件的属组chown ⽤户⽂件或⽬录仅授权⽤户
chown :组⽂件或⽬录仅授权组
chown ⽤户:组⽂件或⽬录授权⽤户和组
其中:(冒号)可以使⽤.代替
⽤户的操作:
useradd test useradd -u 504 test
passwd test
userdel -r test 删除⽤户和家⽬录
组的操作:
groupadd test
15.3.5、改变⽂件的属性:
[root@centos6 ~]# chattr +i /etc/passwd #给 /etc/passwd 加锁,root⽤户也不能进⾏操作
[root@centos6 ~]# useradd test
useradd: cannot open /etc/passwd
[root@centos6 ~]# lsattr /etc/passwd #查看⽂件是否加锁
----i--------e- /etc/passwd
[root@centos6 ~]# which chattr
/usr/bin/chattr
[root@centos6 ~]# mv -v /usr/bin/chattr /lcchattr #转移chattr命令,⽆法解锁,就不可创建⽤户,防⽌⿊客的⼊侵
`/usr/bin/chattr' -> `/lcchattr'
[root@centos6 ~]# useradd lc
useradd: cannot open /etc/passwd
[root@centos6 ~]# chattr -i /etc/passwd
修改文件权限的linux命令
-bash: /usr/bin/chattr: No such file or directory
[root@centos6 ~]# mv -vf /lcchattr /usr/bin/chattr
`/lcchattr' -> `/usr/bin/chattr'
[root@centos6 ~]# chattr -i /etc/passwd
[root@centos6 ~]# useradd lc1
15.4、相对⽐较安全的权限:
对于⽂件权限是644(默认),对于⽬录的权限是755(默认),并且⽤户为root以及⽤户组root,这样其它⽤户登录只有其它⽤户的权限,上层可查看r_x,到⽤户的⽬录时变为可读可写的权限;
在root⽤户下建⽴创建⽂件和默认的⽬录,创建可供其它⽤户利⽤的⽬录,此时其它⽤户登录后可以查看⽂件进⼊⽬录,但是不能够创建⽂件且⽬录中的⽂件属于root,也只能读,该⽤户
只能在规定的⽬录下进⾏创建⽂件,删除属于⾃⼰的⽂件;
15.5、默认权限的分配的命令:
⽂件的权限从 666 ⽬录从777开始
umask 022 022
⽂件的真实权限 644 755
umask都为偶数,直接相减,如果是奇数,在对应位加1;
umask如果越⼩,则对应的权限就越⼤
15.6、特殊权限:
15.6.1、suid:
suid是⼀把双刃剑,是⼀个⽐较危险的功能,对系统安全有⼀定的威胁
15.6.1.1、suid系统优化的命令:
xargs -i chmod u-s {}
15.6.2、sgid :
常⽤于组之间⽂件的共享;
sgid 表⽰任何⼀个加⼊组的⽤户或属主⽤户,在组⽬录下创建⽂件或⽬录都属于该组所有,其它⽤户是002,可实现所有⽤户的共删性(特殊:
umask,022,加⽬录);
15.6.3、粘贴位:
如果⼀个⽬录把所有的权限都开放,这样任意⼀个⽤户都可以在这个⽬录中创建和删除任意⼀个⽂件,或没有⽂件的空⽬录(如果有⽂件,则不能
删除,需要给⽬录加权限),如果设置了粘贴位,除⾮⽂件的属主和root⽤户可以删除该⽂件和⽬录(如果在⼦⽬录设置权限,其它⽤户也可以删除该
⽬录下的⽂件);
15.6.4、特殊权限⼩结:
<img
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9IAAAG6CAIAAABryemXAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOy92ZNdV3bm962995nuPOQ8IYFEAiAIEAMJAiR