Linuxファイル/フォルダ権限

Linuxファイル/フォルダ権限

複数のユーザーがアクセスする必要があるフォルダが複数あります。特に、Medusa(まだバックアップしていないテレビ番組のエピソードを追跡するために使用)、Plex(自宅のさまざまなデバイスにデジタルバックアップをストリーミングするために使用)、およびMedia(マイユーザー)ログイン)私が経験している問題は、私が何をしても3人のユーザーが同時にフォルダにアクセスできるようにすることはできません。

すべてのユーザーをグループに追加し、ユーザー、グループ、およびすべての人の設定に対してフルrwx権限を許可するようにファイル/フォルダ権限を設定しましたが、まだ3つすべてを同時に操作できないようです。

何らかの理由で重要な場合に備えて、すべてのファイル/フォルダはブートドライブではなく2番目のハードドライブ(sdb1)にあります。ハードドライブのマウントポイントは/media/media/storage2ですが、/media/で始まるすべてのコマンドを実行します。そうしないと、ユーザーがドライブのどの項目にもアクセスできなくなるためです。

何かを見たいときは、このコマンドを使用してsudo chown -R plex:server /media/ファイル所有者をgroupOwnerからplexに変更します。 serverは、すべてのユーザーを含む私が作成したグループです。

このコマンドを使用して、すべてのフォルダとすべてのファイルの権限を変更しますsudo find /media/ -type d -exec chmod 777 {} \;sudo find /media/ -type f -exec chmod 777 {} \;

私は777がセキュリティに悪いことを知っています。もともと775を使用しようとしましたが、それを知るまでは777が問題を解決することを望んでいましたが、そうではありませんでした。

これを達成するために何を試すことができるのかわかりません。

編集する: JHuffardの提案を試して実行しましたが、関連するsudo chown -R plex /media/すべてのディレクトリとファイルに対する権限が表示されましたが、すべてsudo chgrp -R server /media/sudo chmod -R 777 /media/まだロックされていました。drwxrwxrwx

ベストアンサー1

これらのACLコマンドはLinuxにのみ適用されます。まず、すべての所有権と権限を標準に設定します。

chown -R root:root /media
find /media -type d -exec chmod 0755 {} +
find /media -type f -exec chmod 0644 {} +

文書

次に、アクセス制御リスト(ACL)を正しく使用する方法を決定します。 (どのユーザーおよび/またはグループがどのファイルまたはディレクトリへの読み取りまたは書き込み権限を必要とするかを詳しく知っていますが、質問には指定されていません。)以下はいくつかの例です。各例では、ACLが正しく定義されるように明示的なACLを設定することに注意してください。文書(まだディレクトリではありません)。後でACLそしてデフォルトの ACL は次に適用できます。目次。以下は-m適用するマスクです。

# Give medusa user (u) read-write; give group_name (g) read; give others (o) read.
find /media -type f -exec setfacl -m u:medusa:rw-,g:group_name:r--,o:r--

# Give plex user (u) read-write. 
find /media -type f -exec setfacl -m u:plex:rw-

# Give server group (g) read-write. 
find /media -type f -exec setfacl -m g:server:rw-

# Give media user (u) read-write. 
find /media -type f -exec setfacl -m u:media:rw-

# Give media user (u) read-write, server group (g) read-write, others (o) read. 
find /media -type f -exec setfacl -m u:media:rw-,g:server:rw-,o:r--

目次

ファイルに適用されるACLはディレクトリにも適用できますが、デフォルトのACLも設定できるという点で若干異なります(-d)。このスイッチを使用すると、-dディレクトリ内のすべての新しいファイルシステムオブジェクトが自動的に定義されたACLを継承します。 ACLはディレクトリ自体に対して設定する必要があることを覚えておくことが重要です。そしてACL が新しいファイルに自動的に適用される場合、デフォルトの ACL が使用されます。また、以下はxディレクトリ()を変更するために実行(in)が必要であることに注意してください。ただし、これは実行ビットがファイルに適用されるという意味ではありません。代わりに、実行ビットは新しいディレクトリにのみ適用されます。rwxcd

# For each directory itself:
find /media -type d -exec setfacl    -m u:media:rwx,g:server:rwx,o:r-x {} +

# To set a default ACL in each directory - the same command as above with the `-d` switch:
find /media -type d -exec setfacl -d -m u:media:rwx,g:server:rwx,o:r-x {} +

各ACLに対して、上記の2つのコマンドを繰り返して、ターゲットに応じてユーザーおよび/またはグループを変更します。これにより、必要に応じてACLを追加できるようにACLがスタックされ、各新しいファイルシステムオブジェクトへのACL自動割り当てが完了します。


「ugo」メソッド(例:rwx)または8進数(例:7)を使用できます。

  • rwx
  • r--
  • rw-
  • r-x
  • 7
  • 4
  • 6
  • 5

つまり、次のコマンドは同じです。

setfacl -m u:media:rwx,g:server:rwx,o:r-x {} +
setfacl -m u:media:7,g:server:7,o:5 {} +

このグループは他のマスクと同じように機能するg:groupname:---か、次のように組み合わせます。

u:username:---,g:groupname:---,o::---

私は1つのコロンが「その他」にも機能することがわかりました。

u:username:---,g:groupname:---,o:---

ユーザー名またはグループ名を指定しないと、現在のユーザー/グループの所有権にマスクが適用されます。


どのユーザーまたはグループにどのレベルのアクセスが必要かを正確に知らないと、より正確に話すことは困難です。まず、分析を実行し、ディレクトリツリーでより深いプロセスを開始したい場合があります。 ACLを初めて使用するときにそれらをすべて削除する方法を知っておくと便利ですsetfacl -Rb /media。また、およびのマニュアルを使用または読み取るinfoことができますman。もっとありますsetfaclgetfaclacl質問と回答ACLについて、ACL Q / Aが問題のオペレーティングシステムであるLinuxに適用されていることを確認してください。 (ACLは主なオペレーティングシステムのバリエーションによって異なります。)ACLは、この回答の上部に設定されている標準の所有権と権限を強化します。 ACLがある場所には、+以下のモデルに似たフラグがあることがわかります。

drwxr-xr-x  2 root root 4096 Jul 8 16:00 dir_without_acl
drwxr-xr-x+ 2 root root 4096 Jul 8 16:00 dir_with_acl

これらのファイルにアクセスするサービスを再起動する必要があるかもしれません。

おすすめ記事