Windowsのようなユーザーやグループに対するLinuxのアクセス許可をより高度に制御できるLinux用の何かがありますか。それがSeLinuxの目的ですか?
ほとんどすべてのUnixライクなシステムはACLをサポートしています。 Linuxでは、 POSIX ACL 形式が使用されます。 FreeBSDは、POSIXスタイルとNFSv4スタイルの両方のACLをサポートしています(Linuxにも NFSv4 ACL を追加する定期的な試みがあります)。
POSIX ACL形式は、ほとんどの場合、複数のユーザーに読み取り/書き込み/実行権限を指定できるようにするための単なる拡張機能です。
$ setfacl -m u::rw,u:httpd:r,g::- ssl.key
$ getfacl ssl.key
# owner: root
# group: root
user::rw-
user:openldap:r--
user:httpd:r--
user:postfix:r--
group::---
mask::r--
other::---
継承は「デフォルトACL」を使用して行われます。
$ getfacl /var/log/journal/
# owner: root
# group: systemd-journal
# flags: -s-
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:adm:r-x
default:group:wheel:r-x
default:mask::r-x
default:other::r-x
$ touch /var/log/journal/test
$ getfacl /var/log/journal/test
# owner: root
# group: systemd-journal
user::rw-
group::r-x #effective:r--
group:adm:r-x #effective:r--
group:wheel:r-x #effective:r--
mask::r--
other::r--
一方、NFSv4 ACL形式は、WindowsおよびNTFSの形式と非常に似ていますが、プリンシパル名がわずかに異なります(WindowsSIDまたはDOMAIN\nameではなくNFSv4スタイルのuser @ domainを使用)が、アクセス許可フラグはほぼ同じです。
ACLと基本的なUnixパーミッションはどちらも「随意アクセス制御」ツールであり、通常はオブジェクトの所有者によって設定されます。ファイルを作成すると、誰でも読めるようになります。一方、SELinuxは 必須アクセス制御 の実装です–すべてのSELinuxルールはシステム管理者によって作成され、変更することはできませんユーザーが作成したファイルであっても、ユーザーによって。他のそのようなシステムはAppArmor、SMACKです。 Windows Vistaには、 必須整合性制御 と呼ばれる非常に基本的なスキームがあります。