it-swarm.com.de

chown ändert den symbolischen Link nicht

Ich versuche, den Benutzer/die Gruppe eines symbolischen Links mit dem folgenden Befehl zu ändern:

$ chown -h myuser:mygroup mysymbolic/ 

Aber es ändert sich nicht. Ich bin als root angemeldet. Der aktuelle Benutzer/die aktuelle Gruppe wird auf root gesetzt: root. Was schief gelaufen ist?

302
rizidoro

Ich habe am Ende des Ziels einen Schrägstrich gesetzt:

chown -h myuser:mygroup mysymbolic/ 

habe gerade den Schrägstrich am Ende entfernt und funktioniert. Hier ist der richtige Weg:

 chown -h myuser:mygroup mysymbolic
372
rizidoro

Ich habe es selbst ausprobiert und es funktioniert bei mir. Wenn Sie das -h haben, ändert es den Eigentümer der symbolischen Verknüpfung, aber wenn Sie dies nicht tun, ändert es den Eigentümer der Datei selbst und nicht die Verknüpfung.

Aber es scheint nicht zu funktionieren, da der symbolische Link mit einem Verzeichnis verknüpft ist

29
Arto Uusikangas

Ich konnte selbst mit -h kein Verzeichnis chown erstellen, aber die Verwendung des vollständigen Pfads hat funktioniert.

# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps/
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# pwd 
/var/www/html
# chown -h deploy:deploy /var/www/html/apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 deploy deploy   32 Dec 30 09:02 apps -> /u/apps/
5
Steve Tauber

Ist das Ziel eine Datei oder ein Verzeichnis?

Wenn es sich um ein Verzeichnis handelt, versuchen Sie es mit -H (Großbuchstabe H).

4
Michael

Erstellen Sie diesen Link von myuser bei myuser zu Hause neu und verwenden Sie diesen Link von Sudo zum Zielspeicherort.

Zum Beispiel: (als myuser), ln -s somedir/ linkname (wird ein defekter Link sein, wenn somedir/nicht im Benutzerverzeichnis existiert)

Dann Sudo mv linkname targetlocation (wird zu einem gültigen Link, sofern targetlocation/somedir/ existiert)

3
wangdong

einfach.

chown -h myuser:mygroup <symlink> [without trailing slash]

sollte reichen und funktionieren!

3
Aziz Zoaib

Ich hatte ein ähnliches Problem. Für mich konnte ich die symbolische Verknüpfung nicht einmal als root chmod, unabhängig davon, wie ich chmod aufgerufen habe. Um dies noch zu verwirren, zeigte Nautilus den Besitzer/die Gruppe als nichts. Der Besitzer war nur leer. Also habe ich versucht, den symbolischen Link mit nautilus als root zu ändern, da chmod nicht funktionierte und nautilus abgestürzt ist !!

Aber ich glaube, ich habe das Problem herausgefunden. Das Verzeichnis, auf das die symbolische Verknüpfung zeigte, hatte andere Berechtigungen als die symbolische Verknüpfung. Also habe ich das Zielverzeichnis (mit -h) auf meinen Benutzer-/Gruppennamen geändert. Dann habe ich den symbolischen Link zum selben geändert und es hat funktioniert! Und das Anzeigen der Details des symbolischen Links in Nautilus (mit Root-Berechtigungen) stürzt jetzt nicht mehr ab.

Wenn andere Benutzer ein ähnliches Problem haben, überprüfen Sie die Berechtigungen des Zielverzeichnisses/der Zieldatei und stellen Sie sicher, dass sie mit den Berechtigungen kompatibel sind, auf die Sie den symbolischen Link setzen.

1
cgrey

Beachten Sie, dass das Ändern der owner eines Symlinks nur funktionieren kann, wenn das Ziel zugänglich für den neuen Benutzer ist, dem Sie es zuweisen möchten.

Befindet sich Ihr Ziel beispielsweise in einem Ordner, dem der Benutzer, dem Sie es zuweisen möchten, nicht über ausreichende Rechte verfügt, führt das Verhalten von ln -s command dazu, dass überhaupt nichts unternommen wird.

1
AnomalySmith

Für Solaris (verifiziert in S11.3) müssen Sie einen symbolischen Link zu einem Verzeichnis ausführen

[email protected]:/var/tmp$ ls -lal dumpdir
lrwxrwxrwx   1 root     root          16 Jun 15 09:08 dumpdir -> /data/dumpdir/
[email protected]:/var/tmp$ chown -RP Oracle:oinstall dumpdir
lrwxrwxrwx   1 Oracle   oinstall      16 Jun 15 09:09 dumpdir -> /data/dumpdir/
1
RaamEE