Linux で制限付きユーザー アカウントを作成する方法

Linux で制限付きユーザー アカウントを作成する方法

Debian サーバーにインストールされている主要なプログラムごとにユーザー アカウントを作成したいと考えています。たとえば、次のプログラムの場合:

Tomcat Nginx スーパーバイザー PostgreSQL

オンラインで読んだところによると、これは推奨されているようです。ただし、これらのユーザー アカウントをできるだけ制限して、シェル ログインを禁止し、他のプログラムにアクセスできないようにし、できるだけ制限しながらも機能を維持できるようにしたいと考えています。

これを実現するにはどうしたらよいか、どなたか教えていただけませんか? これまでの私の読み物では、次のことが示唆されています:

echo "/usr/sbin/nologin" >> /etc/shells useradd -s /usr/sbin/nologin tomcat

しかし、もっと完全な方法があるのではないかと思います。

編集: 私はDebian Squeezeを使用しています

答え1

どのディストリビューションをお使いですか? 優れたディストリビューションでは、すでにこのようなパッケージのインストール スクリプトを設定して、別のユーザーとして実行することでメリットを得られるデーモン固有のユーザーを作成しています。一部のパッケージでは、さまざまなファイルを共同で読み書きする必要がある場合に、ユーザーを共有します。ただし、いずれの場合も、nologinログイン シェルが使用される傾向があり、これは適切です。

答え2

これを見ただけでは役に立つかどうかは分かりません。

これらのユーザーアカウントを可能な限り制限したいのですが、シェルログインができない

ユーザーアカウントを作成する前に/etc/default/useraddファイルを編集するだけです

これ

  1 # useradd デフォルトファイル
  2グループ=100
  3 ホーム=/ホーム
  4 非アクティブ=-1
  5 期限切れ=
  6 シェル=/bin/bash
  7 SKEL=/etc/skel
  8 CREATE_MAIL_SPOOL=はい

これに

  1 # useradd デフォルトファイル
  2グループ=100
  3 ホーム=/ホーム
  4 非アクティブ=-1
  5 期限切れ=
  6 シェル=/bin/nologin
  7 SKEL=/etc/skel
  8 CREATE_MAIL_SPOOL=はい

これを変更した後、ユーザーアカウントを作成すると、それらのすべてのアカウントでシステムにログインできなくなります。

それはこのためです

ユーザー:x:1017:1017::/home/ユーザー:/bin/ログインなし-----> /etc/passwd ファイルエントリ

こちらをご覧ください

[max@localhost ~]$ su - ユーザー
パスワード:
su: /bin/nologin: そのようなファイルまたはディレクトリはありません
[最大@ローカルホスト ~]$

ファイルを直接編集することでこれを取得できます。/etc/passwd編集する必要はありません。/etc/default/useradd

ユーザーが少なければファイル

最後に提出したものを変更する

これ

ユーザー:x:1017:1017::/home/ユーザー:/bin/bash

これに

ユーザー:x:1017:1017::/home/user:/bin/nologin

関連情報