Saya menghadapi beberapa masalah dengan membuat tautan lunak. Berikut ini adalah file asli.
$ ls -l /etc/init.d/jboss
-rwxr-xr-x 1 askar admin 4972 Mar 11 2014 /etc/init.d/jboss
Pembuatan tautan gagal dengan masalah izin untuk pemilik file:
ln -sv jboss /etc/init.d/jboss1
ln: creating symbolic link `/etc/init.d/jboss1': Permission denied
$ id
uid=689(askar) gid=500(admin) groups=500(admin)
Jadi, saya membuat tautan dengan hak sudo:
$ sudo ln -sv jboss /etc/init.d/jboss1
`/etc/init.d/jboss1' -> `jboss'
$ ls -l /etc/init.d/jboss1
lrwxrwxrwx 1 root root 11 Jul 27 17:24 /etc/init.d/jboss1 -> jboss
Selanjutnya saya mencoba mengubah kepemilikan tautan lunak ke pengguna asli.
$ sudo chown askar.admin /etc/init.d/jboss1
$ ls -l /etc/init.d/jboss1
lrwxrwxrwx 1 root root 11 Jul 27 17:24 /etc/init.d/jboss1 -> jboss
Tetapi izin tautan lunak tidak berubah.
Apa yang saya lewatkan di sini untuk mengubah izin tautan?
Jawaban:
Pada sistem Linux, ketika mengubah kepemilikan tautan simbolis menggunakan
chown
, secara default ia mengubah target tautan simbolis (yaitu, apa pun yang menunjuk tautan simbolis ).Jika Anda ingin mengubah kepemilikan tautan itu sendiri, Anda perlu menggunakan
-h
opsi untukchown
:Sebagai contoh:
Perhatikan bahwa target tautan sekarang dimiliki oleh root.
Dan lagi, tautannya
test1
masih dimiliki oleh root, meskitest
sudah berubah.Dan akhirnya kami mengubah kepemilikan tautan menggunakan
-h
opsi.sumber
cp -as
atau tidakinstall
jugaln
dapat secara langsung membuat symlink dengan pengguna / grup tertentu.Saat bekerja pada symlink, Anda harus memberi tahu sebagian besar alat (chown, chmod, ls ...) untuk tidak menampilkan tautan: Anda harus menambahkan
-h
parameter, seperti yang dinyatakan dalam manual:Jadi cobalah:
sudo chown -h askar.admin /etc/init.d/jboss1
sumber
Perhatikan juga bahwa kesalahan yang Anda berikan di atas
bukan karena pemilik symlink menjadi orang lain daripada pemilik file asli. Ini (kemungkinan besar) disebabkan oleh pengguna askar tidak memiliki akses tulis ke direktori
/etc/init.d
.sumber