linux用户权限管理

一、权限的分类

普通权限

访问控制列表(ACL)

特殊权限

隐藏权限

二、普通权限

1、权限的赋予应遵循的原则

     (1)可给可不给的不给

      (2)赋权仅给予最恰当的权限

      (3)对于不确定的权限应不赋权

      (4)如确需赋权可给予最小权限

2.权限的识别

  1. Linux 最大权限为 777
  2. 文件最大权限应为 666
  3. 目录最大权限应为 777
  4. 对于所需要的权限可以进行累加
  5.  应注意 Linux 的权限实际为 8 进制 

3、Linux 的属主、数组、其他人解释

    (1)属主(u):即文件 / 目录的主人

    (2)属组(g):即文件 / 目录的主人所在组对其资源权 限

    (3)其他人(o):即非属主、数组对其资源的权限

    (4)所有人(a):即属主、属组、其他人

4、命令:chmod

命令:chmod

功能:改变用户/权限

语法格式:#chmod [选项] <目标>

选项:-R、-v、-f

-R: 递归改变目标权限

-v: 改变权限时候显示详细动作

-f: 忽略在修改文件时的错误信息

操作运算符 :

+: 增加某个权限

-: 去除某个权限

=: 只拥有某个权限 

示例1:对/tmp/d1/f1文件的权限,属主增加rw,属组增加rw,其他人增加r权限

# chmod u+rw,g+rw,o+r f1

示例2:对/tmp/d1/f2文件的权限,属主增加rw,属组增加rw,其他人增加r权限

# chmod 664 f2

三、访问控制列表

对ACL而言就是设定某个特定的账户或组对某个文件/目录的操作权限。

1、dumpe2fs /dev/sda |grep option  ——查看是否支持ACL权限

eg:显示Default mount options:user-xattr acl

2、查看本地文件的ACL的权限——getfacl

语法格式:getfacl [选项] 目标

getfacl f1

3、修改本地ACL权限

语法格式:setfacl [选项] 目标

常用命令:-m,-x,-b,-R,-d

 (1)-m  设定文件ACL权限

(2)-x 删除文件/目录ACL规则

(3)-b 删除所有用户的ACL规则。(图中借用了-R递归)

(4)-d 设定默认的ACL,子目录中传递权限(只对目录有效)

四、特殊权限

1、set位

1>分类

SUID (4)<让其他用户以属主身份执行二进制可执行文件>

SGID (2)<让其他用户以属组身份执行二进制可执行文件>

SBIT (1)<确保用户仅可以删除自己的文件>

2>规则

SUID:①仅对二进制可执行程序生效

  ②普通用户对该文件有执行权限

  ③普通用户在执行该程序时身份临时切换为该程序所有者身份

  ④身份只在执行过程中有效,执行完恢复

    举例:所有用户都可修改自己的密码,但/etc/shadow 文件的权限为000,也就是说除了root外其他用户不能对其进行查看操作。这里就用到了SUID,我们查看passwd 的属性

注意在所有者部分有个S,这就意味这赋予了passwd命令SUID权限,也就是说普通用户在使用passwd命令的时候临时”变成”root对文件进行修改

 SGID:规则和SUID基本相同,在第3点变成切换成所属组身份

       作用1;让执行者临时拥有属组的权限

       作用2:在对设置了SGID目录下创建的目录/文件自动继承该目录的所属组

        举例:使用locate命令访问mlocate.db

从图中可看出,mlocate.db文件只有所有者和所属组可读

  当普通用户(不属于slocate组)执行locate命令时,因为locate命令设置了SGID权限,则普通用户临时具有所属组的身份,继而可以访问mlocate.db文件

SBIT:避免用户之间删除文件,只能删除自己的文件

        举例:创建一个目录赋予777最大权限,在目录下创建文件

给赋予SBIT权限chmod o+t dd/ ,切换用户尝试删除a b c

显示被拒绝。这就是SBIT的效果

五、隐藏权限

命令:chattr

功能:更改文件/目录属性

格式:charrt <选项> 《属性》 《目标》

属性:

a:可追加数据,但无法修改 删除 重命名

i:只能读取数据

示例:

将文件f1增加a属性,并测试  #chattr +a f1

取消a属性 #chattr -a f1

将文件增加i属性 #chattr +i f1  取消 -i

六、su/sudo

1、su <切换当前用户>

su - user:完全切换

su user:部分切换<环境变量没有切换>

2、sudo <让普通用户根据配置文件临时获得root权限>

  只有root用户才可以进行编辑

      sudo的配置文件:/etc/sudoers   #visudo打开,找到98行:

三种配置方式

①配置单用户

参照98行:

User1  ALL=(ALL)   !/usr/bin/passwd,/usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd root

表示user1用户可以以ALL身份(包括root)执行后面的命令

当user1以root身份执行命令的时候:

首先不能修改root的密码!/usr/bin/passwd

  其次可以修改任何用户的密码(排除root密码!/usr/bin/passwd root)

②配置用户组

  参照105行:

  %wheel  ALL=(ALL)  !/usr/bin/passwd,/usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd root

  此命令表示在wheel组中的成员都可以任何身份执行后面的命令,设置完成后在99行前加##(##

表示是注释此行操作)

 %wheel :代表某个用户组

③别名设置(必须大写主机别名、用户别名、命令别名)

  设置用户别名:User_Alias NAME = user1,user2 【21行】

设置命令别名:Cmnd_Alias CMD = /usr/sbin/adduser,!/usr/bin/passwd,/usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd root 【46行】

设置命令:NAME  ALL=(ALL)  CMD 【100行】

七、chow

命令:chown
功能:改变文件 / 目录的属主和 ( 或 ) 属组
语法格式:chown [ 选项 ] [ 属主 . 属组 ] < 目标 >
选项:
-R: 递归
-v: 执行时显示详细信息

示例:

  1. 改变文件属主

1、改变文件属组

2、改变目录属主与属组

3、改变目录、文件以及子目录、文件的属主与属组。

八、chgrp

命令:chgrp

功能:改变文件/目标的属组

语法格式:chgrp [选项] [属组] <目标>

选项:
-R: 递归
-v: 执行时显示详细信息 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值