Linux

在腳本中永久切換到 zsh,無需 root 身份且無需輸入密碼

  • October 19, 2015

有沒有什麼方法可以在chsh -s /bin/zsh沒有 root 身份且不被要求輸入密碼的情況下執行?我想把它放到一個不被root呼叫的非互動式腳本中。

如果您沒有更改登錄 shell 的權限,您可以告訴 bash(我假設 bash 是您的登錄 shell)用 zsh 替換自己。在您的~/.bash_login中,添加以下行:

exec /bin/zsh --login

如果您的版本chsh需要密碼(我的需要密碼),您將需要設置具有特殊權限的 sudo。您可以將其配置為允許訪問任何程序而無需提示輸入密碼,如下所示:

user   ALL=(ALL) NOPASSWD:/usr/bin/chsh

其中“user”是您的使用者名(或前綴為 % 的組名)。確保指定完整路徑到您的chsh. 這將不允許使用者以 root 身份執行任何 ELSE(包括從腳本),但它將允許一個二進製文件以 root 身份執行而無需密碼,從而繞過使用者密碼提示。

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