Sì, ACL: s consente di impostare liberamente diritti diversi per utenti o gruppi diversi. IIRC le consuete autorizzazioni di gruppo limitano l'insieme di autorizzazioni che i gruppi e gli utenti possono avere tramite ACL: s (mostrato come mask
in getfacl
), ma setfacl
devono occuparsene se si aggiungono autorizzazioni.
Ma in alcuni casi è necessario chiedere se l'insieme di autorizzazioni ha un senso.
Ho 3 utenti con queste autorizzazioni desiderate ....
- user1 rwx
- user2 rw_
- user3 r__
È possibile implementarlo con ACL: s o (approssimativamente) con le consuete autorizzazioni Unix rendendo user1 il proprietario del file, user2 un membro del gruppo e consentire ad altri, incluso user3, di accedere in lettura. Anche se poi tutti (con accesso alla directory) avrebbero anche accesso in lettura.
Consideriamo il significato di tali autorizzazioni. Hai un utente in grado di leggere e un altro in grado di leggere e scrivere. È del tutto normale. Nessuno di questi ha accesso per eseguire il file, ma anche un terzo utente dovrebbe essere in grado di farlo.
Non ha molto senso nella mia mente. Qualsiasi utente in grado di leggere il file, può crearne una copia (*), contrassegnarlo come eseguibile ed eseguirlo, senza accesso per eseguire il file originale. L'unica situazione che ha senso avere accesso per eseguire alcuni utenti, ma non per altri, è quando l'eseguibile ha privilegi elevati attraverso il suid. Ma se così fosse, non dovresti avere altri utenti con accesso in scrittura al file.
Allo stesso modo, user4 with -wx
e user5 with --x
non hanno senso per me. L'accesso in sola scrittura potrebbe avere senso se esistesse la possibilità di autorizzare solo gli allegati , ma il sistema di autorizzazioni non è così preciso.
(* a meno che non possano scrivere da nessuna parte)
Tuttavia, se rimuoviamo lo strano requisito per il x
bit, ci rimane un file in cui user1 e user2 dovrebbero avere accesso in scrittura e user3 dovrebbe avere accesso in lettura. Uno scrittore e più lettori sarebbero facili con il modello tradizionale, ma questo caso avrebbe bisogno di trucchi per combinare i permessi dei file con i permessi della directory contenente. Fortunatamente, in molti casi è sufficiente un utente con più autorizzazioni.
Senza il requisito sul bit di esecuzione, questo sembra un caso per usare ACL: s. Ma con questo, questo particolare esempio mi sembra piuttosto contorto.