sudo su 自動ログイン

sudo su 自動ログイン

自動ログインプロセスを使用したいです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 ...

答え1

するいいえ年!これにより、シェルの記録にパスワードが保持されます。

もしあなたなら本物これを行うには、sudoersパスワードのないログインを許可するようにファイルを構成することをお勧めします。

これを行うには、コマンドを実行してsudo visudo次の行を追加します。

reddy ALL=NOPASSWD: /bin/su - *

reddyユーザー名はどこにありますか?)

チーム全体にこのアクセス権を付与する必要がある場合は、チームを含む(UNIX)グループを作成しreddy%teamチームグループ)を置き換えます。

(また少し余談:このechoコマンドは\nすでに必要なものを追加しますecho -n

答え2

私はあなたがしていることが間違っているというValmikyの意見に同意しますが、sudoers行は私が推奨するものではありません。彼の行を通して、パスワードなしで他の人(ルートを含む)にsudoを実行する権限があります。これは効果的にサーバーへのフルアクセスを提供し、/bin/su回線の一部が重複します。

パスワードを指定せずにこの特定のユーザーにのみsudoを実行できる場合、正しい行は次のようになります。

%team ALL = (user) NOPASSWD: ALL

これで、パスワードを入力せずにそのユーザーとして何でも実行できます。たとえば、ルートでsudoを実行する必要がある場合は、まだパスワードが必要です。

これで.bashrcで次のことができます。

 sudo -u user /bin/bash

関連情報