我试图从我的.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 以外的其他地方运行命令。)。