Di OSX saya dapat mengatur izin dari symlink itu sendiri (bukan hal yang ditunjuknya untuk menggunakan -h). Dari halaman manual:
-h If the file is a symbolic link, change the mode of the link itself rather than the file that the link points to.
Di Ubuntu 14.04 saya mencoba untuk mengatur izin symlink, tetapi hanya ditetapkan pada target symlink.
Ini menyangkut symlink dari /home/nagios/.ssh/someprivatekey
ke /somewhere/else/privatekey
, jadi izin penting untuk ssh. Bagaimana saya bisa mencapai ini?
permissions
ssh
chmod
symbolic-link
Ray Burgemeestre
sumber
sumber
ls -l
output (lrwxrwxrwx
)..ssh/config
:)Jawaban:
Tidak memungkinkan. Tidak ada cara karena izin pada symlink tidak ada artinya (symlink bukan file; itu hanya menunjuk ke file). Cara untuk melakukan ini dengan Linux adalah melalui ACL .
symlink dijelaskan sebagai ...
Perbedaannya ada di sini: chmod dan chmod ... itu BSD versus Linux.
Tidak yakin apakah ini penting tetapi mengenai SSH: ia menggunakan stat (2) , bukan lstat (2) untuk mendapatkan izin.
sumber
fchmodat
fungsi, yang dapat digunakan untuk mengubah mode tautan simbolik (fitur opsional - sistem yang tidak mendukungnya, termasuk Linux, return error EOPNOTSUPP), tetapi tidak adachmod
perintah untuk menggunakan ini. Hanya-R
ditentukan dalam POSIX.lchmod(2)
ataufchmodat(2)
...), mereka memiliki makna (izinkan / tolakreadlink()
(baca) atau resolusi jalur melalui mereka (jalankan)). Izin menulis biasanya tidak karena Anda tidak dapat mengubah target symlink.Kamu tidak bisa
chmod
Panggilan sistem yang mendasarinya tidak mendukung hal ini di Linux, dan karena itu, Linux juga tidak peduli dengan izin tautan. Dariman chmod
:Mengenai tautan keras atau bind mount, izin sumber digunakan, sehingga tidak satu pun dari tiga cara standar untuk mencerminkan konten file di tempat lain dapat membantu Anda dalam hal ini.
sumber