Tampaknya Linux mendukung perubahan pemilik tautan simbolik (yaitu lchown
) tetapi mengubah mode / izin tautan simbolik (yaitu lchmod
) tidak didukung . Sejauh yang saya bisa lihat ini sesuai dengan POSIX. Namun, saya tidak mengerti mengapa orang akan mendukung salah satu dari operasi ini tetapi tidak keduanya. Apa motivasi di balik ini?
linux
permissions
posix
Florian Brucker
sumber
sumber
lrwxrwxrwx
. Achmod
tidak masuk akal di sini. Mengikuti tautan membawa Anda ke izin target.lchmod
. Tetapi OS lain yang mirip Unix mendukungnya (mis. Mac OS X ), jadi pertanyaannya adalah mengapa Linux tidak mendukungnyalchown
.Jawaban:
Linux, seperti kebanyakan sistem mirip Unix (Apple OS / X menjadi salah satu pengecualian yang jarang terjadi), mengabaikan izin pada symlink ketika harus menyelesaikan target mereka misalnya.
Namun kepemilikan symlink, seperti file lain, relevan ketika datang ke izin untuk mengganti nama atau membatalkan tautan entri mereka di direktori yang memiliki
t
bit set, seperti/tmp
.Untuk dapat menghapus atau mengganti nama file (symlink atau tidak)
/tmp
, Anda harus menjadi pemilik file. Itulah salah satu alasan seseorang mungkin ingin mengubah kepemilikan symlink (untuk memberikan atau menghapus izin untuk memutuskan tautan / mengubah nama itu).Juga, seperti yang disebutkan oleh Mark Plotnick dalam jawaban yang sekarang dihapus , aplikasi cadangan dan arsip perlu
lchown()
mengembalikan symlink ke pemilik aslinya. Pilihan lain adalah mengganti euid dan egid sebelum membuat symlink, tetapi itu tidak akan efisien dan menyulitkan manajemen yang tepat pada direktori tempat symlink diekstraksi.sumber
Tidak ada lchmod () di posix tetapi fchmodat () yang memungkinkan untuk mengatur izin symlink. Ini masih tidak memerlukan izin symlink untuk dievaluasi.
sumber
lchmod
sesuai dengan POSIX. Apa yang ditambahkan jawaban ini yang belum ada dalam pertanyaan?