今天收到服务器告警通知,提示磁盘空间不足。查看了一下messages日志文件,发现已经4G多了,所以想着把messages清空一下来释放点空间出来。但是在处理的时候提示Operation not permitted没有权限。
[root@elk log]# ls -lash
total 4.8G
....
4.1G -rw------- 1 root root 2.4G May 22 10:01 messages # 权限600,属主属组都是root
676K -rw-------. 1 root root 673K Aug 5 2014 messages-20140805
30M -rw-r--r-- 1 root root 30M May 21 20:41 mysql-pt-kill.log
4.0K drwxr-xr-x 2 root root 4.0K May 14 14:06 networkbench
....
[root@elk log]# whoami
root
[root@elk log]# echo "" > messages
-bash: messages: Operation not permitted
[root@elk log]# cat /dev/null > /var/log/messages
-bash: /var/log/messages: Operation not permitted
既然是root用户,那么对整个系统的权限自然是最高的,没道理提示没有权限。那么,肯定是扩展权限的锅,查看了一下果不其然。
[root@elk log]# lsattr messages # 查看扩展权限
-----a---------- messages
[root@elk log]# chattr -a messages # 去掉扩展权限
[root@elk log]# lsattr messages
---------------- messages
[root@elk log]# echo /dev/null > messages
[root@elk log]# ls -lash messages
4.0K -rw------- 1 root root 10 May 22 10:04 messages
清理完成之后,谨慎起见,还是吧扩展权限还原回去。
[root@elk log]# chattr +a messages
[root@elk log]# lsattr messages
-----a---------- messages
[root@elk log]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 14G 6.2G 69% /
devtmpfs 2.9G 0 2.9G 0% /dev
tmpfs 2.9G 0 2.9G 0% /dev/shm
tmpfs 2.9G 294M 2.6G 11% /run
tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup
/dev/vdb 300G 129G 171G 44% /data
tmpfs 581M 0 581M 0% /run/user/0
tmpfs 581M 0 581M 0% /run/user/1002