文件权限管理之chattr

你是否遇到过文件或目录具有可读写权限,但是使用root用户删除、修改时提示"Operation not permitted"的情况。可能是由于chattr设置了文件的隐藏保护权限导致。通过chattr命令修改文件或目 录属性能够提高系统的安全性。与chmod命令相比,chmod只是改变文件的读写、执行权限,更底层 的属性控制是由chattr命令改变的。本文主要介绍chattr和lsatt命令的语法和基本介绍。

说明:这两个命令在工作中用的比较少,经常用到的场景就是解决"Operation not permitted"问题。 至于它们语法,掌握最基本的就可以了。就是会查属性、会修改属性就可以了。

chattr命令语法

chattr [+-=] [ASacdistu] File/Directory

参数说明:

+-=:分别为 [+ 增加] [- 减少] [= 设定] 指定属性
A :当设定了 A 这个属性时,文件或目录的存取时间atime (access) 将不可被修改。
S :这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中!可以有效的避免数据流失!
a :文件将只能增加数据,而不能删除,只有 root 才能设定这个属性。
c :这个属性设定之后,将会自动的将此文件『压缩』,在读取的时候将会自动解压缩出来,但是在储存的时候,将会先进行压缩之后再储存。
d :当 dump (备份)程序被执行的时候,设定 d 属性将可使该档案(或目录)具有 dump 功效!
i :指定文件不能被删除、改名、也无法写入或新增数据!对于系统安全性有相当大的帮助!
j :当使用 ext3 这个档案系统格式时,设定 j 属性将会使档案在写入时先记录在 journal 中!
但是当 filesystem 设定参数为 data=journalled 时,由于已经设定了日志了,所以这个属性无效!
s :当文件设定了 s 参数时,他将会被完全的移除出这个硬盘空间。
u :与 s 相反的,当使用 u 来设定文件时,则数据内容其实还存在磁盘中,可以使用 undeletion.

chattr使用实例

1、设置指定文件的隐藏属性,使其无法删除、修改。

chattr +i /home/config/config.conf #添加"i"隐藏属性后,就无法更动config.conf这个文件了

2、取消文件的删除、修改保护权限

chattr -i /home/config/config.conf #解除"i"这个隐藏属性

lsattr命令语法

lsattr [-aR] File/Directory

参数说明

-a :将隐藏文件的属性也列出来;
-R :连同子目录的数据也一并列出来!

lsattr使用实例

查看指定文件隐藏属性

lsattr file.txt

权限管理之su、sudo

su切换用户与sudo提权

1、介绍

因为root用户的权限太大,破坏力太强,安全风险极高,所以通常情况下公司的服务器对外都是禁止 root用户直接登录的,而运维组的小伙伴通常使用的都是普通用户,但是运维组内的小伙伴们在进行日 常运维管理的过程中,经常需要获得某些root才有的管理权限才能完成任务,例如需要执行/sbin目录下 的命令。

那么如何才能在不使用root用户直接登录操作系统的同时又能保证普通用户完成日常工作呢,有两种 方案

1、su切换用户身份

特点:使用普通用户登录,然后使用su命令切换到root账户下
优点:简单粗暴
缺点:
1、需要知道root密码
2、权限控制不精细:每次都是获取所有root权限

2、sudo提取部分管理员权限

特点:
1、使用普通用户登录,然后sudo命令提取root用户的部分管理权限,注意只是某部分,而不是全部。
2、不需要切换到root账户下
优点:相对复杂
缺点:
1、不需要知道root密码,输入的是用户自己的密码
2、权限控制更为精细:可以控制普通用户只获取部分root权限

2、su切换用户

储备知识

linux中shell可以分两类

登陆shell,需要输入用户名和密码才能进入Shell,日常接触的最多的一种非登陆shell,不需要输入用户和密码就能进入Shell,比如运行bash会开启一个新的会话窗口

插一句:shell的使用方式有两种

交互式,等待用户输入执行的命令(终端操作,需要不断提示)非交互式,执行shell脚本, 脚本执行结束后shell自动退出

bash shell配置文件介绍(文件主要保存用户的工作环境)

全局配置文件:/etc/profile/etc/profile.d/*.sh/etc/bashrc个人配置文件:~/.bash_profile~/.bashrcprofile类文件, 设定环境变量, 登陆前运行的脚本和命令。bashrc类文件, 设定本地变量, 定义命令别名PS: 如果全局配置和个人配置产生冲突,以个人配置为准。

配置文件的应用顺序

如果执行的是登录式shell,那么配置文件执行顺序是:
/etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc如果执行的是非登录式shell,那么配置文件执行顺序是:
~/.bashrc->/etc/bashrc->/etc/profile.d/*.shPS: 验证使用echo在每行添加一个输出即可,注意,要把输出放在文件的第一行。

执行登录与非登录shell

执行登录shell:身份与环境都切换
su - 用户执行非登录shell:只切换用户身份
su 用户补充:
1、从root往普通用户下切换无需输入密码,反之则需要
2、切换身份执行命令:su - 用户 -c “命令”

3、sudo提权

在日常的运维工作中,我们不应该把root的密码公开给所有人,因为,一方面,真那样做的话,安全 风险就太高了,删库到跑路发生的概率估计会加大,另外一方面,小伙伴们大多数情况下只需要提取某 一些权限来使用即可也并不是需要所全部的管理员权限,所以说sudo比su更为靠谱一些。

通过配置sudo,我们可以实现让普通用户输入自己的密码的情况下而获取我们为其配置的特定权 限,这样,既保证了普通用户拥有他想要的特定权限,又不至于泄露管理root的密码。

4、配置

两种编辑方式

1、visudo(会提示语法错误,推荐使用)

[root@laser ~]# visudo -c # 检查配置是否正确
/etc/sudoers:解析正确

2、vim /etc/sudoers

 sudo 语法
user MACHINE=COMMANDS示如root ALL=(ALL) ALL
1、root:用户
2、ALL:代表用户可以在哪台机器上执行指令,通常设置为ALL,如果设置为localhost代表在本机上执行指令。也可以设置为本机以外的其他IP地址或主机名,此时该/etc/sudoers虽然是在本机上配置的,但用户登录到本机后仍然是无法执行命令的,如果把/etc/sudoers这个配置文件赋值到指定ip或主机名的那台机器上,就好用了配置文件中讲到:// Next comes the main part: which users can run what software on// which machines (the sudoers file can be shared between multiple             systems).即/etc/sudoers文件可以在多个系统之间共享,如果我们设置成ALL的话就省事了,该文件复制到人任意一台机器上的完成的权限配置都一样
3、(All):表示允许用户以哪个用户的权限做事情
4、ALL:所有命令最终解释:root用户可以在所有主机上以任意用户身份执行所有命令user01 ALL=(ALL) ALL   // user01用户在任何机器上,可以以任何用户身份执行任何命令等同于root用户chem ALL=(ALL) NOPASSWD: ALL  // 免密
cm ALL=(ALL) /bin/cp,/bin/touch  //只允许cm用户以root用户的身份执行cp,touch命令
user01 ALL=(ALL) ALL,!/usr/bin/vim /test/a.txt   // !代表取反
user02 ALL=(ALL) /usr/bin/passwd [a-zA-Z]*,/usr/bin/vim *,!/usr/bin/vim/test/a.txt   // 可以编辑所有文件,除了/test/a.txt可以测试
[root@laser ~]# su - user02
上一次登录:二 12月 20 11:21:01 CST 2022pts/0 上
[user02@laser ~]$
[user02@laser ~]$ sudo vim /test/b.txt
[user02@laser ~]$ sudo vim /test/a.txt
对不起,用户 user02 无权以 root 的身份在 user02 上执行 /bin/vim /test/a.txt。
[user02@laser ~]$

测试

[root@laser ~]# su - cm
上一次登录:四 9月 10 20:27:09 CST 2020pts/0 上
[cm@laser /]$ ll -d /etc/
drwxr-xr-x. 146 root root 8192 9月 10 20:27 /etc/
[cm@laser /]$ touch /etc/a.txt # =================> 没有权限
touch: 无法创建"/etc/a.txt": 权限不够
[cm@laser /]$ sudo touch /etc/a.txt # =================> 使用sudo提权
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:// 1) 尊重别人的隐私。// 2) 输入前要先考虑(后果和风险)。// 3) 权力越大,责任越大[sudo] egon 的密码:
[cm@laser /]$ ll /etc/a.txt
-rw-r--r-- 1 root root 0 9月 10 20:28 /etc/a.txtps: sudo 执行流程
1.普通用户执行sudo命令, 会检查/var/db/sudo是否存在时间戳缓存
2.如果存在则不需要输入密码, 否则需要输入用户与密码
3.输入密码会检测是否该用户是否拥有该权限
4.如果有则执行,否则报错退出

Sudo 常用参数

sudo常用参数:-l : 登录用户下面,执行sudo -l 显示当前用户有哪些权限-k :删除/var/db/sudo/下面对应的时间戳的信息,下次执行sudo需要输入当前用户的密码--> 系统默认也是5分钟失效--> 配置免密是另一种情况 NOPASSWD: ALL远程sudo(有条件限制的)

其他配置详见配置文件

5、sudo实例

企业生产环境用户权限集中管理方案实例

根据角色的不同,给不同的用户分配不同的角色# 1.创建初级工程师3个,网络工程师1个,中级工程师1个,经理1个
批量创建用户
for user in chuji{01..03} net01 senior01 manager01
> do
> useradd $user
> echo "111111"|passwd --stdin $user
> done;2.创建5个开发人员,属于phpers组
groupadd -g 999 phpersfor n in `seq 5`
douseradd -g phpers php0$n
done3.创建开发经理,中级phper
for user in kaifaManager seniorPhper
> do
> useradd $user
> echo "111111"|passwd --stdin $user
> done4.编辑配置文件
[root@laser ~]# vim /etc/sudoers后续很麻烦, 代码无法展示, 敬请搜索其他博客!

文件权限管理之chattr权限管理之su、sudo相关推荐

  1. 不是Linux文件系统的权限,Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)...

    文件系统的权限管理(DAC体系:自主访问控制体系): 普通权限 特殊权限 文件的扩展属性 FACL(文件系统访问控制列表) 安全上下文: 任何在计算机中执行的任务都是由进程来实现的,所以进程就有必要访 ...

  2. centos普通用户修改文件权限_Linux CentOS更改文件的权限与用户及用户组管理命令...

    记录下Linux CentOS更改文件的权限命令与用户及用户组管理命令,供大家参考. Linux CentOS更改文件的权限命令 chgrp  (全称:change group) groupadd t ...

  3. linux限制组访问权限,linux用户和组管理以及文件权限访问控制ACL策略

    01.通配符 文件通配符可以用来匹配符合条件的多个文件,方便批量管理文件. 通配符采用特定的符号,表示特定的含义,此符号称为元 meta 字符. 常见的通配符如下: * 匹配零个或多个字符,但不匹配 ...

  4. Linux权限管理---最全最详细的文件权限设置管理,手把手教你设置文件权限UGO和数字权限,高级权限等等

    权限管理 linux权限管理介绍 主要给文件或者目录设置权限,权限对用户生效 权限: 读:r 4 写:w 2 执行:x 1 权限 U G O  3部分 rw- - - U G O U==文件的所有者 ...

  5. Linux 指令——文件和用户管理以及用户权限

    Linux 指令--文件和用户管理以及用户权限 方便快捷指令 文件和用户管理 文件管理 文件管理命令 参数 例子 vim指令 用户管理 管理用户指令 参数 例子 用户权限 用户权限命令 ACL用户权限 ...

  6. Linux 权限管理: 权限的概念、权限管理、文件访问权限的设置、 粘滞位

    Linux下的基本指令 目录: 权限的概念 权限管理 文件访问权限的设置方法 目录的权限 粘滞位 权限的概念 Linux下用户有两种: 超级用户(root).普通用户. 超级用户:具有最高权限,可以在 ...

  7. Linux 01day--基础命令01(目录操作、拷贝、链接、文件权限及所有者所在组、查找文件、安装卸载、磁盘管理)

    查看目录下的文件: tree(需要安装tree:sudo apt-get install tree) ls 略 ls -l 详细(主要查看权限) ls -a 查看隐藏文件("."点 ...

  8. kali修改文件权限不够_Linux用户权限管理及用户权限管理命令操作

    Ubuntu 是一个多用户系统,我们可以给不同的使用者创建不同的用户账号,每个用户使用各自的账号登陆,使用用户账号的目的一是方便系统管理员管理,控制不同用户对系统的访问权限,另一方面是为用户提供安全性 ...

  9. 权限管理-chattr权限(通俗易懂)

    1.chattr命令格式 命令:chattr [+ - =] [选项] 文件或目录名 说明: +: 增加权限             -: 删除权限            =: 等于某权限 选项: i ...

最新文章

  1. 你的Windows电脑里有哪些效率翻倍的生产力软件?
  2. Node.js中文件上传与multer模块的应用
  3. 大数据5年规模将达8000亿
  4. 如何优雅的完成长截图?
  5. 事务之五:Spring @Transactional工作原理
  6. 032-session函数
  7. PHP提取中文首字母
  8. 网站备案靠谱吗_网站外包靠谱吗目前都是什么价位
  9. 飞鸽传书文件传输实现原理
  10. c语言突然出现图片,c语言能显示图片吗
  11. 笔者使用macOS的一些经验点滴记录1
  12. python基础教程pdf-python基础教程第三版.pdf
  13. 2018linux市场份额数据,2018年7月Windows 10市场份额上涨,Linux仅占1.35%
  14. learning scala pattern matching 03
  15. CUDA入门(六) 异步并行执行解析
  16. 微信小程序实现选项卡切换功能
  17. openwrt路由器samba拒绝访问
  18. 卸载删除gitlab
  19. vscode生成的.BROWSE.VC.DB文件超大问题
  20. 计算机配色软件开发,电脑配色软件各个行业的应用

热门文章

  1. 影响用户忠诚度的因素有哪些呢?
  2. 键盘输入a,到屏幕显示,操作系统做了什么
  3. java基础视频25days(毕老师)学习日志(day01、day02、day03)
  4. 情人节程序员用HTML网页表白【守护爱情(泡泡游戏)】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  5. 骁龙660是32位还是64位_骁龙660和626哪个好 骁龙626和骁龙660区别对比
  6. js 判断字符串内容是否相同,不考虑字符的顺序
  7. 计算机文化周,第十一届计算机文化节如期而至
  8. 转:视觉中国的NoSQL之路:从MySQL到MongoDB
  9. 【练习题】定义一个字典类:dictclass。完成下面的功能:
  10. python中,使用3σ原则来删除数据中的异常值