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