首先要确认chattr权限针对root用户也是生效的。
命令格式如下:
chattr [+-=][选项] 文件或目录
+ 增加权限
- 删除权限
= 等于某权限
i:如果对文件设置i属性,那么不允许对文件进行删除,改名,
也不能添加和修改数据;
如果对目录设置i属性,那么只能修改目录下的文件数据,但不允许建立和删除文件。
a:如果对文件设置a属性,那么只能在文件中增加数据。
但是不能删除也不能修改数据。
如果对目录设置a属性,那么只允许在目录中建立和修改文件。
但是不允许删除。
sudo chattr +i mergebak.log
lsattr 选项 文件名
-a 显示所有文件和目录
-d 若目标是目录,仅列出目录本身的属性,而不是子文件的。
lsattr -a mergebak.log
----i--------e-- mergebak.log
可见该文件有i属性,e表示该文件在ext文件系统中创建的。
echo 1111 > mergebak.log
-bash: mergebak.log: Permission denied
rm mergebak.log
rm: remove write-protected regular file ‘mergebak.log’? y
rm: cannot remove ‘mergebak.log’: Operation not permitted
mkdir TEST2
touch TEST2/abcd
chattr +i ./TEST2/
lsattr -a ./TEST2/
----i--------e-- ./TEST2/.
-------------e-- ./TEST2/abcd
-------------e-- ./TEST2/..
echo 2222 ./TEST2/abcd
2222 ./TEST2/abcd
rm -rf ./TEST2/abcd
rm: cannot remove ‘./TEST2/abcd’: Permission denied
touch ./TEST2/woqu
touch: cannot touch ‘./TEST2/woqu’: Permission denied
chattr -i TEST2/
rm -rf TEST2/
sudo 权限
root把本来只能超级用户执行的命令赋予普通用户执行。
sudo 命令的操作对象是系统命令。
Server01:~$ sudo visudo
上面的命令实际上相当于
sudo vim /etc/sudoers
root ALL=(ALL) ALL
#用户被管理主机的地址 = (可使用的身份)授权命令(绝对路径)
第一个ALL可以理解为本机ip非链接机器的ip
#%wheel ALL=(ALL)ALL
#%组名被管理主机的地址=(可使用的身份)授权命令(绝对路径)
man 5 sudoers 是查看配置文件
修改sudoers 文件
wocao ALL=/sbin/shutdown -r now
切换到wocao 用户:
sudo -l
[sudo] password for wocao:
no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory
Matching Defaults entries for wocao on Sim3-Server01:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User wocao may run the following commands on Sim3-Server01:
(root) /sbin/shutdown -r now