題:
為什麼我不能運行“ su”? (我該怎麼辦?)
Petruza
2011-05-23 05:33:42 UTC
view on stackexchange narkive permalink

每當我嘗試發出 su 時,我都會得到:

  $ su密碼:su:對不起 

不用說,我輸入的是與 sudo 一起使用的正確管理員密碼。我想要的是不必每次都輸入 sudo

五 答案:
ghoppe
2011-05-23 10:23:02 UTC
view on stackexchange narkive permalink

在MacOS X中,默認情況下禁用了root用戶,因此 su 將不起作用。正如其他人所說,最好使用 sudo

如果必須啟用root用戶,請參閱Apple的技術說明:在Mac OS X中啟用和使用“ root”用戶

`sudo su`仍然有效,因此它並不是真正的禁用。它只是沒有密碼。
@FakeName這是最搞笑的後門!如果您可以運行`sudo su`,那麼禁用`su`到底意味著什麼呢?
@KolobCanyon-關鍵不是“禁用`su`”,而是*防止root登錄*。通過禁止以“ root”身份登錄,可以避免一堆可能的安全問題。不允許能夠將sudo變為su的人有點愚蠢。基本上,`su`只是更改當前的用戶ID,並執行命令(如果未指定,則為shell)。如果用戶ID已經是0(root)(例如,用`sudo`執行時),則沒有任何事可做,因此它只執行shell。通過執行sudo bash可以得到類似的效果。
@FakeName仍然感到困惑。以root用戶身份登錄和運行'sudo su'有什麼區別?實際上不是同一水平嗎?
@KolobCanyon-不。基本上,如果禁用* login *,則意味著如果登錄過程中存在漏洞,則黑客無法使用該漏洞直接獲取root用戶權限。基本上,它將所需的root用戶損害從“登錄損害”轉移到“用戶帳戶+ privesc的登錄損害”。基本上,這是作為縱深防禦的事情完成的。
Kyle Cronin
2011-05-23 05:45:09 UTC
view on stackexchange narkive permalink

您有兩個選擇。第一種是使用 sudo -s -這將為您提供超級用戶訪問權限,但是您仍然可以保持“自己”狀態(可以這麼說),因此諸如是您的主目錄。另外,您可以使用 sudo su ,它為您提供了一個外殼程序,作為Mac的實際root用戶。

Apple Way(tm)將使用sudo運行需要提升特權的命令,而不是切換到root shell並從中運行。
@Ian C.-不,這實際上是unix的方式。蘋果公司只是使用它,因為它也是基於* nix的。
@Fake Name:蘋果公司經歷了巨大的痛苦,從未向用戶公開或公開根目錄外殼。您可以說他們將“ sudo”精神帶到了極致。但無論如何:語義。不要在OS X中使用root shell。
@Ian C-蘋果並沒有比\ * nix設計師做更多的事情,蘋果只是沒有太多談論它。在這兩種情況下,它都存在,只有像linux這樣的東西,它們才會告訴您如何輕鬆使用它。如果這使它更廣泛地*使用*,則並不表示基礎架構有所不同。
Basil Bourque
2018-10-26 05:20:22 UTC
view on stackexchange narkive permalink

現代解決方案: sudo -u

要用作其他用途,請使用 sudo -u

例如,運行文本編輯器,例如 nano

  sudo -u someuser nano
 

...,然後在出現提示時輸入Mac管理員用戶密碼。此時,是您的Mac管理員用戶正在調用 sudo ,而不是 someuser 用戶,因此您無需輸入 someuser 密碼。 / p>

  • sudo 意味著使用超級用戶特權運行某些東西。
  • -u 的意思是“以該指定用戶身份運行指定命令”。
  • someuser 應該替換為所需的用戶名。

要模擬特定用戶的初始登錄(包括運行其啟動腳本),請使用 -I

  sudo -u someuser -i nano
 

這將以用戶 someuser 的身份運行 nano 應用,但僅在為該用戶運行了啟動腳本之後。

如果我們選擇不指定要運行的命令或應用程序,則會獲得一個以該用戶身份運行的交互式shell。

  sudo -u someuser -i
 

老式學校: sudo su someuser

另一種方法是將 su 命令與 sudo 結合使用。 su 命令的意思是“切換用戶”。

  sudo su someuser
 

或者,要包括運行用戶的啟動腳本,請添加連字符。

  sudo su-someuser
 

root 用戶

與Unix相關的操作系統中的 root 用戶絕對有權執行任何操作。

Apple已選擇在macOS中禁用 root 帳戶,以避免安全漏洞的利用並保護您免遭腳掌之害。蘋果公司提出了這樣的想法,即 Administrator 用戶帳戶具有許多權限,比 Standard 用戶帳戶具有更多的權限,但沒有像 root 這樣的絕對權限。請參閱此Apple支持說明以進行討論。

如果需要,您可以在macOS中啟用 root 用戶,然後切換到該用戶。不鼓勵這樣做。我只會走這條路,只是作為一個絕望的不得已。


有關在macOS上運行 Postgres數據庫系統的 postgres 用戶的上下文中的討論,請參見姊妹網站上的 this Question DBA堆棧交換

user302849
2018-09-20 11:39:42 UTC
view on stackexchange narkive permalink

我認為您不能以“普通”用戶的身份進行此操作...

如果還有另一個具有管理員權限的用戶帳戶,則必須使用該帳戶

 受限用戶$ su
密碼:(這裡的根密碼)
抱歉!

受限用戶$ su-(此處為管理員帳戶)
密碼:(管理員帳戶密碼)
$ su-根
密碼:(這裡的根密碼)
#->您現在是超級用戶
 
Kahef Mirza
2018-09-19 15:57:53 UTC
view on stackexchange narkive permalink

例如,如果您需要移動文件或通過CLI使用git,那麼在這種情況下,最好的解決方案是使用 sudo -s 命令。執行完該命令後,您不必反复輸入密碼。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...