[root@localhost root]# ls -l /etc/shadow
-r-------- 1 root root 1110 3月 11 10:13 /etc/shadow
我用chmod 600 /etc/shadow
提示:chmod: 正在更改 ‘/etc/shadow’ 的權限: 不允許的操作
我回去我的red hat上看了下.
/etc/shadow文件的權限也是只有root只讀,但可以使用adduser命令.
adduser命令填加用戶時,不對shadow文件就行寫入操作嗎??
建議用pwck檢查一下passwd文件的合法性
[root@localhost root]# pwck
pwck: cannot open file /etc/passwd
shadow文件本來就是只讀的。你檢查一下passwd文件。
是不是加了權限位
lsattr /etc/passwd
chattr -i !$
[root@localhost root]# lsattr /etc/passwd
----i-------- /etc/passwd
從你的lsattr /etc/passwd執行結果來看, 你的文件加了權限保護
用chattr -i /etc/passwd去掉它
前幾天按一個網上的系統加固的文章,做了一次加固,沒想到是這個問題.
解決方法:
# cd /etc
# chattr +i passwd
# useradd foo
useradd: unable to open password file
# lsattr passwd
----i--- passwd
# chattr -i passwd
# lsattr passwd
- passwd
## chattr -i /etc/gshadow //關鍵的一步
#useradd foo
參考資料:
chattr可以防止關鍵文件被修改
在linux下,有些配置文件是不允許任何人包括root修改的,為了防止被誤刪除或修改,
可以設定該文件的"不可修改位(immutable)"。
例如:
chattr +i /etc/fstab
如果需要修改文件則:
chattr -i /etc/fstab
以后再修改文件。
參考資料2:
chattr [+-=] [ASacdistu] [文件或目錄名稱]
參數說明:
+-=:分別是"+"(增加)、"-"(減少)、"="(設定)屬性
A:當設定了屬性A,這個文件(或目錄)的存取時間atime(access)將不可被修改,可避免諸如手提電腦容易產生磁盤I/O錯誤的情況;
S:這個功能有點類似sync,是將數據同步寫入磁盤中,可以有效避免數據流失;
a:設定a后,這個文件將只能增加數據而不能刪除,只有root才能設定這個屬性;
c:設定這個屬性后,將會自動將此文件壓縮,在讀取時自動解壓縮。但是在存儲的時候,會現進行壓縮在存儲(對于大文件很有用);
d:當dump(備份)程序執行時,設定d屬性將可使該文件(或目錄)具有dump功效;
i:這個參數可以讓一個文件”不能被刪除、更名、設定鏈接,也無法寫入數據,對于系統安全有很大的助益
j:當使用ext3文件系統格式時,設定j屬性將使文件在寫入時先記錄在日志中,但是當filesystem設定參數為data=journalled時,由于已經設定了日志,所以這個屬性無效
s:當文件設定了s參數時,它會被完全移出這個硬盤空間
u:與s相反,當使用u配置文件時,數據內容其實還可以存在于磁盤中,可以用來取消刪除
示例:
chattr +i /etc/shadow //該文件無法更動了
chattr -i /etc/shadow //解除該屬性
這個指令比較重要,尤其是在系統的安全方面。由于這些屬性是隱藏性質,所以需要使用lsattr才能看到這些屬性。
lsattr [-aR]
參數說明:
-a :將隱藏文件的屬性也顯示出來
-R :連同子目錄的數據一并顯示出來
chattr +i test1
lsattr