題 / etc / shadow - 如何在只讀時編輯它


我試圖更改/ etc / shadow文件的內容,但意識到它是只讀的

sghk1> ls -l /etc/shadow
-r--------   1 root     sys         4045 Aug 19 16:13 /etc/shadow

/ etc / shadow文件權限是只讀的。在這種情況下,/ usr / bin / passwd如何更改其內容?

e.g. passwd -x 30 username

4
2017-08-19 08:38


起源




答案:


即使未設置寫標誌,linux / unix系統中的root用戶也可以寫入文件。因此他可以改變內容 /etc/shadow 或任何其他獨立於其權限的文件。

passwd 實用程序已設置setuid位。見:

ls -la /usr/bin/passwd

它應該如下所示:

-rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd

請注意 s 在文件所有者權限中。這表明了 setuid位。如果普通用戶現在執行 passwd 實用程序,它是在文件所有者的許可下執行的;在這種情況下root。

例如,setuid位獲得臨時提升的特權以運行特定任務,例如更改系統文件中的內容 /etc/shadow 要么 /etc/passwd

必須小心處理setuid位。如果設置錯誤的二進製文件,該機制可用於多個漏洞。想像一下, /bin/bash 實用程序會設置setuid位;所以系統中的每個用戶都可以啟動root shell!


5
2017-08-19 08:51



我嘗試使用帶有:wq的vi直接編輯/ etc / shadow文件,但我無法做到這一點。它顯示的錯誤“shadow”文件是只讀的,所以/ usr / bin / passwd如何寫入文件? - Noob
@Noob這是編輯器,它試圖警告你編輯一個只讀文件(沒有文件的文件) w 旗)。使用 :wq!。 vi應該接受。 - chaos
是什麼!實際上意味著在這個意義上,我一直在想!與q一起使用意味著退出而不保存。 - Noob
@菜鳥 :q! 部隊退出,沒有儲蓄, :w! 即使文件是只讀的,也強制保存。 :wq! 是相同的 :w! +關閉編輯器。 - chaos