Linux权限管理 chattr命令、lsattr命令、sudo命令
chattr命令
chattr命令用来修改文件系统的权限属性
[root@localhost ~]# chattr [+-=] [选项] 文件或目录名
选项:
| 选项 | 选项说明 |
|
+ |
増加权限 |
|
- |
删除权限 |
|
= |
等于某权限 |
|
i |
如果对文件设置属性,那么不允许对文件进行删除、改名,也不能添加和修改数据; 如果对目录设置 i 属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件 |
|
a |
如果对文件设置 a 属性,那么只能在文件中増加数据,但是不能删除和修改数据; 如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除文件 |
|
e |
Linux 中的绝大多数文件都默认拥有 e 属性,表示该文件是使用 ext 文件系统进行存储的, 而且不能使用"chattr -e"命令取消 e 属性 |
例如:
1. 给文件赋予属性
#建立测试文件
[root@localhost ~]# touch ftest #增加属性
[root@localhost ~]# chattr +i ftest #删除属性
#被赋予i属性后,root不能删除
[root@localhost ~]# rm -rf flest
rm:无法删除"ftesr":不允许的操作 #也不能修改文件中的数据
[root@localhost ~]# echo >>ftest
-bash:ftest:权限不够
2. 给目录赋予i属性
#建立测试目录
[root@localhost ~]# mkdir dtest #再建立一个测试文件abc
[root@localhost dtest]# touch dtest/abc #给目录赋予i属性
[root@localhost ~]# chattr +i dtest/ #dtest目录不能新建文件
[root@localhost ~]# cd dtest/
[root@localhost dtest]# touch bed
touch:无法创建"bcd":权限不够 #但是可以修改文件内容
[root@localhost dtest]# echo >>abc
[root@localhost dtest]# cat abc #不能删除
[root@localhost dtest]# rm -rf abc
rm:无法删除"abc":权限不够
此时,flest 文件和 dtest 目录都变得非常强悍,即便你是 root 用户,也无法删除和修改它。若要更改或删除文件,也必须先去掉 i 属性才可以。命令如下:
[root@localhost ~]# chattr -i ftest
[root@localhost ~]# chattr -i dtest/
在某个项目中,我们可以每天自动实现把服务器的日志备份到指定目录,备份目录可设置 a 属性,变为只可创建文件而不可删除。命令如下:
#建立备份目录
[root@localhost ~]# mkdir -p /back/log #赋予a属性
[root@localhost ~]# chattr +a /back/log/ #可以复制文件和新建文件到指定目录中
[root@localhost ~]# cp /var/log/messages /back/log/ #但是不允许删除
[root@localhost ~]# rm -rf /back/log/messages
rm:无法删除"/back/log/messages":不允许的操作
说明:chattr 命令不宜对目录 /、/dev/、/tmp/、/var/ 等进行设置,严重者甚至容易导致系统无法启动。
lsattr 命令
命令格式:
[root@localhost ~]# lsattr 选项 文件名 选项:
选项:
| 选项 | 选项说明 |
|
-a |
显示所有文件和目录 |
|
-d |
如果目标是目录,则仅列出目录本身的属性,而不会列出文件的属性 |
例如:查看/back/log/目录,其拥有a和e属性
[root@localhost ~]#lsattr -d /back/log/
-----a------e- /back/log/
sudo命令
[root@localhost ~]# visudo
…省略部分输出…
root ALL=(ALL) ALL
# %wheel ALL=(ALL) ALL
这两行是系统为我们提供的模板,我们参照它写自己的就可以了
格式说明:
root ALL=(ALL) ALL
#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
#%wheel ALL=(ALL) ALL
#%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
参数的具体含义如下:
用户名/组名:代表 root 给哪个用户或用户组赋予命令,注意组名加"%"。
用户可以用指定的命令管理指定 IP 地址的服务器。如果写 ALL,则代表用户可以管理任何主机;如果写固定 IP,则代表用户可以管理指定的服务器。如果我们在这里写本机的 IP 地址,则不代表只允许本机的用户使用指定命令,而代表指定的用户可以从任何 IP 地址来管理当前服务器。
可使用的身份:就是把来源用户切换成什么身份使用,(ALL) 代表可以切换成任意身份。这个字段可以省略。
授权命令:代表 root 把什么命令授权给普通用户。默认是 ALL,代表任何命令,这当然不行,如果需要给哪个命令授权,则只需写入命令名即可。不过需要注意,一定要写绝对路径。
授权用户 zhangsan 可以重启服务器
由 root 用户添加,如下行:
[root@localhost ~】# visudo
zhangsan ALL=/sbin/shutdown -r now
指定组名用百分号标记,如 %admgroup,多个授权命令之间用逗号分隔。用户 zhangsan 可以使用 sudo -l 查看授权的命令列表。
#切换成zhangsan用户
[root@localhost ~]# su - zhangsan #查看授权的命令列表
[zhangsan@localhost ~]$ sudo -l #需要输入zhangsan用户的密码
[sudo] password for zhangsan:
User zhangsan may run the following commands on this host:
(root) /sbin/shutdown -r now
可以看到zhangsan 用户拥有了 shutdown -r now的权限
提示输入密码为 zhangsan 普用户的密码,是为了验证操作服务器的用户是不是 zhangsan 用户本人。zhangsan 用户需要执行时,只需使用如下命令:
[zhangsan@localhost ~]$ sudo /sbin/shutdown -r now
zhangsan 用户即可以重启服务器。注意,命令写绝对路径,或者把 /sbin 路径导入普通用户 PATH 路径中,否则无法执行。
Linux权限管理 chattr命令、lsattr命令、sudo命令的更多相关文章
- Linux系列教程(十七)——Linux权限管理之文件系统系统属性chattr权限和sudo命令
上篇博客我们介绍了权限管理的ACL权限,通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限.这篇博客我们将介绍权限管理中用的比较多的两个命令 chattr 和 sudo . 1.设定文件系统 ...
- Linux—权限管理
Linux 权限管理 1.权限简介 Linux权限是操作系统用来限制对资源访问的机制,权限一般分为读.写.执行.系统中每个文件都拥有特定的权限:属主.属组以及其他人,通过这样的机制来限制哪些用户或用户 ...
- 【Linux】 Linux权限管理与特殊权限
Linux权限管理 权限管理这方面,非常清楚地记得刚开始实习那会儿是仔细研究过的,不知道为什么没有笔记留痕..除了一些基本的知识点早就忘光了,无奈只好从头开始学习一遍.. ■ 基本权限知识 这部分实在 ...
- linux权限管理-特殊权限
目录 linux权限管理-特殊权限 一,特殊权限 Linux权限属性chattr概述 linux进程掩码umask linux权限管理-特殊权限 一,特殊权限 1.suid(4000) SetUID( ...
- Linux系列教程(十六)——Linux权限管理之ACL权限
通过前面的两篇博客我们介绍了Linux系统的用户管理,Linux用户和用户组管理之相关配置文件 讲解了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow ...
- Linux基础知识之用户和用户组以及 Linux 权限管理
已经开始接触Linux用户管理,用户组管理,以及权限管理这几个逼格满满的关键字.这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时候看到这些名词总是下意识的跳过不敢看 ...
- Linux权限管理之ACL权限
注:转载自:https://www.cnblogs.com/ysocean/p/7801329.html 目录 1.什么是 ACL 权限? 2.查看分区 ACL 权限是否开启:dump2fs ①.查看 ...
- [Linux 003]——用户和用户组以及 Linux 权限管理(一)
嗬!没想到吧!学习 Linux 的第三天,我们已经开始接触用户管理,用户组管理,以及权限管理这几个逼格满满的关键字.这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时 ...
- 用户和用户组以及 Linux 权限管理
1.从 /etc/passwd 说起 前面的基本命令学习中,我们介绍了使用 passwd 命令可以修改用户密码.对于操作系统来说,用户名和密码是存放在哪里的呢?我们都知道一个站点的用户名和密码是存放在 ...
随机推荐
- Appium python自动化测试系列之元素的定位(六)
6.1 常用定位方法讲解 对象定位是自动化测试中很关键的一步,也可以说是最关键的一步,毕竟你对象都没定位那么你想操作也不行.所以本章节的知识我希望大家多动手去操作,不要仅仅只是书本上的知识,毕竟这个 ...
- Android开发教程:shape和selector的结合使用(转载)
shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector.可以这样说,shape和 ...
- Discuz二次开发手册
Discuz文件说明,有助于discuz爱好者,进行自己的开发,在这里提供方便 admincp.php——后台系统设置主程序文件,一般只处理菜单的显示的访问权限,不处理管理控制. ajax.php—— ...
- 003android初级篇之【转】Android开发中颜色的定义方法
正好用到颜色的定义,但脑子里没有记住具体,转载一篇加强印象 1.使用Color类的常量,如: int color = Color.BLUE; // 创建一个蓝色 是使用Android提供的颜色 int ...
- 【转】ATL提供的所有转换宏
在头文件<atlconv.h>中定义了ATL提供的所有转换宏,如: A2CW (LPCSTR) -> (LPCWSTR) A2W (LPCSTR) -> (LPWSTR ...
- orm查询基本操作
orm ----关系对象模型 orm 的查询两种操作 1.基于对象的查询 oneTo one 一对多 和多对多 对象.关联字段 对象.表名(_set)) 2.基于QUERYset的查询 双下划线即为 ...
- Laravel5.1 -控制器(初步了解)
首先道个歉 这篇笔记是前两天就应该写的,可大K有点事儿要忙 就耽误了,今天抽空学了学控制器,并写个笔记分享下. 为什么要使用控制器 像我们之前写一些逻辑呢都是在Route(路由)中,搞得Route文件 ...
- 深入了解UIAutomation 的API
有关UiAUiAutomation的API对象的文件名称. 1.UIAutomation中的对象都是以UIA#####开头的出现的.eg:UIAButton 2.有关Logger对象负责日志的输出 U ...
- HttpWatch使用教程
一 概述: HttpWatch强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功 ...
- 【BZOJ2005】[Noi2010]能量采集 欧拉函数
[BZOJ2005][Noi2010]能量采集 Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把 ...