回答:
/etc/passwd
ファイルには、ユーザの回線のログイン時に実行するプログラムの最後の項目として持っています。通常のユーザーの場合、これは通常/bin/sh
、他のシェル(bash、zshなど)に設定されます。
従来、プロセスまたはファイルまたは他のリソースを所有するために使用されるIDの「シェル」は、次の/bin/false
ように設定されています。
syslog:x:101:102::/home/syslog:/bin/false
擬似ユーザーsyslogは所有し/var/log/syslog
、そのファイルに対する書き込み許可を持つ唯一のUIDですが、実行するコマンドインタープリターがないため、ユーザーsyslogとしてログインすることはできません。
あなたが答えようとしている質問に関して:
対話型シェルを取得しないユーザーjohnを作成します。
質問は、「john
シェルからログインしてコマンドを実行できない名前のユーザーを作成する」ことを意味します。対話は、シェルの動作方法を説明します。ユーザーが何かを入力すると、シェルはそれに応じて何かを行います(ユーザーとシェルの間には一種のコミュニケーションがあります)。ユーザーがコマンドを入力している限り、シェルセッションは対話型であるため、「対話型」という言葉は質問に実際には情報を追加しません。
また、ユーザーが実行したい一連のコマンドをファイル(シェルスクリプトと呼ばれる)に保存し、その後ファイルを実行する非対話モードもあります。一部のコマンドの動作は、シェルがインタラクティブに実行されるか非インタラクティブに実行されるかによって異なります。ここで詳細を読むことができます(このドキュメントは向けbash
ですが、他のシェルにも同じ概念が適用されます)。
あなたは流し読みあれば、このようなAのユーザーを作成する方法については、man useradd
ログインシェルを設定し、するオプションがあります-s
か--shell
。とにかく(私はあなたが既に知っていると思いますか?)、通常どおりユーザーを作成し、mswのanswerの/etc/passwd
ように編集することもできます。