Чому getfacl видаляє провідні / з абсолютних імен?


10

Я в самому розпалі дізнатися про ACL для CentOS / Red Hat 6; коли я запускаю getfaclабсолютний шлях, я потрапляю серед результатів:

getfacl: Видалення провідних "/" з абсолютних імен шляху

Чому це потрібно робити? У яких ситуаціях вам потрібно використовувати перемикач -pабо --absolute-namesперемикач?

Мої книги Уела Сойїнки та Майкла Джанга не згадують про це, я не бачу жодних підказок на сторінці людини, і я не можу знайти сайтів, які безпосередньо стосуються цього попередження.



Дякуємо, що допомогли мені розібратися в цьому та за посилання. Мої навички програмування наразі трохи рудиментарні, але я зберег файл, коли я починаю вирішувати C / C ++ за допомогою своєї книги Gaddis.
Seananigans

Відповіді:


6

З man сторінки на getfacl:

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

Повідомлення попередження видається, коли ви подаєте абсолютний шлях без використання -pкомутатора.

Виходи відрізняються, коли getfaclкоманді задано абсолютний шлях .

Без -pвимикача:

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

Зверніть увагу, що провідна коса риса шляху до файлу показує лише тоді, коли -pвикористовується перемикач.

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

-p корисно, щоб зберегти провідну косу рису, коли ви переклали вихід для подальшої обробки.

Виходи однакові, коли getfaclкоманді задано відносний шлях .

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

Немає змін:

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

Пробачте, як я відносно новачок у Linux, але це здається досить зайвим перемикачем, оскільки якби ви перекладали вихід на іншу програму, вам доведеться все-таки відредагувати потік, щоб схопити цей розділ виводу в першій місце, я прав? Що може бути прикладом, коли було б корисно зняти провідну косу рису? Оскільки це абсолютний шлях, в першу чергу здається злегка нерозумним.
Seananigans

2
В інших дистрибутивах (наприклад, FreeBSD) цього перемикача не існує. Переглядаючи джерело пакету RHEL acl, здається, що --absolute-namesсправа стосується лише вихідного рядка - "# file:", але не логіки позаду. Спочатку я думаю, що це може бути функція безпеки. Тим не менш, комутатор не існує в setfacl. Моє останнє припущення - автор хотів би імітувати tarповедінку, хоча використання -pперемикання getfaclможе бути марним.
Іван Чау

9
Це не відповідає чому, хоча. Чому провідні косої риски знімаються за замовчуванням, як це коли-небудь допомагає ??
Segfault
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.