Czy wystarczy nie widzieć getfacl
błędu, czy muszę sprawdzić inne miejsce, aby sprawdzić, czy listy ACL są obsługiwane przez systemy plików?
Czy wystarczy nie widzieć getfacl
błędu, czy muszę sprawdzić inne miejsce, aby sprawdzić, czy listy ACL są obsługiwane przez systemy plików?
Odpowiedzi:
Jeśli mówisz o podłączonym systemie plików, nie znam żadnego wewnętrznego sposobu, aby stwierdzić, czy ACL jest możliwe. Zauważ, że „czy ACL jest obsługiwane?” nie jest bardzo precyzyjnym pytaniem, ponieważ istnieje kilka rodzajów list ACL (Solaris / Linux / not-POSIX-after-all, NFSv4, OSX,…). Zauważ, że getfacl
jest to bezużyteczne jako test, ponieważ chętnie zgłosi uprawnienia uniksowe, jeśli to wszystko: musisz spróbować ustawić ACL do testowania.
Nadal w zamontowanym systemie plików możesz sprawdzić obecność acl
opcji montowania (które możesz znaleźć /proc/mount
). Zauważ, że to nie wystarczy: musisz również wziąć pod uwagę wersję jądra i typ systemu plików. Niektóre typy systemów plików zawsze mają dostępną listę ACL, niezależnie od opcji montowania; dzieje się tak w przypadku tmpfs, xfs i zfs. Niektóre systemy plików mają ACL, chyba że wyraźnie wykluczone; tak jest w przypadku ext4 od jądra 2.6.39 .
acltype=posixacl
, /proc/mounts
pokaże posixacl
, ale w innym systemie z samym ext4 nic nie ma w środku /proc/mounts
, ale acl
była domyślną opcją montowania dla ext4.
Aby dowiedzieć się, czy ACL jest dostępna, możesz:
Sprawdź bieżącą wersję jądra i system plików:
uname -r
df -T
lub mount | grep root
Ostatnie dystrybucje mają domyślnie dołączoną opcję montowania ACL (od jądra 2.6). Dlatego nie jest obowiązkowe przedefiniowanie go w / etc / fstab (lub podobnym). Niewyczerpująca lista danych systemów plików: ext3, ext4, tmpfs, xfs i zfs.
Jeśli masz starszą konfigurację, być może będziesz musiał ponownie skompilować jądro i / lub dodać acl /etc/fstab
.
przykład fstab: /dev/root / ext4 acl,errors=remount-ro 0 1
Poszukaj istniejących ustawień ACL („zwykłe” miejsce konfiguracji to on / boot):
sudo mount | grep -i acl #optionnal
cat /boot/config* | grep _ACL
W zależności od systemu można znaleźć ustawienia /proc
. Oto sposób na wyodrębnienie konfiguracji z archiwum .gz, a następnie wyszukanie ustawień acl:
cat /proc/config.gz | gunzip > running.config && grep -i 'acl' running.config
cat running.config | grep _ACL
Powinieneś zobaczyć coś takiego:
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
W przypadku systemu plików możesz spróbować uzyskać więcej informacji za pomocą:
sudo tune2fs -l /xxx/xxx| grep 'Default mount options:'
(zamień xxx / xxx na swój system plików)
-
Przydatne informacje można znaleźć na:
- superuser.com ,
- serverfault ,
- bencane.com ,
- wiki.archlinux.org
acl powinien być włączony domyślnie, jeśli używasz ext2 / 3/4 lub btrfs.
Sprawdź z:
tune2fs -l /dev/sdXY | grep "Default mount options:"
Jeśli nie ma go w danych wyjściowych, wykonaj:
tune2fs -o acl /dev/sdXY
grep acl /etc/mke2fs.conf
też to zrobi.
getfacl
testu masz rację. Z wyjątkiem sytuacji, gdy udało mi się znaleźć domyślną listę ACL (pomijając domyślne i nagłówek). Sprawdzanie/proc/mount
nie wydaje się wystarczające w przypadkach, gdyacl
opcja jest opcją domyślną, która nie pochodzi z polecenia montowaniafstab
, a jednak.