web-dev-qa-db-ja.com

chmodとACLの違い

私はchmodchownと権限ビットの仕組みを理解していますが、LinuxにはACLsetfaclgetfaclを使用する別の権限システムがあるので、これは不思議です。

これら2つの許可制御システムの違いは何ですか?それらは互いに干渉しますか?

13
mFeinstein

どちらかが他よりも優れているわけではありません。それらは単なる異なる方法と考え方です。

両方の権限システムを同じパスで問題なく使用できます。

これらは、所有者、所有グループ、およびその他の権限を変更するときに互いに干渉します。setfaclからこれらの現在の値を設定すると、実際にはACLの権限ではなく、posixの権限が設定されます。

Posix権限は、所有者、所有グループ、および「全員」権限のみを許可しますが、ACLは複数の「所有」ユーザーおよびグループを許可します。 ACLでは、フォルダ内の新しいファイルにデフォルトのアクセス権を設定することもできます。

より厳密な制御のために、apparmorまたはselinuxの両方にさらに権限管理を追加できます。

7
Zulgrib

Chmod(読み取り/書き込み/実行、ユーザー/グループ/その他)によって設定された従来のUnixアクセス許可は、ACLよりもずっと長く存在していました。 ACLが最初から存在していた場合、私たちが知っているようにchmodはありません。ただし、chmodは非常に長い間存在していたため、多くのアプリケーションがそれを呼び出し、多くのアーカイブ形式が従来の権限をサポートしています。ACLを使用してchmod権限を表現できます。それらは、ACLの一種の開始点として機能します。

ACLが存在する場合にアクセス制御がどのように機能するかについてのより詳細な扱いについては、 ファイル権限におけるユーザーとグループの所有者の優先順位 および ユーザーが複数のグループに属している場合のACLSの優先順位 を参照してください。 。

chmodコマンドは、実際には権限ではないが、しばしば権限と呼ばれるいくつかのフラグも制御します: setuid、setgid および sticky bit 。これらは、ファイルへのアクセスが許可されるのではなく、ファイルへの特定の操作が許可された後の動作に影響しないため、実際にはアクセス許可ではありません。 ACLにはこのようなものはありません。