web-dev-qa-db-ja.com

Linuxで特定のユーザーとグループに権限を設定する

特定のユーザーまたは特定のグループにファイルのアクセス許可を付与するにはどうすればよいですか?

「g12」(「u1」と「u2」)、「g34」、「g​​56」の3つのグループがあります。

  • g12-ファイルのみを読み取る必要があります。

  • g34-読み書きする必要があります。

  • g56-すべての権限が必要です(rwx)。

そして、他の人はファイルにまったくアクセスすべきではありません。

6
AntonAL

アクセス制御リストを使用する必要があります。これらは、Linuxのデフォルトのユーザー/グループ/その他の方法よりも、より高度な権限の処理方法です。例については、このページを参照してください。 buntuアクセス制御リスト

そのページの例:

setfacl -m u:mike:rwx file or directory

私はこれらのコマンドをサーバー管理コースのラボで使用しただけですが、私の知る限り、これは非常に簡単な方法です。

12
Peter Jaric

ルートとして:

chown u1:u1 f1.txt
chmod 400 f1.txt

これにより、ファイルがユーザーu1(chown)とグループu1(ユーザーu1のデフォルトグループがu1であると想定)によって所有され、そのユーザーのみがファイルを読み取ることができるようになります(chmod)。ユーザーにファイルへの書き込みを許可する場合は、400を600に変更します。

次のようにして、2番目のユーザーを最初のユーザーのデフォルトグループに追加できます。

useradd -G u1 u2

上記のコマンドは、ユーザーu1のデフォルトグループがu1とも呼ばれ、2番目のユーザーがu2であることを前提としています。

次に、f1.txtの権限を変更して、グループu1の読み取りアクセスを許可します(400の2番目の「4」はグループ権限です)。

chmod 440 f1.txt

Chmodコマンドに続く3桁の数字はそれぞれ、システム上の所有者(1桁目)、グループ(2桁目)、およびその他すべてのユーザー(3桁目)の許可を表します。値1は実行許可、2は書き込み許可、4は読み取り許可です。これらの番号を追加して、これら3つのタイプの権限を「混合」します。例、4(読み取り)+ 1(実行)=5。つまり、所有者とグループはファイルを読み取って実行できるが、550を使用する他のすべてのユーザーにはアクセスを制限し、所有者はファイルを読み書きできるようにします。グループと他のすべてのユーザーがファイルを読み取る場合は、644を使用します。

権限の設定には他の形式があります。次のように入力します。

man chmod

詳細については、コマンドプロンプトで確認してください。

3
Stacey Richards

短い答えは、あなたはできません

グループまたはユーザーにアクセス許可を設定するのではなく、ファイルにアクセス許可を設定します。ファイルには所有者とグループがあり、「読み取り」、「書き込み」、および「実行」権限を、1人のユーザー、1つのグループ、およびその他すべてのユーザーに個別に設定できます。

何をしたいのか、例を挙げていただけますか?

1
frymaster