Là đủ để thấy getfacl
không đưa ra lỗi, hay tôi phải kiểm tra một số nơi khác để xem liệu ACL có được hỗ trợ bởi các hệ thống tệp không?
Là đủ để thấy getfacl
không đưa ra lỗi, hay tôi phải kiểm tra một số nơi khác để xem liệu ACL có được hỗ trợ bởi các hệ thống tệp không?
Câu trả lời:
Nếu bạn đang nói về một hệ thống tập tin được gắn kết, tôi không biết bất kỳ cách nội tại nào để biết liệu ACL có khả thi hay không. Lưu ý rằng, có hỗ trợ ACL không? không phải là một câu hỏi rất chính xác vì có một số loại ACL xung quanh (Solaris / Linux / not-POSIX-after-all, NFSv4, OSX, lỗi). Lưu ý rằng việc getfacl
kiểm tra là vô ích vì nó sẽ vui vẻ báo cáo các quyền của Unix nếu đó là tất cả: bạn cần thử đặt ACL để kiểm tra.
Vẫn trên hệ thống tập tin được gắn kết, bạn có thể kiểm tra sự hiện diện của acl
các tùy chọn gắn kết (mà bạn có thể tìm thấy /proc/mount
). Lưu ý rằng điều này là không đủ: bạn cũng cần xem xét phiên bản kernel và loại hệ thống tập tin. Một số loại hệ thống tập tin luôn có sẵn ACL, bất kể tùy chọn gắn kết; đây là trường hợp của tmpfs, xfs và zfs. Một số hệ thống tập tin có ACL trừ khi được loại trừ rõ ràng; đây là trường hợp của ext4 kể từ kernel 2.6.39 .
acltype=posixacl
, /proc/mounts
sẽ hiển thị posixacl
, nhưng trong một hệ thống khác chỉ có ext4, không có gì bên trong /proc/mounts
, nhưng acl
là một tùy chọn gắn kết mặc định cho ext4.
Để biết nếu ACL có sẵn, bạn có thể:
Kiểm tra phiên bản kernel hiện tại và hệ thống tập tin:
uname -r
df -T
hoặc mount | grep root
distro gần đây có tùy chọn gắn ACL theo mặc định (kể từ kernel 2.6). Vì vậy, không bắt buộc phải xác định lại trong / etc / fstab (hoặc tương tự). Danh sách không đầy đủ các hệ thống tập tin liên quan: ext3, ext4, tmpfs, xfs và zfs.
Nếu bạn có thiết lập cũ hơn thì bạn có thể phải biên dịch lại kernel và / hoặc thêm acl vào /etc/fstab
.
ví dụ fstab: /dev/root / ext4 acl,errors=remount-ro 0 1
Tìm các cài đặt ACL hiện có (vị trí cấu hình "thông thường" là bật / khởi động):
sudo mount | grep -i acl #optionnal
cat /boot/config* | grep _ACL
Tùy thuộc vào hệ thống mà bạn có thể tìm thấy các cài đặt /proc
thay thế. Đây là một cách để trích xuất cấu hình từ kho lưu trữ .gz và sau đó tìm kiếm cài đặt acl:
cat /proc/config.gz | gunzip > running.config && grep -i 'acl' running.config
cat running.config | grep _ACL
Bạn sẽ thấy một cái gì đó như:
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
Đối với hệ thống tệp, bạn có thể thử lấy thêm thông tin bằng:
sudo tune2fs -l /xxx/xxx| grep 'Default mount options:'
(thay thế xxx / xxx bằng hệ thống tệp của bạn)
-
Thông tin hữu ích có thể được tìm thấy trên:
- superuser.com ,
- serverfault ,
- bencane.com ,
- wiki.archlinux.org
acl nên được bật làm mặc định nếu bạn đang sử dụng ext2 / 3/4 hoặc btrfs.
Kiểm tra với:
tune2fs -l /dev/sdXY | grep "Default mount options:"
Nếu nó không có trong đầu ra, hãy thực hiện:
tune2fs -o acl /dev/sdXY
root
, trong khi chạy getfacl
sẽ không. Không có lựa chọn nào tốt hơn để kiểm tra hỗ trợ?
grep acl /etc/mke2fs.conf
cũng sẽ làm điều đó
getfacl
bài kiểm tra bạn đã đúng. Ngoại trừ nếu tôi có thể tìm thấy một ACL không mặc định (bằng cách loại bỏ các tiêu đề và tiêu đề mặc định). Việc kiểm tra/proc/mount
dường như không đủ trong trường hợpacl
tùy chọn là tùy chọn mặc định không đến từ lệnh mount hoặcfstab
mặc dù.