パスワードのないユーザーをパスワードのない他のユーザーに変更することを許可する

パスワードのないユーザーをパスワードのない他のユーザーに変更することを許可する

dev2人のユーザーがいますが、tomcatどちらにもパスワードはありません。

資格情報を入力せずにdev 1を許可するにはどうすればよいですか?su - tomcat

1Sshキーファイルを使用した接続

答え1

必要なものがdevランダムなコマンドの実行を許可している場合は、tomcat心配せずにsusudoを使用してください。sudoersファイルに次の行を追加します(visudoコマンドを使用)。

dev ALL = (tomcat) NOPASSWD: ALL

sudo -iu tomcatdevログインシェルを実行するには、ユーザーとして実行します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に組み込まれているユーザーホームツールを使用してきました。

どこ

  • devsudoerユーザー名または
  • devsudoerグループの名前です(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

関連情報