Frage chown verändert den symbolischen Link nicht


Ich versuche, den Benutzer / die Gruppe einer symbolischen Verbindung mit dem Befehl zu ändern:

$ chown -h myuser:mygroup mysymbolic/ 

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


273
2017-11-09 13:02


Ursprung


Welches Betriebssystem verwenden Sie? Gemäß der Manual-Seite wirkt sich die Option -h nur auf Systeme aus, die den Besitz einer symbolischen Verbindung ändern können. - Jichao
Sind Sie auf einem NFS-Mount? - Ortomala Lokni
Alles, was mit endet / ist ein Verzeichnis. Was meinen Sie mysymbolic, das ist der symbolische Link, nicht mysymbolic/ Das ist wahrscheinlich das Verzeichnis, auf das es zeigt. - David Schwartz


Antworten:


Ich habe am Ende des Ziels einen Schrägstrich eingefügt:

chown -h myuser:mygroup mysymbolic/ 

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

 chown -h myuser:mygroup mysymbolic

341
2017-11-09 13:16



funktioniert nicht auf Ubuntu für mich - Radek
Wow, das brauchte Stunden um zu finden. - defines
@Radek Es funktionierte für mich auf Ubuntu, solange ich mich an das erinnerte -h Flagge. - IQAndreas
Funktioniert für mich auf Ubuntu mit  -h und ohne der abschließende Schrägstrich. - friederbluemle
Ich kann es nicht glauben nach 4 Jahren, ich bin in mein früheres Selbst gestoßen, das das gleiche Problem, das Fräulein 'h' erfüllt! - Antony D'Andrea


Ich habe es selbst ausprobiert und es funktioniert für mich. Wenn Sie die Option -h haben, ändert sich der Besitzer des symbolischen Links, aber wenn Sie dies nicht tun, ändert sich der Eigentümer der Datei selbst und nicht der Link.

Es scheint aber nicht zu funktionieren, dass der symbolische Link mit einem Verzeichnis verknüpft ist


26
2017-11-09 13:08



Für das, was es wert ist, ist die man-Seite auf OS X auf der Option -h viel klarer als auf der auf (Arch) Linux. "-H Wenn die Datei ein symbolischer Link ist, ändern Sie die Benutzer-ID und / oder die Gruppen-ID des Links selbst." Vs. "-h, --no-dereference wirkt sich auf symbolische Links anstatt auf referenzierte Dateien aus (nur nützlich bei Systeme, die den Besitz eines Symlinks ändern können) " - Matijs


Ich konnte es nicht chown ein Verzeichnis sogar mit -h aber mit dem vollen Pfad 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
2017-12-30 16:43





Ist das Ziel eine Datei oder ein Verzeichnis?

Wenn es ein Verzeichnis ist, dann versuche -H (Großbuchstabe H)


4
2017-11-09 13:08



Das Ziel ist ein Verzeichnis
Sehen Sie meine bearbeitete Antwort über das Verzeichnis
Sorry für die Thread Nekromantie, aber ich möchte darauf hinweisen, dass die korrekte Syntax mit dem Kleinbuchstaben 'h' ist.


Erstellen Sie diesen Link erneut in der myuser-Startseite von myuser und verbinden Sie ihn mit sudo mit dem Zielspeicherort.

Beispielsweise: (als meinuser), ln -s somedir/ linkname (wird ein defekter Link, wenn Somedir / nicht im Benutzerverzeichnis existiert)

Dann, sudo mv linkname targetlocation (wird ein gültiger Link zur Verfügung gestellt targetlocation/somedir/ existiert)


3
2018-04-26 09:15



Ihre Antwort ist ohne Details und schwer zu verstehen. Bitte überlegen Sie, Ihre Antwort zu überarbeiten, um mehr Details zu liefern. - KronoS


einfach.

chown -h myuser:mygroup <symlink>

sollte genug sein und arbeiten!


2
2017-12-05 11:02





Ich hatte ein ähnliches Problem. Für mich konnte ich die symbolische Verbindung auch nicht als root chmodieren, egal wie ich chmod angerufen habe. Um Verwirrung zu stiften, zeigte Nautilus dem Besitzer / der Gruppe nichts. Der Besitzer war nur leer. Also habe ich versucht, die symbolische Verbindung zu ändern, indem ich Nautilus als root benutze, da chmod nicht funktionierte und Nautilus abgestürzt ist !!

Aber ich denke, ich habe das Problem herausgefunden. Das Verzeichnis, auf das der symbolische Link zeigte, hatte andere Berechtigungen als der symbolische Link. Also chmodierte ich das Zielverzeichnis (mit -h) zu meinem Benutzer / Gruppennamen. Dann chmoded die symbolische Verbindung zum selben und es hat funktioniert! Und die Details des symbolischen Links in Nautilus (mit root-Rechten) zu sehen, stürzt nun nicht mehr ab.

Überprüfen Sie bei anderen, die ein ähnliches Problem haben, die Berechtigungen des Zielverzeichnisses / der Zieldatei und stellen Sie sicher, dass sie mit den Berechtigungen kompatibel sind, für die Sie den symbolischen Link festlegen.


1
2017-09-16 17:46