
dev
2人のユーザーがいますが、tomcat
どちらにもパスワードはありません。
資格情報を入力せずにdev
1を許可するにはどうすればよいですか?su - tomcat
1Sshキーファイルを使用した接続
答え1
必要なものがdev
ランダムなコマンドの実行を許可している場合は、tomcat
心配せずにsu
sudoを使用してください。sudoers
ファイルに次の行を追加します(visudo
コマンドを使用)。
dev ALL = (tomcat) NOPASSWD: ALL
sudo -iu tomcat
dev
ログインシェルを実行するには、ユーザーとして実行しますtomcat
。
答え2
タグにsudoを追加しました。 sudoersファイルで許可されたユーザーにdevを追加し、必要に応じてパスワードなしで実行できるコマンドを制限できます。次に、「sudo su - tomcat」と入力するだけです。
visudo
次の行を追加するには実行してください。
dev ALL = NOPASSWD: /usr/bin/su - tomcat
sudoers manファイルにはより多くの情報と例があります。
答え3
これが私がやった方法です。
ファイルを作成しました。/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
devでエイリアスを作成しました。.bashrc
alias tomcat='sudo su - tomcat'
tomcat
これにより、開発者ユーザーはコマンドラインにパスワードを入力したり、実際にパスワードを入力しなくてもtomcatユーザーになることができます。
答え4
私はsudoに組み込まれているユーザーホームツールを使用してきました。
どこ
dev
sudoerユーザー名またはdev
sudoerグループの名前です(sudo構成ではこれを呼び出します%dev
)。tomcat
ターゲットユーザーです
/!\メモ、
visudo
執筆前には常にsudoのプロファイルチェックを使用するか、常にsudoのプロファイル編集を使用してくださいvisudo
。誤った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
。あなたのシェルは家のように感じなければなりません。代わりに、ログイン拒否など、ここで指定されたターゲットユーザーシェルを使用してください。 sudoは、-i
実行するコマンドを指定するためにフラグではなく追加の引数が必要です。/etc/passwd
/usr/sbin/nologin
-s
-i
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