これはどのように可能ですか?
ACLは_/etc/fstab
_で有効になっておらず、手動でfstab
を開くか、_Sudo mount | grep -i acl
_を実行することで確認できます。
しかし、getfacl
&setfacl
コマンドは問題なく動作します!
問題は、最初にこれが機能している理由を理解する必要があり、次に他のシステムでACLサポートが利用可能かどうかを確認する必要があるので、どうすればよいですか?
ACLコマンドは、_/
_と_/mydrive
_の両方でテストされました(mount
出力については以下を参照してください)。
OS情報:
_uname -a
_:
_Linux localhost 3.2.0-4-AMD64 #1 SMP Debian 3.2.57-3+deb7u1 x86_64 GNU/Linux
_
_lsb_release -a
_:No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 7.5 (wheezy) Release: 7.5 Codename: wheezy
mount
:sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=384309,mode=755) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=308664k,mode=755) /dev/disk/by-uuid/3180f94a-e765-44e9-93f7-33aa1c6422c0 on / type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k) tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1188500k) /dev/sda5 on /mydrive type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered) rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime) fusectl on /sys/fs/Fuse/connections type fusectl (rw,relatime)
ext3/4 ファイルシステムのヘッダーには、デフォルトのマウントオプション属性があります。あなたはそれを見ることができます:
$ LC_ALL=C tune2fs -l /dev/device | grep 'Default mount options:'
Default mount options: user_xattr acl
tune2fs -o
で変更でき、-o noacl
でマウントすると上書きされます。
新しいファイルシステムを作成する場合、mke2fs
は、/etc/mke2fs.conf
で指定した内容に基づいてファイルシステムを設定します。たとえば、私の持っているもの:
[defaults]
[...]
default_mntopts = acl,user_xattr
[...]
ただし、 Gillesが指摘 のように、2.6.39以降、デフォルトでacl
とuser_xattr
がオンになっています(コンパイル時にカーネルでサポートが有効になっている場合、通常はデフォルトです)。したがって、acl
のデフォルトのマウントオプションがなくても、新しいカーネルではacl
sがデフォルトで有効になり、無効にする唯一の方法はmount -o noacl
を使用することです。
ACLがサポートされているかどうかを確認するには、ACLをクエリしてみることをお勧めします。
$ chacl -l /the/mountpoint
chacl: cannot get access ACL on '/the/mountpoint': Operation not supported