GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでグループ権限を継承するための新しいファイルを取得しますか?

Linuxサーバーの権限に問題があります。私はBSDに慣れています。ディレクトリがwww-dataなどにないグループによって所有されている場合、そのディレクトリに作成されたファイルはそのグループによって所有されます。これは重要です。なぜなら、ファイルをWebサーバー(rootとして実行しない)で読み取り可能にしたいのですが、ユーザーは引き続き新しいファイルをディレクトリに配置できるからです。ユーザーをwww-dataに入れることはできません。そうすれば、他のすべてのユーザーのWebサイトを読むことができるからです。

WebサーバーにすべてのWebサイトを読み取らせ、ユーザーが自分のWebサイトを変更できるようにしたい。

現在、フォルダにはこのように権限が設定されています…。

drwxr-x--- 3 john www-data 4096 Feb 17 21:27 john

このように機能するパーミッションのBSDの標準的な動作です。 Linuxにこれを実行させるにはどうすればよいですか?

承認された回答:

setgidビット機能について説明しているようです。この機能は、それが設定されているディレクトリで、その中に作成された新しいファイルが、親ディレクトリに設定されているのと同じグループにグループを設定するように強制します。

$ whoami
saml

$ groups
saml wheel wireshark

権限と所有権を持つディレクトリを設定する

$ sudo mkdir --mode=u+rwx,g+rs,g-w,o-rwx somedir
$ sudo chown saml.apache somedir
$ ll -d somedir/
drwxr-s---. 2 saml apache 4096 Feb 17 20:10 somedir/

このディレクトリでsamlとしてファイルをタッチする

$ whoami
saml

$ touch somedir/afile
$ ll somedir/afile 
-rw-rw-r--. 1 saml apache 0 Feb 17 20:11 somedir/afile

これにより、おおよそあなたが望むように聞こえます。ただし、説明した内容を本当に必要とする場合は、アクセス制御リスト機能を使用してそれを取得する必要があると思います(ACL)。

ACL

ディレクトリの下に作成されるファイルのアクセス許可をもう少し制御したい場合は、somedir 、次のACLルールを追加して、そのようなデフォルトのアクセス許可を設定できます。

$ ll -d somedir
drwxr-s---. 2 saml apache 4096 Feb 17 20:46 somedir

権限を設定する

$ sudo setfacl -Rdm g:apache:rx somedir
$ ll -d somedir/
drwxr-s---+ 2 saml apache 4096 Feb 17 20:46 somedir/

+に注意してください 最後に、これは、このディレクトリにACLが適用されていることを意味します。

$ getfacl somedir
# file: somedir
# owner: saml
# group: apache
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:group:apache:r-x
default:mask::r-x
default:other::---

$ touch somedir/afile
$ ll somedir/afile 
-rw-r-----+ 1 saml apache 0 Feb 17 21:27 somedir/afile
$ 

$ getfacl somedir/afile
# file: somedir/afile
# owner: saml
# group: apache
user::rw-
group::r-x              #effective:r--
group:apache:r-x        #effective:r--
mask::r--
other::---

デフォルトの権限(setfacl -Rdm)で注意してください )権限が(r-x)になるように設定します )デフォルト(g:apache:rx )。これにより、新しいファイルにはrのみが含まれるようになります。 ビットが有効になっています。

関連:ShellScriptチートシート
Linux
  1. ディレクトリ内のすべての新しいファイルをグループからアクセスできるようにしますか?

  2. Linux –ディレクトリ内のすべてのフォルダ/ファイルにデフォルトのファイル権限を設定するにはどうすればよいですか?

  3. Linux –サーバー上の共有ディレクトリのアクセス許可の問題?

  1. SeedboxからのRsync後にファイルに新しいアクセス許可を強制しますか?

  2. Linux – Linuxで現在の日付のファイルを取得しますか?

  3. WWW フォルダに Linux のアクセス許可を設定するにはどうすればよいですか?

  1. LinuxでRsyncを使用して新しいファイルまたは変更/変更されたファイルを同期する方法

  2. グループにユーザーを追加しましたが、ファイルに対するグループのアクセス許可はまだ効果がありませんか?

  3. 他のユーザーのファイルにグループ権限を付与しますか?