2011-06-07 13 views
10

getfacl/setfacl'un man sayfasını okuduktan sonra acl'nın (ba) sh içindeki belirli bir yol için etkin olup olmadığını kontrol etmek için açık/sağlam/zarif bir yöntem bulamadım .Belirli bir yol için WHIX POSIX ACL'nin etkinleştirilmesi nasıl denetlenir

Herhangi bir öneriniz var mı?

+0

'getfacl yolu; eğer [$? -ne 0]; daha sonra "NO ACL" yankısı; fi çalışmıyor? –

+0

@Let_Me_Be: Hayır, ACL desteği olmayan bir çekirdek ile bile başarılı. (Dosya modu bitlerini tahmin ettiğim ACL'lere çevirir) – Mat

+0

@ Mat: Tam olarak. getfacl, bir acl ayarlanıp ayarlanmadığını gösterir. Ancak, temel dosya sistemi acl etkin değilse. –

cevap

4
{ 
    # Determine what the mount point for the path is: 
    MOUNT_POINT=$(df -P $FILENAME | tail -n 1 | awk '{print $6}') 
    # Get the mount options for the path: 
    MOUNT_OPTS=$(awk '$2=="'$MOUNT_POINT'" { print $4 }' /proc/mounts) 
    # Check to see if acl is one of the mount points: 
    echo $MOUNT_OPTS | tr , \\\n | grep '^acl$' -q 
    if [ $? -eq 0 ]; then 
    echo "ACLs enabled" 
    else 
    echo "ACLs disabled" 
    fi 
} 
+0

maalesef bu nfs bağlantı noktasında başarısız oluyor. –

+0

Hangi kısım çalışmıyor? NFS aslının 'acl' mount seçeneğiyle gösterilmemesi ya da betiğinin bir şekilde NFS mount'ları üzerinde durması imkansız mıdır? – synthesizerpatel

+0

@Mr. Mr .: AFAIK NFS, ACL'leri asla desteklemedi ... sadece normal UNIX hakları. Belki değişti ama ben öyle düşünmüyorum. – TMS

İlgili konular