私には2人のユーザーdev
とTomcat
があり、どちらにもパスワードがありません。
dev
を許可するには 1 行う su - Tomcat
彼に資格情報を入力させる必要なしに?
1 SSHキーファイルで接続します
これが私がやったことです。
ファイル/etc/sudoers.d/dev
を作成しました
含む:
# allow user dev to become user Tomcat
# invoked with [dev@Host ~]$ Sudo su - Tomcat
dev ALL = (root) NOPASSWD: /bin/su - Tomcat
chmod 0440 /etc/sudoers.d/dev
でファイルの権限を変更しました
開発者の.bashrc
alias Tomcat='Sudo su - Tomcat'
にエイリアスを作成しました
これにより、コマンドラインでTomcat
と入力してパスワードを入力する必要がない(または実際にパスワードを入力する必要がない)devユーザーがTomcatユーザーになることができます。
dev
がTomcat
として任意のコマンドを実行できるようにする場合は、su
を気にせず、Sudoを使用します。次の行をsudoers
ファイルに追加します(visudo
コマンドを使用):
dev ALL = (Tomcat) NOPASSWD: ALL
ユーザーdev
としてSudo -iu Tomcat
を実行し、Tomcat
としてログインシェルを実行します。
タグにSudoが追加されました。 sudoersファイルで、許可されたユーザーにdevを追加し、必要に応じて、実行を許可するコマンドを制限できます。そのパスワードは不要です。次に、「Sudo su-Tomcat」と入力するだけです。
visudo
を実行して、次の行を追加します。
dev ALL = NOPASSWD: /usr/bin/su - Tomcat
Sudoersのmanファイルには、さらに多くの情報と例があります。
私はSudoの組み込みユーザー仮定ツールを使用してきました。
どこ
dev
はsudoerユーザー名、またはdev
はsudeoerグループ名です(Sudo構成はこれを%dev
と呼びます)Tomcat
は宛先ユーザーです/!\注意:Sudoの設定ファイルは常に
visudo
で検証してから書き込むか、常にvisudo
でSudoの設定ファイルを編集してください。無効なSudo構成ファイルは、Sudoを壊れた状態でラッチし、それ以上の呼び出しを防ぎます。
Sudo env EDITOR=nano visudo -f /etc/sudoers.d/runas-Tomcat
#/etc/sudoers.d/runas-Tomcat
dev ALL=(Tomcat) NOPASSWD: ALL
%dev ALL=(Tomcat) NOPASSWD: ALL
このようなSudoの使用は、次のように似ています。フラグ--set-home
(-H
)はオプションであり、$HOME
でターゲットユーザーの家を検索して/etc/passwd
を修正します。フラグ--Shell
(-s
)または--login
(-i
)はオプションであり、-s
はyour Shellを使用しており、くつろいでいる必要があります、-i
は、代わりに/etc/passwd
で指定されたターゲットユーザーシェルを使用します。たとえば、/usr/sbin/nologin
を使用して、ログインを拒否します。 -s
と-i
の両方が指定されていない場合、Sudoは実行するコマンドを指定するために追加の非フラグ引数を必要とします。
dev@localhost ~ $ Sudo --set-home --Shell --user Tomcat
tomcat@localhost /home/dev/ $ cd
Tomcat@localhost ~ $
または短い形式で
Sudo -u Tomcat echo whoami
Sudo -Hsu Tomcat # enter Tomcat with your Shell and their home
私はフォームを使用しています
username ALL=(ALL) NOPASSWD: /bin/su targetuser