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


17

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

質問:インタラクティブシェルを取得しないユーザーjohnを作成します。

どうすればこれができますか?

回答:


9

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

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

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

擬似ユーザーsyslogは所有し/var/log/syslog、そのファイルに対する書き込み許可を持つ唯一のUIDですが、実行するコマンドインタープリターがないため、ユーザーsyslogとしてログインすることはできません。


9

あなたが答えようとしている質問に関して:

対話型シェルを取得しないユーザーjohnを作成します。

質問は、「johnシェルからログインしてコマンドを実行できない名前のユーザーを作成する」ことを意味します。対話は、シェルの動作方法を説明します。ユーザーが何かを入力すると、シェルはそれに応じて何かを行います(ユーザーとシェルの間には一種のコミュニケーションがあります)。ユーザーがコマンドを入力している限り、シェルセッションは対話型であるため、「対話型」という言葉は質問に実際には情報を追加しません。

また、ユーザーが実行したい一連のコマンドをファイル(シェルスクリプトと呼ばれる)に保存し、その後ファイルを実行する非対話モードもあります。一部のコマンドの動作は、シェルがインタラクティブに実行されるか非インタラクティブに実行されるかによって異なります。ここで詳細を読むことができます(このドキュメントは向けbashですが、他のシェルにも同じ概念が適用されます)。

あなたは流し読みあれば、このようなAのユーザーを作成する方法については、man useraddログインシェルを設定し、するオプションがあります-s--shell。とにかく(私はあなたが既に知っていると思いますか?)、通常どおりユーザーを作成し、mswのanswerの/etc/passwdように編集することもできます


3

はい、パスワードファイル(/ etc / passwd)のシェルを、シェルエスケープを許可しないプログラムに変更します。

もしあなたがbofhになりたいなら、/ bin / falseはあなたが望むことを正確に行います。


-1
adduser username -s /sbin/nologin

2
ユーザー名が質問で「john」と指定されていることに注意してください。あなたのコマンドが何をしていて、なぜそれが要件を満たすのかを説明するために少し散文を使っても害はないでしょう。
ジェフシャラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.