Mengapa getfacl menghapus leading / from pathnames absolut?

10

Saya di tengah-tengah belajar tentang ACL untuk CentOS / Red Hat 6; ketika saya menjalankan getfaclmenggunakan jalur absolut, saya mendapatkan di antara output:

getfacl: Menghapus leading '/' dari nama path absolut

Mengapa perlu melakukan ini? Dalam situasi apa Anda perlu menggunakan -patau --absolute-namesberalih?

Buku-buku saya oleh Wale Soyinka dan Michael Jang bahkan tidak menyebutkan hal ini, saya tidak melihat petunjuk di halaman manual, dan sepertinya saya tidak dapat menemukan situs yang secara langsung menangani peringatan ini.

Seananigans
sumber
1
Sudah seperti ini sejak awal ACL di Linux . Saya tidak tahu kenapa.
Gilles 'SANGAT berhenti menjadi jahat'
Terima kasih telah membantu saya mencarinya dan tautannya. Keterampilan pemrograman saya sedikit mendasar saat ini, tetapi saya telah menyimpan file ketika saya mulai menangani C / C ++ dengan buku Gaddis saya.
Seananigans

Jawaban:

6

Dari halaman manual getfacl:

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

Pesan peringatan dipancarkan ketika Anda memberikan jalur absolut tanpa menggunakan -psakelar.

Output berbeda ketika path absolut diberikan ke getfaclperintah.

Tanpa -pberalih:

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

Perhatikan path file slash in terkemuka hanya menunjukkan ketika -pswitch digunakan.

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

-p berguna untuk menjaga garis miring terkemuka ketika Anda menyalurkan output untuk diproses lebih lanjut.

Outputnya sama ketika path relatif diberikan ke getfaclperintah.

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

Tidak ada perubahan:

$ getfacl -p bar
# file: bar
[Output truncated...]
Ivan Chau
sumber
Maafkan saya, karena saya relatif baru di Linux, tetapi ini sepertinya saklar yang sangat berlebihan, karena jika Anda memipipkan output ke program lain, Anda tetap harus mengedit stream untuk mengambil bagian dari output di pertama tempat, apakah saya benar? Apa yang akan menjadi contoh kasus di mana akan berguna untuk menghapus garis miring utama? Karena ini adalah jalur absolut, tampaknya agak konyol untuk menghapusnya sejak awal.
Seananigans
2
Di distro lain (mis. FreeBSD), sakelar ini tidak ada. Dengan melihat sumber paket acel RHEL, tampaknya --absolute-nameshanya berurusan dengan string keluaran - "# file:", tetapi bukan logika di belakang. Pada awalnya saya kira itu mungkin fitur keamanan. Namun demikian, saklar tidak ada di setfacl. Asumsi terakhir saya adalah penulis ingin mensimulasikan tarperilaku meskipun -ppenggunaan sakelar getfaclmungkin tidak berguna.
Ivan Chau
9
Ini tidak menjawab mengapa. Mengapa garis miring terdepan secara default, bagaimana itu bisa membantu ??
Segfault