码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 文件权限总结

时间:2020-06-29 20:20:57      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:个数   设备文件   自动   gid   目录共享   权限表   end   主机   用户名   

Linux系统中一切皆文件
一般权限rwx--特殊权限sst--隐藏权限--ACL--sudo---默认权限;
权限虽然是文件的属性,但其实是对于用户来说的,即用户对文件是否有某权限;

文件类型用不同字符区分,常见如下:
-:普通文件,最多
d:目录文件,可用cd进入
l:链接文件,快捷方式
b:块设备文件,一般指硬盘
c:字符设备文件,串行接口设备
p:管道文件,FIFO
s:套接字文件,网络数据连接
说明:linux中文件扩展名没有实际意义,只是为了帮助我们了解文件作用


一、一般权限
Linux系统中每个文件都有其所有者和所属组,
并规定了文件所有者,所属组,其他人对其的可读r,可写w,可执行x等权限,
对目录来说,可读即能读取到目录内文件列表,可写即能在目录能增删重命名文件,
可执行即能够cd进入该目录,能进入才能读取,一般目录都会给x;
文件rwx权限可分别用数字421来表示,
数字表示法可简化权限表示,如rwxrw-r--可表示为764,三者独立;
文件属性信息包括:
文件类型-访问权限-所有者-所属组-文件大小-最近修改日期时间-文件名;
对于自己家目录里的文件,即使不是所有者,没有w权限,也能修改删除,会自动变成所有者;

二、特殊权限
在复杂多变的Linux系统中,单纯的rwx权限无法满足实际需求,
所以就有了特殊权限位,进一步控制文件权限,主要有三种;
SUID-一种对二进制程序文件进行设置的特殊权限,
   可以让二进制程序执行者临时拥有所有者的权限,
   只能对有执行权限的二进制程序设置,只在执行时有效,
   文件所有者的可执行x会变成s,若原本不可执行-,则变成S,
   典型如passwd命令修改/etc/shadow文件;
SGID-让执行者临时拥有所属组的权限,只能对拥有执行权限的二进制程序设置,
   只在执行时有效,文件所属组的可执行x会变成s,若原本不可执行-,则变成S,
   在某个目录中创建的文件自动继承该目录的用户组,只能对目录进行设置,
   可用于目录共享,且目录中创建的文件也共享;
SBIT-确保用户只能删除目录内自己的文件,只能对目录进行设置,
   文件其他人的可执行x会变成t,若原本不可执行-,则变成T;
说明:以上三种特殊权限可分别用参数u+s,g+s,o+t来设置,
   也可用数字法421分别表示,放在一般权限数字前面,
   如rwsrw-r--可表示为4764,四者独立;

修改文件属性或权限的最常用命令:
chown-修改文件或目录的所有者和所属组
chgrp-修改文件或目录的所属组
chmod-设置文件或目录的权限
说明:只有文件所有者和root才能执行上述命令,
   一般权限参数可用ugoa +-= rwx来设置;


三、隐藏权限
一种被隐藏起来默认不能直接被用户察觉的权限;
chattr-设置文件的隐藏权限
lsattr-显示文件的隐藏权限
说明:chattr命令只有root可以使用,
   可通过+-参数来添加或删除文件的隐藏权限,
   可能导致root都不能修改删除某个文件,
   不宜对目录 /、/dev/、/tmp/、/var/ 等进行设置;


四、文件访问控制列表(ACL)
前三种权限是针对某一类用户设置的,ACL可以对某个指定的用户进行单独的权限控制,
即 针对指定的用户或用户组设置文件或目录的操作权限;
setfacl-设置文件的ACL权限
getfacl-显示文件的ACL权限
说明:可设置是否对目录递归或继承,
   可设置有效权限mask,即设置的ACL只在有效范围内才生效,一般为rwx即可,
   若设置没有任何权限,则在参数中权限字段加上一个减号-;


五、su命令和sudo服务
可以给普通用户提供额外的权限来完成只有root才能完成的任务;
su-用户身份切换,减号-代表环境也完全切换
sudo-把特定命令的执行权限赋给指定用户,需配置/etc/sudoers文件
visudo-配置/etc/sudoers文件,禁止多个用户同时修改且有语法检查,仅限root
说明:若只想要执行一次root的命令,可用 su - -c "命令串" 的方式,
   配置文件修改格式为:用户名/用户组 允许的主机=(可切换身份) 可执行命令,
   可通过别名变量来批量修改,要使用大写字符,
   可执行的命令字段要填写绝对路径,且可另加限制参数,
   使用sudo服务时,可以设置无需输入密码;


六、默认权限
在Linux系统中,文件默认权限是666,目录默认权限是777,
但新建文件或目录的实际权限值需要再减去权限掩码值;
umask-设定当前用户创建文件或目录的权限掩码值
注意 这里指的是默认权限值需要减去的权限值
有四组数字,对应特殊权限和一般权限,如0022;

 

大概就是

  1. 文件权限分为三部分(所属人,所属组,其它组)

  2. 文件权限第一位表示文件类型,d 目录、l 链接文件、- 普通文件、p 管道文件

  3. 文件权限第2-4位表示所属人的权限,r--读、w--写、x--执行

  4. 文件权限第5-7位表示的是所属组的权限

  5. 文件权限第8-10位表示的是其它组的权限

  6. r=4,w=2,x=1

  7. 通过chmod命令来进行对权限的修改,chmod 第一个数字表示的是所属人,第二个数字表示的是所属组,第三个数表示是其它组 chmod 777 文件名

  8. 通过chattr +i 文件名,限定为只读文件

  9. 通过chattr +a 文件名,限定为只能追加

Linux 文件权限总结

标签:个数   设备文件   自动   gid   目录共享   权限表   end   主机   用户名   

原文地址:https://www.cnblogs.com/kyooo/p/13209861.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!