GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengubah kepemilikan dari tautan simbolik?

Pada sistem Linux, saat mengubah kepemilikan tautan simbolis menggunakan chown , secara default mengubah target dari tautan simbolik (yaitu, apa pun yang ditunjuk oleh tautan simbolis ).

Jika Anda ingin mengubah kepemilikan tautan itu sendiri, Anda perlu menggunakan -h opsi untuk chown :

-h, --no-dereference memengaruhi setiap tautan simbolis alih-alih file yang direferensikan (berguna hanya pada sistem yang dapat mengubah kepemilikan symlink)

Misalnya:

$ touch test
$ ls -l test*
-rw-r--r-- 1 mj   mj   0 Jul 27 08:47 test
$ sudo ln -s test test1
$ ls -l test*
-rw-r--r-- 1 mj   mj   0 Jul 27 08:47 test
lrwxrwxrwx 1 root root 4 Jul 27 08:47 test1 -> test
$ sudo chown root:root test1
$ ls -l test*
-rw-r--r-- 1 root root 0 Jul 27 08:47 test
lrwxrwxrwx 1 root root 4 Jul 27 08:47 test1 -> test

Perhatikan bahwa target tautan sekarang dimiliki oleh root.

$ sudo chown mj:mj test1
$ ls -l test*
-rw-r--r-- 1 mj   mj   0 Jul 27 08:47 test
lrwxrwxrwx 1 root root 4 Jul 27 08:47 test1 -> test

Dan lagi, tautan test1 masih dimiliki oleh root, meskipun test telah berubah.

$ sudo chown -h mj:mj test1
$ ls -l test*
-rw-r--r-- 1 mj mj 0 Jul 27 08:47 test
lrwxrwxrwx 1 mj mj 4 Jul 27 08:47 test1 -> test

Dan terakhir kita ubah kepemilikan link tersebut menggunakan -h opsi.


Saat bertindak pada symlink, Anda harus memberi tahu sebagian besar alat (chown, chmod, ls...) untuk tidak melakukan dereferensi tautan:Anda harus menambahkan -h parameter, seperti yang dinyatakan dalam halaman manual :

-h, --no-dereference
          affect symbolic links instead of any referenced file (useful only on systems that can change the ownership of a symlink)

Jadi cobalah :sudo chown -h askar.admin /etc/init.d/jboss1


Perhatikan juga kesalahan yang Anda berikan di atas

ln: creating symbolic link `/etc/init.d/jboss1': Permission denied

bukan karena pemilik symlink adalah orang lain selain pemilik file asli. Ini (kemungkinan besar) disebabkan oleh pengguna askar tidak memiliki akses tulis ke direktori /etc/init.d .


Linux
  1. Cara Membuat Tautan Keras dan Simbolik di Linux

  2. Cara Menguji Konektivitas Port [TCP/UDP] dari Server Linux

  3. Bagaimana cara membuat tautan simbolik ke semua file (kelas file) dalam direktori?

  1. Cara Menggunakan Perintah chown untuk Mengubah Kepemilikan di Linux

  2. Ubah Kepemilikan Grup Tautan Simbolik di Unix atau Linux

  3. Buat tautan simbolik NTFS dari dalam Linux

  1. Bagaimana saya bisa menjalankan fungsi dari skrip di baris perintah?

  2. Bagaimana cara menyalin tautan simbolik?

  3. Bagaimana cara mengubah kursor Terminal dari kotak ke baris?