GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man den Besitz von symbolischen Links ändern?

Auf einem Linux-System, wenn der Besitzer eines symbolischen Links mit chown geändert wird , standardmäßig ändert es das Ziel des symbolischen Links (d. h. worauf der symbolische Link zeigt). ).

Wenn Sie den Eigentümer des Links selbst ändern möchten, müssen Sie den -h verwenden Option zu chown :

-h, --no-dereference wirkt sich auf jeden symbolischen Link statt auf eine referenzierte Datei aus (nützlich nur auf Systemen, die den Besitz eines symbolischen Links ändern können)

Zum Beispiel:

$ 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

Beachten Sie, dass das Ziel des Links gehört jetzt 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

Und wieder der Link test1 ist immer noch im Besitz von root, obwohl test hat sich geändert.

$ 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

Und schließlich ändern wir den Besitzer des Links mit dem -h Option.


Wenn Sie auf Symlinks reagieren, müssen Sie den meisten Tools (chown, chmod, ls...) mitteilen, dass sie den Link nicht dereferenzieren sollen:Sie müssen den -h hinzufügen Parameter, wie in der Manpage angegeben:

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

Versuchen Sie also:sudo chown -h askar.admin /etc/init.d/jboss1


Beachten Sie auch, dass der Fehler, den Sie oben angegeben haben

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

liegt nicht daran, dass der Besitzer des Symlinks jemand anderes ist als der Besitzer der Originaldatei. Es wird (höchstwahrscheinlich) dadurch verursacht, dass Benutzer askar keinen Schreibzugriff auf das Verzeichnis /etc/init.d hat .


Linux
  1. So erstellen Sie harte und symbolische Links in Linux

  2. Wie kopiere ich symbolische Links?

  3. Wie ändere ich den Terminal-Cursor von Box zu Zeile?

  4. Wie ändere ich das Von:Feld für E-Mails von Cron?

  5. Erstellen Sie symbolische NTFS-Links innerhalb von Linux

So entfernen Sie symbolische Links unter Linux

So erstellen Sie symbolische Links unter Linux

Wie ändere ich die PHP-Version von cPanel?

Was sind symbolische Links in Linux? Wie erstellt man symbolische Links?

Wie ändere ich die Magento-Site-URL von phpMyAdmin?

So erhalten Sie eine Liste symbolischer Links unter Linux