Czy wystarczy nie widzieć getfaclbłędu, czy muszę sprawdzić inne miejsce, aby sprawdzić, czy listy ACL są obsługiwane przez systemy plików?
Czy wystarczy nie widzieć getfaclbłę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 getfacljest 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ść aclopcji 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/mountspokaże posixacl, ale w innym systemie z samym ext4 nic nie ma w środku /proc/mounts, ale aclbył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 -Tlub 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.confteż to zrobi.
getfacltestu 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/mountnie wydaje się wystarczające w przypadkach, gdyaclopcja jest opcją domyślną, która nie pochodzi z polecenia montowaniafstab, a jednak.