我想知道做之間是否有任何區別(在環境中?)
sudo su - user
和
sudo -iu user
據我所知:透過使用 sudo su - user 我以用戶身份打開一個新的 shell,破折號給出了用戶的環境變量(而 sudo su user 沒有)並使用 sudo -iu user (-u 表示精確用戶,- i 代表「模擬初始登入」)。
那麼,有什麼差別嗎?
除了第一個需要使用者能夠以root身分執行su,第二個需要使用者以使用者身分執行bash
謝謝 !
答案1
這是 sudo 手冊頁上關於“-i”選項的內容
-i The -i (simulate initial login) option runs the shell specified in
the passwd(5) entry of the user that the command is being run as.
The command name argument given to the shell begins with a `-' to
tell the shell to run as a login shell. sudo attempts to change to
that user's home directory before running the shell. It also ini-
tializes the environment, leaving TERM unchanged, setting HOME,
SHELL, USER, LOGNAME, and PATH, and unsetting all other environment
variables. Note that because the shell to use is determined before
the sudoers file is parsed, a runas_default setting in sudoers will
specify the user to run the shell as but will not affect which
shell is actually run.
這基本上告訴我你只是在模擬所引用用戶的外殼,但是一些事情可能與預期使用者直接登入的情況不完全一樣。如果你問這個問題“什麼「我無法說出我的想法。但是如果您使用sudo su - user
命令,當您使用引用使用者的設定啟動新的 shell 進程時,不會提出任何問題。在某些情況下,這兩個命令可以在相同的環境中,但在其他一些環境中,我認為會遇到差異。