Linux笔记08(权限)

(一)添加隐藏权限

一、chattr +参数 文件名

[root@mmx Desktop]# chattr +a a.txt
参数 做用
i 没法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅容许补充(追加)内容,没法覆盖/删除内容(Append Only)
S 文件内容在变动后当即同步到硬盘(sync)
s 完全从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A 再也不修改这个文件或目录的最后访问时间(atime)
b 再也不修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便往后恢复
t 让文件系统支持尾部合并(tail-merging)
x 能够直接访问压缩文件中的内容

二、lsattr 查看添加隐藏权限文件

[root@mmx Desktop]# lsattr a.txt 
-----a------------ a.txt

练习1:新增隐藏权限、对文件进行操做安全

# 新建a.txt,添加“仅容许补充(追加)内容”权限
[root@mmx Desktop]# echo nice > a.txt
[root@mmx Desktop]# ls
a.txt
[root@mmx Desktop]# chattr +a a.txt 

# 修改、删除a.txt,发现不行,只能追加
[root@mmx Desktop]# echo good > a.txt 
-bash: a.txt: Operation not permitted
[root@mmx Desktop]# rm -rf a.txt 
rm: cannot remove 'a.txt': Operation not permitted

# 查看a.txt的隐藏权限
[root@mmx Desktop]# lsattr a.txt 
-----a------------ a.txt
[root@mmx Desktop]# chattr -a a.txt 
[root@mmx Desktop]# lsattr 
------------------ ./a.txt

# 成功删除a.txt
[root@mmx Desktop]# rm -rf a.txt 
[root@mmx Desktop]# ls

练习2:不在修改最后访问时间atimebash

 
 

(二)文件访问控制列表技术

基于普通文件或目录设置ACL访问控制其实就是针对指定的用户或用户组设置文件或目录的操做权限,更加精准的派发权限。 markdown

1. setfacl命令

setfacl命令用于管理文件的ACL权限规则ide

语法格式为:“ setfacl [参数] 文件名称”。ui

参数 做用
-m 修改权限
-M 从文件中读取权限
-x 删除某个权限
-b 删除所有权限
-R 递归子目录
[root@mmx Desktop]# setfacl -Rm u:mmx:r-x Linux/

[root@mmx Desktop]# getfacl Linux/
# file: Linux/
# owner: root
# group: root
user::rwx
user:mmx:r-x
group::rwx
mask::rwx
other::rwx
# 清除文件中ACL
[root@mmx Desktop]# setfacl -b Linux/
[root@mmx Desktop]# getfacl Linux/
# file: Linux/
# owner: root
# group: root
user::rwx
group::rwx
other::rwx

2. getfacl命令

getfacl命令用于查看文件的ACL权限规则 rest

语法格式为:“ getfacl [参数] 文件名称” code

# 查看设置权限目录
[root@mmx Desktop]# getfacl Linux/
# file: Linux/
# owner: root
# group: root
user::rwx
user:lisi:r-x
group::rwx
mask::rwx
other::rwx

[root@mmx Desktop]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
group::r-x
other::---

# 使用ll查看文件属性,发现点→变成+
[root@mmx Desktop]# ll
total 0
drwxrwxrwx+ 3 root root 17 Jul  6 13:46 Linux

练习:配置facl

一、拥有张3、李四两个用户递归

[zhangsan@mmx Linux]$ id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan)
[zhangsan@mmx Linux]$ id lisi
uid=1002(lisi) gid=1002(lisi) groups=1002(lisi)

二、查看faclrem

[zhangsan@mmx Linux]$ getfacl .
# file: .
# owner: root
# group: root
user::rwx
user:lisi:r-x
group::rwx
mask::rwx
other::rwx

三、Desktop/Linux文件夹,设置李四r-x权限get

  1. echo nice > a.txt → bash: a.txt: Permission denied
  2. echo nice > nice.txt → ls
    mmx nice.txt
[lisi@mmx Linux]$ echo nice > a.txt
# lisi新建文件显示报错
bash: a.txt: Permission denied

[lisi@mmx Linux]$ exit
exit

# 张三用户使用该文件能够写入文件
[root@mmx Desktop]# su zhangsan
[zhangsan@mmx Desktop]$ cd Linux/
[zhangsan@mmx Linux]$ echo nice > nice.txt
[zhangsan@mmx Linux]$ ls
mmx  nice.txt

3. 备份&恢复ACL

一、备份FACL

getfacl -R Linux > nice.txt

[root@mmx Desktop]# getfacl -R Linux > nice.txt
[root@mmx Desktop]# cat nice.txt 
# file: Linux
# owner: root
# group: root
user::rwx
user:lisi:r-x
group::rwx
mask::rwx
other::rwx

# file: Linux/zhangsan
# owner: zhangsan
# group: zhangsan
user::rwx
group::r-x
other::r-x

[root@mmx Desktop]# getfacl Linux/
# file: Linux/
# owner: root
# group: root
user::rwx
user:lisi:r-x
group::rwx
mask::rwx
other::rwx

二、恢复FACL

setfacl --restore nice.txt

# 使用恢复命令
[root@mmx Desktop]# setfacl --restore nice.txt  

[root@mmx Desktop]# getfacl Linux/
# file: Linux/
# owner: root
# group: root
user::rwx
user:lisi:r-x
group::rwx
mask::rwx
other::rwx

(3)su和sudo命令

在生产环境中仍是要对安全多一份敬畏之心,不要用root管理员去作全部事情。

su命令能够解决切换用户身份的需求

强烈建议在切换用户身份时添加这个减号(-)

一、su命令

[xiaozhi@mmx root]$ su - mmx
Password: 
[mmx@mmx ~]$

二、sudo命令

# 使用visudo命令编辑
……
     98 ##
     99 ## Allow root to run any commands anywhere
    100 root    ALL=(ALL)       ALL
    101 mmx     ALL=(ALL)       /usr/sbin/reboot
    102 
……
参数 含义
mmx 用户名称
ALL=(ALL) 用户拥有权限
/usr/sbin/reboot 用户执行该命令须要sudo身份

sudo命令中的可用参数以及做用

参数 做用
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或UID值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo时须要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语

使用sudo命令,输入密码确认

[mmx@mmx ~]$ sudo reboot
[sudo] password for mmx:
相关文章
相关标签/搜索