【我的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:连同子目录的数据也一并列出来。

原文地址:https://blog.51cto.com/13613726/2434516

时间: 2024-08-24 04:32:19

【我的Linux,我做主!】Linux权限管理详解的相关文章

Linux用户、用户组权限管理详解 --- 02

2,用户.用户组管理操作详解: 2.1 adduser 添加用户: adduser [-u uid][-g group][-d home][-s shell] -u:直接给出userID                      -g:直接给出GID -d:直接将根目录建立在已存在目录         -s:定义shell 添加用户 garfield 1 adduser garfield 通过前面介绍的三个用户管理文件检验用户 garfield 的添加是否成功: 当我们新建用户时,通过 /etc

用户与用户组权限管理详解

用户及用户组权限管理    Linux是一个多任务多用户的系统,多用户可以同时登陆同一台主机.为了考虑到每个人的隐私权和工作空间,这时候文件所有者(owner)就是即用户的角色就变得尤为重要了,同时为了用户与用户之间方便合作,共享一些公共资源,这时,为了实现资源的快速分配,我们把多个用户放在一个公共的空间,分别赋予他们不同的读写执行等操作的权限,这些用户共同组成的一个整体,就是所谓的用户组(group). 第一部分 Linux权限管理 用命令ls -l可以列出用户的权限. #ls -l 这里我们

Oracle权限管理详解

转载--CzmMiao的博客生活 Oracle 权限 权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级.System 系统级.Role 角色级.这些权限可以授予给用户.特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户.对管理权限而言,角色是一个工具,权限能够被授予给一个角色,角色也能被授予给另一个角

Elasticsearch shield权限管理详解

ElasticSearch本身没有权限管理模块,只要获取服务器的地址和端口,任何人都可以随意读写ElasticSearch的API并获取数据,这样非常不安全.如果获取了ES的访问IP和端口,一条命令就可以删除整个索引库.好在Elastic公司开发了安全插件shield来解决权限管理问题. https://www.elastic.co/products/shield 一.shield安装 bin/plugin install license bin/plugin install shield 第二

Oracle权限管理详解(转载)

转载:http://czmmiao.iteye.com/blog/1304934  作者:czmmiao Oracle 权限 权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级.System 系统级.Role 角色级.这些权限可以授予给用户.特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户.对管理权限

Shiro权限管理详解<转载>

1 权限管理1.1 什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源. 权限管理包括用户身份认证和授权两部分,简称认证授权.对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问. 1.2 用户身份认证1.2.1 概念 身份认证,就是判断一个用户是否为合法用户的处理过程.最常用的简单身份认证方式是系统通过核对用户输入的用户名

Linux权限管理详解

Linux中权限的种类较多,可以划分为用户对文件的权限.用户对系统命令的权限和文件特殊权限三类.下面详细阐述. 阐述设置权限的意义和作用 一.用户对文件的权限 用户对文件的权限是指用户拥有的对文件的增删改查操作.又可以细分为基本权限(ugo).umask权限和ACL权限. 1.基本权限 1).权限位 Linux文件的权限为一共是10位.第一位标示文件类型,之后每三位标示所有者.所属组和其他人的权限. 2).权限含义 3).相关命令 2.umask权限 3.ACL权限 1).ACL权限的含义和作用

Linux的用户和权限管理

欢迎大家来到我的博客,首先声明此文是我的***作:若文中有不当之处,还请各位前辈大神多多指点,小生在这里先谢过了.生活总有各种不如意,对我来说眼前的一切就是最好的安排:说实话我并不是很喜欢软件这个专业,我是一个文科男,软件世界里的沟沟坎坎对我来说走起来真的有些吃力,来到大学莫名其妙的进了这个专业,成了IT大海里一个小石头.没办法,既来之则安之:唯有迎头向前才能彰显我辈精神啊:大学毕业我这个小石头便阴差阳错的接触到了软件运维这个行业,带着满满的信心怀揣着美好的前景我加入的Linux培训的大军.这不

Linux/Centos7账号与权限管理(超详细实例操作)

Linux/Centos7账号与权限管理 管理用户账号.组账号 查询账号信息 设置文件和目录的权限 设置文件和目录的归属 一.前言概述 ? 作为多用户.多任务(Multi-Users,Multi-tasks)的服务器操作系统,Linux提供了严格的权限管理机制,主要从用户身份.文件权限两个方面对资源进行限制.Linux基于用户身份对资源访问进行控制. 用户账号类别: 超级用户--root,权限最高 普通用户--自定义用户 匿名用户(nobody)类似于Windows中的Guest 程序用户--控