対話型シェルを取得できないユーザーの作成

対話型シェルを取得できないユーザーの作成

対話型シェルと非対話型シェルとは何ですか?

問題:対話型シェルをインポートしないでくださいユーザーjohnを作成します。

私たちは何をすべきですか?

答え1

この/etc/passwdファイルには、ログイン時にユーザー行の最後の項目として実行されるプログラムが含まれています。一般ユーザーの場合は、通常または/bin/sh他のシェル(bash、zshなど)に設定されます。

従来、プロセス、ファイル、またはその他のリソースを所有するために使用されるIDには、「シェル」が次のよう/bin/falseに設定されていました。

syslog:x:101:102::/home/syslog:/bin/false

擬似ユーザーsyslogは、/var/log/syslogファイルを所有し、ファイルへの書き込み権限を持つ唯一のUIDですが、実行するコマンドソルバーがないため、ユーザーsyslogとしてログインできません。

答え2

答えたい質問について:

インタラクティブシェルをインポートしないでくださいユーザーjohnを作成します。

質問は、「johnシェルからログインしてコマンドを実行できないこのユーザーと呼ばれるユーザーを作成してください」という意味です。 Interactive では、シェルの動作方法を説明します。つまり、ユーザーが何かを入力すると、シェルはそれに応答して何かを行います(ユーザーとシェルの間には一種の通信があります)。ユーザーがコマンドを入力する限り、シェルセッションはインタラクティブなので、「インタラクティブ」という単語は実際に質問に何も追加しません。

ユーザーが実行したい一連のコマンドをファイル(シェルスクリプトと呼ばれる)に保存し、ファイルを実行する非対話モードもあります。一部のコマンドは、シェルが対話的に実行されるのか、非対話式で実行されているのかによって異なります。もっと読むことができますここ(この文書はに適用されますが、bash他のシェルにも同じ概念が適用されます。)

このようなユーザーを作成する方法については、ナビゲーションにman useraddログインシェルを設定するオプションがあります。-sまたは、--shell必要な方法で一般にユーザーを作成することもできます(既に知っていると仮定しますか?)/etc/passwd。この編集mswの答え

答え3

はい、パスワードファイル(/etc/passwd)のシェルを次のプログラムに変更します。いいえシェルは脱出できません。

なりたいならボヴェ/bin/falseはあなたが要求したことを正確に行います。

答え4

adduser john -s /sbin/nologin

このコマンドは、対話型シェルを取得できないユーザーを作成するために使用されます。

対話型および非対話型シェル

対話型シェルはユーザーと対話します。ログインシェルの場合、〜/ .loginのすべてのコマンドが実行され、ログインシェル(対話型サブシェルを作成できます)以外の場合、.loginは評価されません。

非対話型シェルはユーザーと対話しませんが、シェルスクリプトを実行します。シェルスクリプトを呼び出すたびに、最初の行( "shebang"#!/ bin / bash)は非対話型サブシェルを生成します。すべての非対話型シェルはログインシェルではないため、.loginを評価しません。

定義によると、ユーザーがログインできるすべてのシェルは対話型シェルです。そうでない場合(例:/bin/falseまたは/bin/nologon)、ユーザーはログインできません。

関連情報