Pourquoi getfacl supprime-t-il / des chemins absolus?


10

Je suis en train d'apprendre les ACL pour CentOS / Red Hat 6; quand je cours en getfaclutilisant un chemin absolu, j'obtiens parmi la sortie:

getfacl: Suppression de la première ligne "/" des noms de chemin absolus

Pourquoi faut-il faire cela? Dans quelles situations auriez-vous besoin d'utiliser le commutateur -pou --absolute-names?

Mes livres de Wale Soyinka et Michael Jang n'en font même pas mention, je ne vois aucun indice dans la page de manuel et je n'arrive pas à trouver de sites qui répondent directement à cet avertissement.


1
C'est comme ça depuis l'aube de l'ACL sous Linux . Je ne sais pas pourquoi.
Gilles 'SO- arrête d'être méchant'

Merci de m'avoir aidé à le consulter et pour le lien. Mes compétences en programmation sont un peu rudimentaires pour le moment, mais j'ai enregistré le fichier lorsque je commencerai à aborder le C / C ++ avec mon livre Gaddis.
Seananigans

Réponses:


6

De la page de manuel de getfacl:

-p, --absolute-names
       Do not strip leading slash characters (`/'). The  default  behavior
       is to strip leading slash characters.

Un message d'avertissement est émis lorsque vous fournissez un chemin absolu sans utiliser de -pcommutateur.

Les sorties sont différentes lorsqu'un chemin absolu est donné à la getfaclcommande.

Sans -pinterrupteur:

$ getfacl /path/foo/bar
getfacl: Removing leading '/' from absolute path names
# file: path/foo/bar
[Output truncated...]

Notez que la barre oblique principale du chemin d'accès au fichier s'affiche uniquement lorsque le -pcommutateur est utilisé.

$ getfacl -p /path/foo/bar
# file: /path/foo/bar
[Output truncated...]

-p est utile pour conserver la barre oblique principale lorsque vous avez canalisé la sortie pour un traitement ultérieur.

Les sorties sont les mêmes lorsqu'un chemin relatif est donné à la getfaclcommande.

$ getfacl bar
# file: bar
[Output truncated...]

Aucun changement:

$ getfacl -p bar
# file: bar
[Output truncated...]

Pardonnez-moi, car je suis relativement nouveau sur Linux, mais cela semble être un commutateur assez superflu, car si vous dirigiez la sortie vers un autre programme, vous devrez de toute façon modifier le flux pour saisir cette section de la sortie dans le premier place, ai-je raison? Quel serait un exemple de cas où il serait utile de supprimer la barre oblique principale? Puisqu'il s'agit d'un chemin absolu, il semble un peu idiot de le dépouiller en premier lieu.
Seananigans

2
Dans d'autres distributions (par exemple FreeBSD), ce commutateur n'existe pas. En visualisant la source du package RHEL acl, il semble que --absolute-namesseule la chaîne de sortie - "# file:" soit traitée, mais pas la logique derrière. Au début, je suppose que cela peut être une caractéristique de sécurité. Néanmoins, le commutateur n'existe pas dans setfacl. Ma dernière hypothèse est que l'auteur aimerait simuler le tarcomportement, bien que l' -putilisation du commutateur getfaclpuisse être inutile.
Ivan Chau

9
Cela ne répond cependant pas au pourquoi. Pourquoi les barres obliques principales sont-elles supprimées par défaut, comment cela aide-t-il?
Segfault
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.