lsattr 中的“a”属性是什么意思?

lsattr 中的“a”属性是什么意思?

我试图从我的.bash_history文件中删除一些旧历史记录,但我收到以下消息:

[john ~] /home/john $ mv .bash_history .bas
mv: impossible to move `.bash_history' to `.bas': Operation not permited

我怀疑文件/目录权限:

[john ~] /home/john $ ls -ld .bash_history .
drwxrwx--T+ 5 root       john 4096 Out 11 19:45 .
-rw-r--r--  1 john john 2977 Out 10 14:36 .bash_history
[john ~] /home/john $

然后我尝试:

[john ~] /home/john $ lsattr .bash*
-----a------- .bash_history
------------- .bash_logout
------------- .bash_profile
------------- .bashrc
[john ~] /home/john $

大概就是这个a属性;这是什么意思?

答案1

a属性意味着该文件是仅追加的:您不能覆盖它或删除它,只能向其中追加数据。这在chattr手册页。只有 root 才能删除该属性。

实际的后果是你无法抹去旧的历史记录。这可能是系统管理员的一项安全措施。我并不完全相信它是安全的,但我想不出一种方法来删除某些文件的内容。 (然而,绕过文件并运行命令而不在历史记录中显示很容易,这就是为什么它不是针对有能力的用户的特别有用的安全措施 - 一个明显的方法是从 bash 以外的其他地方运行命令。)。

相关内容