Чи достатньо, щоб не бачити getfacl
помилок, чи потрібно перевірити якесь інше місце, щоб побачити, чи підтримуються файлові системи ACL-файли чи ні?
Чи достатньо, щоб не бачити getfacl
помилок, чи потрібно перевірити якесь інше місце, щоб побачити, чи підтримуються файлові системи ACL-файли чи ні?
Відповіді:
Якщо ви говорите про змонтовану файлову систему, я не знаю жодного внутрішнього способу сказати, чи можливий ACL. Зауважте, що "підтримуються ACL?" не дуже точне запитання, оскільки існує декілька типів ACL навколо (Solaris / Linux / not-POSIX-зрештою, NFSv4, OSX,…). Зауважте, що getfacl
це марно як тест, оскільки він із задоволенням повідомляє дозволи на Unix, якщо це все: вам потрібно спробувати встановити ACL для тестування.
Все ж у змонтованій файловій системі ви можете перевірити наявність acl
у параметрах монтажу (які ви можете знайти в /proc/mount
). Зауважте, що цього недостатньо: вам також потрібно врахувати версію ядра та тип файлової системи. Для деяких типів файлової системи завжди доступний ACL, незалежно від параметрів монтажу; це стосується tmpfs, xfs та zfs. У деяких файлових системах є ACL, якщо явно не виключено; це стосується ext4, оскільки ядро 2.6.39 .
acltype=posixacl
, /proc/mounts
воля покаже posixacl
, але в іншій системі з просто ext4 всередині нічого немає /proc/mounts
, але acl
був варіант монтажу за замовчуванням для ext4.
Щоб знати, чи доступний ACL, ви можете:
Перевірте поточну версію ядра та файлову систему:
uname -r
df -T
або mount | grep root
Останній дистрибутив за замовчуванням включив опцію кріплення ACL (оскільки ядро 2.6). Тому не обов'язково переосмислювати його в / etc / fstab (або подібному). Невичерпний перелік відповідних файлових систем: ext3, ext4, tmpfs, xfs та zfs.
Якщо у вас старіші установки, можливо, вам доведеться перекомпілювати ядро та / або додати acl /etc/fstab
.
Приклад fstab: /dev/root / ext4 acl,errors=remount-ro 0 1
Шукайте наявні налаштування ACL ("звичайне" місце конфігурації увімкнено / завантажується):
sudo mount | grep -i acl #optionnal
cat /boot/config* | grep _ACL
Залежно від системи ви могли б знайти налаштування /proc
замість цього. Ось спосіб вилучити конфігурацію з архіву .gz, а потім здійснити пошук налаштувань acl:
cat /proc/config.gz | gunzip > running.config && grep -i 'acl' running.config
cat running.config | grep _ACL
Ви повинні побачити щось на кшталт:
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
Для файлової системи ви можете спробувати отримати більше інформації за допомогою:
sudo tune2fs -l /xxx/xxx| grep 'Default mount options:'
(замініть xxx / xxx вашою файловою системою)
-
Корисну інформацію можна знайти на:
- superuser.com ,
- сервер за замовчуванням ,
- bencane.com ,
- wiki.archlinux.org
acl повинен бути включений за замовчуванням, якщо ви використовуєте ext2 / 3/4 або btrfs.
Перевірте:
tune2fs -l /dev/sdXY | grep "Default mount options:"
Якщо його немає у виході, зробіть:
tune2fs -o acl /dev/sdXY
grep acl /etc/mke2fs.conf
зробимо це теж.
getfacl
тесту, ви праві. За винятком випадків, коли мені вдалося знайти ACL, що не використовується за замовчуванням (за допомогою придушення типових параметрів та заголовка). Перевірка/proc/mount
здається недостатньою у тих випадках, колиacl
параметр є типовим параметром, який не надходить із команди mount абоfstab
, хоча.