我的Linux,我做主!Linux权限管理详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的Linux,我做主!Linux权限管理详解相关的知识,希望对你有一定的参考价值。

(1)了解文件所有者所属组的概念及修改
假设Tom现在有一个kindle在使用,他买了后说:“不仅我可以使用,我们班的所有同学如果需要也可以找我来使用,但是除了我们班级之外的其他人都不能使用”。在此kindle的属主user就是Tom,kindle的属组group就是Tom所在的班级,其他人other都不能使用这个kindle。所以对文件设置权限,就是对对应的u,g,o进行相关设置。
技术图片
文件属性信息的含义如下(图1-2):
技术图片
修改aa.txt文件的属主和属组信息(图1-3):
# chown root.users aa.txt
# chown .jerry aa.txt
技术图片
修改目录的属主信息并不会改变目录内部文件的属主信息(图1-4):
# chown jerry books/
技术图片
如果需要修改目录的属主和属组的时候同样也能够改变目录中文件的属主和属组信息,则可以加上-R选项:
# chown -R jerry books/
如果想单独改变所属组的信息,可以使用chgrp(图1-5):
技术图片


(2)了解用户权限及修改权限
技术图片
其中第一个表示的是文件类型(图1-6):
【d】表示的是目录;
【-】表示的是普通文件,文本文件,二进制文件;
【l】表示的是软链接,快捷方式;
【b】表示设备文件,块文件,装置文件里面的可供存储的接口设备
【c】表示的是设备文件,字符文件,装置里面的串行端口设备,不可以存储东西,例如键盘,鼠标。
技术图片
九个字符的位置表示权限(图1-7):
r:可读(用数字4表示)
w:可写(用数字2表示)
x:可执行(用数字1表示)
------文件:运行这个文件的时候,是否有权限运行这个文件里的命令
------目录:在系统中是否有权限(cd)进入到目录中
所以在图1-7中:
u=r+w+x------->7=4+2+1
g=r+(-)+x------>5=4+0+1
o=r+(-)+(-)---->4=4+0+0
如果文件的权限不符合我们的要求,我们可以使用chmod修改文件的权限(图1-8):
技术图片


(3)了解默认权限
我们创建了文件和目录,其中aa、bb、cc三个文件的权限为644,其中11、22、33三个目录的权限为755。(图1-9)
技术图片
而系统默认的遮罩码umask为:0022,其中最后三位有用,系统默认创建的文件权限为:666,系统默认创建的目录权限为:777。似乎可以理解为当前系统文件权限是666-022的结果得到644,当前系统目录的权限是777-022得到的结果是755。
技术图片
现在我们将遮罩码umask值设置为:0033,发现之前的理解并不完全正确,当前系统的目录权限是777-033得到的结果是744,但是当前系统文件的权限并不是666-033得到633,而实际为644。是由于计算目录的权限前需要将umask里所有的奇数减1。(如图1-11和图1-12)
技术图片
技术图片
现在反过来看,我们求umask的数值,如果创建文件的时候默认的权限为444,请问umask应该设置为多少?
技术图片


(4)了解一些特殊权限
(4.1)首先大家有没有思考过这样的问题,就是一个普通用户user为何能通过passwd修改自己的用户密码,而我们知道用户密码都是加密后存放在/etc/shadow中的,查看一下该文件的权限,如下:
技术图片
发现该文件中的user作为other用户不可能修改文件的内容,但是为什么user能够修改自己密码并且存入/etc/shadow中呢?
技术图片
首先是suid,特殊权限表示为s,作用在可执行文件的文件所有者owner上面,该权限表示任何拥有该文件权限的人,在执行的过程时都临时拥有该文件属主的权限。因为在文件所有者中有特殊权限s,所以在普通用户修改自己密码时,是通过临时获取了root的权限,然后才能修改密码并且存入到/etc/shadow中。
技术图片
接下来我们通过一个简单的例子来更好的说明这个特殊权限的功能
技术图片
技术图片
技术图片
然后我们将vim命令的属主加上s位。
技术图片
技术图片
技术图片
(4.2)对于sgid,特殊权限表示为s,在这里分为两种情况:
①当对一个可执行的二进制文件作用了SGID权限之后,任何拥有执行该文件权限的人,在执行的过程时都临时拥有该文件所属组的权限。
②当对一个目录作用了SGID权限之后,任何对该目录有wx权限的用户在该目录下创建的文件及目录的所有属均为目录的所有组。
假设存在一个目录/rh124,这个目录所属组为users,如果/rh124所属组的权限里有s位的话,那么不管是谁在这个目录里创建的文件或者目录,都将继承rh124所属组。
技术图片
技术图片
技术图片
(4.3)对于sticKy,特殊权限表示为t,它的功能为当对一个目录作用了sticKy之后(只限制组用户,目录的owner不受影响),该目录下的文件仅其所属者才能删除。
用于目录other的位置,意味着这个目录里的东西,除了所有者和root之外,其他用户时没有权限删除的,即使权限是777也不行。
使用root用户创建一个目录名为11,设置目录的可执行权限为777,设置目录11的属主和属组为tom。
技术图片
接着切换到tom用户,在11目录下创建test1文件,并设置test1文件的权限为777。
技术图片
测试发现jerry用户是可以直接删除tom用户创建的test1文件的。
技术图片
接着使用root用户给目录11的other位置加上t位,此时发现jerry用户无法删除tom用户创建的test1文件了。
技术图片
技术图片
(4.4)有时候我们看到设置文件权限的时候会有4个数字,其中第一个数字代表的就是suid,sgid,sticKy相关权限的组合(如图4-18和图4-19):
技术图片
技术图片
(4.5)文件的隐藏属性
文件的隐藏属性对于系统的安全有很大的帮助,尤其是在系统安全(Security)上面,不过要先强调的是,底下的chattr指令只能在Ext2/Ext3/Ext4的Linux传统文件系统上面完整生效,其他的文件系统可能就无法完整的支持这个指令了,例如xfs仅支持部分参数而已。
chattr(配置文件隐藏属性图4-20和图4-22)
chattr [+-=] [ASacdistu] 文件或目录名称
选项与参数:
+:增加某一个参数,其他原本不存在的参数则不动。
-:移除某一个特殊参数,其他原本不存在的参数则不动。
=:设定一定且仅有后面接的参数
A:当设定了A这个属性时,若你有存取此文件或目录时,他的访问时间atime将不会被修改。可避免I/O较慢的机器过度的存取磁盘。
S:一般文件是异步写入磁盘的,如果加上S这个属性时,当你进行任何文件的修改,该更动会同步写入磁盘中
a:当设定a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才能设定这属性。
c:这个属性设定之后,将自动的将此文件压缩,在读取的时候将会自动解压缩,但是在存储的时候,将会先进行压缩后再存储。
d:当dump程序被执行的时候,设定d属性将可使该文件或目录不会被dump备份。
i:这个i可就厉害了,他可以让一个文件不能被删除、改名、设定连接也无法写入成新增数据,对于系统安全性有相当大的帮助,只有root能设定此属性。
s:当文件设定了s属性时,如果这个文件被删除,他将会被完全的移除这个硬盘空间,所以如果误删了,就完全无法救回来了。
u:与s相反,当使用u来配置文件时,如果该文件被删除了,则数据内容其实还是存在磁盘中,可以来救援该文件。
注意:属性设定常见的是a与i的设定值,而且很多设定值必须要作为root才能设定
技术图片
技术图片
lsattr(显示文件隐藏属性图4-21和图4-23)
lsattr [-adR] 文件或目录名称
选项与参数:
-a:将隐藏文件的属性也显示出来。
-d:如果接的是目录,仅列出目录本身的属性而非目录内的文件名。
-R:连同子目录的数据也一并列出来。
技术图片
技术图片

以上是关于我的Linux,我做主!Linux权限管理详解的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习之ACL权限详解

Linux权限管理详解

详解Linux账户和权限管理

[OS-Linux]详解Linux的权限

[OS-Linux]详解Linux的权限

Linux命令详解-文件权限管理