Linux

SUID 意外從 /bin/su 文件中刪除

  • August 22, 2018

它是一個生產伺服器 - CentOS 6.1

一些過去具有 root 訪問權限的使用者登錄到伺服器並從 /bin/su 文件中刪除了 SUID 位,然後退出了 root。現在我們無法切換回 root。伺服器上也禁用了 root 的 ssh 訪問,因此 root 無法直接登錄機器。由於我們既不能 su 到 root,也不能 ssh 作為 root,我們不能將 /bin/su 文件的 suid 位設置回來。(而且我們不能使用 su 在使用者之間切換)

它應該是怎樣的:

$ ll /bin/su
-rwsr-xr-x. 1 root root 30092 Mar 10  2011 /bin/su

現在情況如何:

$ ll /bin/su
-rwxr-xr-x. 1 root root 30092 Mar 10  2011 /bin/su

有什麼方法可以切換回 root 或以任何方式設置 SUID 位?

**注意:**我們希望避免重新啟動無網路使用者模式,因為服​​務器 24x7 都在使用並且停機時間有點困難。如果可以重新啟動,那麼我們可以簡單地以 root 身份使用單使用者模式登錄並重置該位。

隨意給出創造性的答案。我可以在我們的測試環境中測試您的答案。

一些選項:

  • sudo -i,這是最明顯的選擇。
  • sudo -l然後尋找一個允許您使用的命令,您可以使用它來解決問題,例如:編輯由 root 執行的文件,例如 crontab、logrotate、executon yum/rpm…
  • 轉到控制台,並以 root 身份連接(如果我理解的話,只有 ssh 受到限制)
  • 打開一個圖形會話,一些發行版有工具可以成為不依賴 sudo 的 root。此外,他們中的許多人都有一些更新管理器..也許你可以重新安裝提供的包su
  • 如果你有 puppet/chef/ansible/fai 之類的配置管理工具… 推送配置!
  • 調查您的 crontab 以查看您是否可以編輯要升級的文件。
  • 如果您的伺服器連接到中央身份驗證系統(尤其是 LDAP/nis),請創建一個具有高權限的帳戶(組輪,或使用者 uid=0)。
  • 如果它是虛擬伺服器,請將其關閉,然後掛載並編輯文件系統。

一些銀彈:

  • 以單使用者模式(紅帽)或指定init=/bin/sh(Debian 和 rhel/CentOS 7)重新啟動伺服器,然後修復權限。
  • 在 CD/DVD/USB/NetBoot 中重新啟動伺服器並使用恢復(或僅安裝和編輯)

還有一些真的很醜:

  • 在你的系統中找到一個漏洞來破壞它!

如果您的系統管理員做得很好,普通使用者將無法做任何這些事情(但您是系統管理員)

引用自:https://unix.stackexchange.com/questions/189100