ログインしていないシェルユーザーを使用してログインするにはどうすればよいですか?

ログインしていないシェルユーザーを使用してログインするにはどうすればよいですか?

ログインしていないシェルユーザー(ユーザー)としてapacheログインするにはどうすればよいですか?

私が実行すると、sudo su - apache次のようになります。

このアカウントは現在利用できません。

/etc/passwdには次のものがあります。

Apache:x:48:48:Apache:/var/www:/sbin/nologin

答え1

-u <username>とオプションを使用して-s対話型シェルを起動します。たとえば、sudo -u apache -s次のようにテストしてみてくださいwhoami

からman sudo

-s [コマンド]

-s(シェル)オプションは、SHELL環境変数(設定されている場合)で指定されたシェルまたはパスワードデータベースで指定されたシェルを実行します。コマンドを指定すると、シェルの -c オプションで実行できるようにシェルに渡されます。 コマンドを指定しないと、対話型シェルが実行されます。

-u ユーザー

-u(ユーザー)オプションを使用すると、sudoはrootではなくユーザーとして指定されたコマンドを実行します。 ユーザー名の代わりに uid を指定するには #uid です。 uidでコマンドを実行するときは、多くのシェルには#' be escaped with a backslash (')が必要です。セキュリティポリシーは、uidをパスワードデータベースにリストされているものに制限できます。 sudoersポリシーは、targetpwオプションが設定されていない限り、パスワードデータベースにないuidを許可します。他のセキュリティポリシーはこれをサポートしていない可能性があります。

関連情報