linux权限管理原则,Linux权限管理详解

Linux中权限的种类较多,可以划分为用户对文件的权限、用户对系统命令的权限和文件特殊权限三类。下面详细阐述。

阐述设置权限的意义和作用

一、用户对文件的权限

用户对文件的权限是指用户拥有的对文件的增删改查操作。又可以细分为基本权限(ugo)、umask权限和ACL权限。

1、基本权限

1)、权限位

Linux文件的权限为一共是10位。第一位标示文件类型,之后每三位标示所有者、所属组和其他人的权限。

f27b74379f28548154718b048ec96a8a.png

所有者、所属组和其他人都有rwx(读写执行)权限,分别用数字4、2、1表示。

第一位:表示文件类型。常见的文件类型有

-   普通文本文件

d  目录

l   软链接

b  块设备文件

c  字符设备文件

s  套接字

p  管道

之后九位每三位为一组分别是所有者、所属组、其他人的权限

至于权限位最后的点,有人认为是结束符,有人认为是SELinux的安全标签。在这里不做区分。

2)、权限含义

权限限制了用户对文件的操作,但是对于目录和文件,权限的含义是不同的。

①权限对文件的含义

注明:因为在Linux中一切皆文件,而此处的文件不再是广义上的文件,就是指基本的包含了数据内容的文件。

☆ r:表示能读取文件的数据

☆ w:表示能编辑修改文件中数据内容

☆ x:表示文件可执行。无论该文件能否正确执行。

②权限对目录的含义

对于目录而言,目录中的"数据内容"就是文件名。

☆ r:能够查询目录中包含了哪些文件

☆w:编辑和删除目录中的文件

☆x:表示可以进入到目录

3)、相关命令

★ chown -- 既可以修改所属组也可以修改所有者

chown user1:user aa  % 将文件aa的所有者,所属组同时修改为user1

★ chgrp -- 修改文件所属组

chgrp user1 aa        % 将文件aa的所属组修改为user1

★ chmod -- 修改文件权限

chmod 755 aa          % 将文件aa的权限设置为755(rwxr-xr-x)

2、umask权限

1)、umask是设置文件默认权限的命令。用法如下:

[root@localhost /]# umask -S        %以rwx形式显示新建文件的缺省权限

[root@localhost /]#umask 022      %设置文件或目录的默认缺省权限

注意:此处的修改都是临时生效的,关机重启之后就会失效,若想永久生效,需要修改配置文件/etc/profile,文件中有关umask的部分剪切如下:

17fd78d1415a8a3ec6d01a14fde081bf.png

文件内容是:如果用户的UID大于199,并且UID的组名与用户名相同,那么默认权限是002;否则是022。通俗讲就是普通用户的umask权限是002,root用户的umask权限是022。因为默认root用户的UID是0.(002与022的含义下面讲)

2)、权限设置

合理的权限设置是保证系统安全的重要手段。对于文件来说,执行权限是最高权限,因为有的病毒,***就是可执行文件,若是直接赋予执行权限,后果不堪设想;对于目录来说则没有限制。所以文件的默认权限最高设置为666,目录的默认权限最高设置为777。

系统中新建文件或目录的权限是拿最高权限与umask值相减得到的。所以默认文件和目录的权限整理如下:文件目录

root644755

普通用户664775

另外在权限设置时,ugo的权限应该是递减的,不允许其他人的权限大于所有者的权限;像一些111,751,654等权限都是不合理的,合理的权限除了满足ugo权限缩小的原则外,只能是0、5、7的结合。

3、ACL权限

1)、ACL权限的含义和作用

ACL权限的出现是满足用户对文件身份不足的情况的。当需要限定某一个用户对文件拥有不同于ugo的权限,就考虑加ACL权限。用户只对添加了ACL权限的文件生效,对于其他文件,仍是按照ugo的方式执行。

2)、ACL权限设置相关命令

☆ 查看ACL

[root@localhost ~]#getfacl 文件名

☆ 设定ACL

[root@localhost ~]# setfacl 选项 文件名

选项:

-m 设定ACL权限

-x  删除指定的ACL权限

-b  删除所有的ACL权限

-d  设定默认ACL权限

-k  删除默认ACL权限

-R  递归设定ACL权限

例:

setfacl -m u:user1:rx  aa            % 对用户user1在文件aa上设置ACL权限值为读和执行权限

setfacl -m u:user1:rx  -R /perm  % 对用户user1在目录perm上递归创建ACL权限值为读和执行

setfacl -x u:user1 aa                  % 删除用户user1对文件aa的ACL权限

setfacl -b aa                              % 删除文件aa上所有的ACL权限

setfacl -m d:user1:rx /perm        % 对用户user1在目录perm上创建默认ACL权限

注:递归ACL权限指的是对目录和目录中文件拥有指定的相同权限;默认ACL权限指的是用户对目录中新建的文件或目录执行指定权限

a593fb41b192330a87d2ac73c4c72900.png

对文件创建了ACL权限后,文件权限位最后变成了+,如上图所示。

二、用户对系统命令的权限

用户对系统命令的权限主要介绍sudo。sudo是授予普通用户部分管理员功能的命令,经过授权后,普通用户可以执行管理员指定的命令。sudo用法如下:

执行命令visudo打开sudo的配置文件:

ALL      ALL=(ALL)ALL

用户名 被管理的主机地址 =(用户身份) 授权命令

例:

授权普通用户user1可以重启服务器

......

user1 ALL=/bin/shutdown -r now

......

登录到普通用户user1,执行

[user1@localhost ~]$ sudo shutdown -r now

三、文件特殊权限(SetUID 、SetGID、SetBIT)

文件特殊权限由三种:SetUID、SetGID和SBIT分别用数字4、2、1表示,若是算上基本权限,权限位一共有四位。

1、SetUID

赋予条件:

☆可执行的文件;

☆命令执行者在执行程序时获得文件属主的身份;

☆用户身份改变只在执行过程有效

设置与取消SetUID:

chmod 4755 /bin/cat  或 chmod u+s /bin/cat   % 设置SetUID权限

查看cat命令

此处有图SUID

可以看到加上SUID权限后,命令属组权限的x变成了s

chmod u-s /bin/cat 或   chmod 755  /bin/cat    % 取消SetUID权限

2、SetGID

赋予条件:

☆可执行的文件

☆命令执行者在执行过程中变成程序的属组

☆用户身份改变只在执行过程有效

设置与取消SetGID:

chmod 2755 文件名 或 chmod g+s 文件名    % 设置SetGID权限

chmod 755 文件名  或  chmod g-s  文件名    % 取消SetGID权限

3、SBIT

SBIT也叫做粘着位,只能对目录有效;普通用户对目录拥有w和x权限;赋予了粘着位之后,普通用户即使有写权限,也不能删除目录中文件,普通用户只能删除自己建立的文件。但是设置粘着位必须把目录的权限设置为777,但是这样做违反了权限的赋予原则,权限设置带来的安全隐患要大于利处。

设置与取消SBIT:

chmod 1777 目录名  或 chmod o+t 目录名     % 设置SBIT

chmod 777   目录名  或 chmod o-t  目录名     % 取消SBIT

注意:无论是SetUID、SetGID还是SBIT都不建议使用,手工赋予文件或目录特殊权限,一旦出现服务器问题时,很难想到是文件或目录权限的问题,另外设置文件特殊权限存在一定的安全隐患。

四、文件系统属性(chattr)

通过chattr可以直接给目录或权限设置属性,命令各如下:

#chattr [+-=][选项] 文件或目录名

+: 增加权限

-: 删除权限

=: 等于某权限

选项:

i:i属性

对文件不允许对文件进行删除、改名,也不能添加和修改数据;

对目录,只能修改目录下文件的数据,但不允许建立和删除文件。

a:a属性

对文件,能增加数据,但是不能删除也不能修改数据;

对目录,允许在目录中建立和修改文件,但是不允许删除

e:e属性

linux系统的大多数文件默认的属性。表示该文件是利用ext文件系统进行存储,而且不能使用chattr -e命令取消e属性。

查看文件系统属性

[root@localhost]#lsattr 选项 文件或目录名%查看文件或目录的属性

选项:

-a--显示所有文件和目录

-d--显示目录属性

五、SELinux权限

待续

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值