Bash

sudo su 自動登錄

  • April 10, 2015

我想用sudo su. 我已經看到了很多關於這些的問題,但沒有一個對我有用。

使用 sudo 和 su 自動登錄

這是我到目前為止所嘗試的

echo "mypassword" | sudo -S su - user
echo "mypassword\n" | sudo -S su - user
echo mypassword | sudo -S su - user
echo "mypassword" | sudo -S su user
echo mypassword | sudo -S su user

我只是收到以下回复

-bash: line 1: mypassword: command not found

我的 Bash 版本

GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu) 
Copyright (C) 2009 Free Software Foundation, Inc.

請注意,我的密碼包含特殊字元@

@ sudo
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user name] [-u user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] file ...

不要那樣做!這會將您的密碼留在您的 shell 歷史記錄中!

如果您確實必須這樣做,我建議您將sudoers文件配置為允許無密碼登錄。

為此,請執行命令sudo visudo並添加如下一行:

reddy ALL=NOPASSWD: /bin/su - *

reddy您的使用者名在哪裡)。

如果您需要將此訪問權限授予整個團隊,請使用該團隊創建一個 (UNIX) 組,並替換reddy%team(the team group)。

(另外,有點離題:該echo命令已經添加了\n您需要的內容。如果您實際上想要相反的內容(您不想要),那麼該命令將是echo -n.)

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