GNU/Linux >> Znalost Linux >  >> Linux

Jak změnit vlastnictví ze symbolických odkazů?

V systému Linux při změně vlastnictví symbolického odkazu pomocí chown , ve výchozím nastavení změní cíl symbolického odkazu (tj. ať už symbolický odkaz ukazuje na cokoli ).

Pokud chcete změnit vlastnictví samotného odkazu, musíte použít -h možnost chown :

-h, --no-dereference ovlivnit každý symbolický odkaz namísto jakéhokoli odkazovaného souboru (užitečné pouze v systémech, které mohou změnit vlastnictví symbolického odkazu)

Například:

$ 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

Všimněte si, že cíl odkazu je nyní ve vlastnictví uživatele 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

A opět odkaz test1 je stále ve vlastnictví root, i když test se změnil.

$ 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

A nakonec změníme vlastnictví odkazu pomocí -h možnost.


Při práci se symbolickými odkazy musíte většině nástrojů (chown, chmod, ls...) říci, aby odkaz nedereferencovaly:musíte přidat -h parametr, jak je uvedeno v manuálové stránce:

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

Zkuste tedy:sudo chown -h askar.admin /etc/init.d/jboss1


Všimněte si také chyby, kterou jste uvedli výše

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

není způsobeno tím, že vlastníkem symbolického odkazu je někdo jiný než vlastník původního souboru. Je to (nejpravděpodobněji) způsobeno tím, že uživatel askar nemá právo zápisu do adresáře /etc/init.d .


Linux
  1. Jak vytvořit pevné a symbolické odkazy v Linuxu

  2. Jak otestovat konektivitu portu [TCP/UDP] ze serveru Linux

  3. Jak mohu spustit funkci ze skriptu v příkazovém řádku?

  1. Jak používat příkaz chown ke změně vlastnictví v Linuxu

  2. Jak změnit pole Od:pro e-maily z Cronu?

  3. Vytvářejte symbolické odkazy NTFS z Linuxu

  1. Změna skupinového vlastnictví symbolických odkazů v Unixu nebo Linuxu

  2. Jak zkopírovat symbolické odkazy?

  3. Jak změnit kurzor terminálu z pole na řádek?