
linux-pcには2つのユーザーアカウントがあります。 1つ目はルートでもあり、2つ目は一般ユーザーです。 2人目のユーザーが端末を開くのを防ぐにはどうすればよいですか?
答え1
シェルを/bin/false
withに設定しますchsh
。たとえば(ルートとして):
chsh -s /bin/false username
これにより、コンソールやSSHなどを介してログインしたときにシェルをインポートできなくなります。これはほとんどの目的には十分ですが、システムで別のプログラムを実行できる場合はシェルを取得するためのさまざまな方法があります。
これはログインを効果的に防止するため、特定のデーモン(Apacheを実行するためのwww-dataなど)を実行しているシステムユーザーではない場合、またはメールボックス専用のユーザーまたは同様のユーザーでない限り、ユーザーアカウントにはあまり意味がありません。
おそらくより良い別のオプションは、シェルを次に設定することです。限られた殻たとえば/bin/rbash
、(事前設定された)PATHでのみプログラムを実行できるようにし、などを使用してディレクトリを変更したりcd
環境変数を変更したりするのを防ぎます。詳しくはこちらをご覧ください。SHELL
PATH
man rbash
たとえば、システムのどこかにディレクトリ(たとえば/usr/local/rbin)を作成し、許可されたバイナリをそのディレクトリにコピーまたはリンクし、ディレクトリ内のそのディレクトリプログラムでのみ実行できるようにパスを設定できます。 。テキストエディタが必要かrvim
どうかではなく、インストールなど、このディレクトリにどのプログラムを配置するかに注意する必要がありますvim
(rvimはシェルコマンドの実行を許可しません)。
注:これは多くの作業を必要とし、正しく実行するために慎重な調査が必要です(たとえば、シェルへのアクセスを許可する穴を残さないように)。rbash
このサイトには、シェルやその他の制限されたシェルに関するいくつかの質問と回答があります。研究を始めましょう:
https://unix.stackexchange.com/search?q=rbash
非常に密接に関連するトピックchroot
: