2009-11-09 13:02:39 +0000 2009-11-09 13:02:39 +0000
319
319

chown non sta cambiando il link simbolico

Sto cercando di cambiare l'utente/gruppo di un link simbolico con il comando:

$ chown -h myuser:mygroup mysymbolic/

Ma non sta cambiando. Sono loggato come root. L'utente/gruppo corrente è impostato su root:root. Cosa è andato storto?

Risposte (8)

391
391
391
2009-11-09 13:16:42 +0000

Stavo mettendo una barra alla fine dell'obiettivo:

chown -h myuser:mygroup mysymbolic/

ha appena rimosso la barra alla fine e funziona. Ecco il modo corretto:

chown -h myuser:mygroup mysymbolic
29
29
29
2009-11-09 13:08:43 +0000

L'ho provato io stesso e per me funziona. Se hai il -h cambia il proprietario del link simbolico, ma se non lo fai allora cambia il proprietario del file stesso e non il link.

Ma non sembra funzionare del link simbolico è collegato a una directory

7
7
7
2013-12-30 16:43:51 +0000

Non sono stato in grado di chown una directory nemmeno con -h, ma utilizzando il percorso completo ha funzionato.

# 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/
4
4
4
2017-12-05 11:02:14 +0000

semplicemente.

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

dovrebbe bastare e funzionare!  

3
3
3
2012-04-26 09:15:50 +0000

Ricreare quel link da myuser a casa di myuser, e mv questo link alla posizione di destinazione da sudo.

Per esempio: (come mio utente), ln -s somedir/ linkname(sarà un link rotto se somedir/ non esiste nella directory dell'utente)

Poi, sudo mv linkname targetlocation (diventerà un link valido a condizione che targetlocation/somedir/ esista)

1
1
1
2014-09-16 17:46:29 +0000

Ho avuto un problema simile. Per me, non potevo chmod il legame simbolico anche come radice, indipendentemente da come ho chiamato chmod. Per aggiungere confusione a questo, nautilus mostrava il proprietario/gruppo come niente. Il proprietario era semplicemente vuoto. Così ho cercato di cambiare il link simbolico usando nautilus come root, dato che chmod non funzionava e nautilus si è schiantato!

Ma credo di aver capito il problema. La directory a cui puntava il link simbolico aveva autorizzazioni diverse rispetto al link simbolico. Così ho chmod'edato la directory di destinazione (usando -h) al mio nome utente/gruppo. Poi ho modificato il link simbolico allo stesso e ha funzionato! E vedendo i dettagli del link simbolico in nautilus (con i permessi di root) ora non si blocca più.

Quindi per altri che hanno un problema simile, controllate i permessi della directory/file di destinazione e assicuratevi che sia compatibile con i permessi a cui state impostando il link simbolico.

1
1
1
2016-08-11 05:24:48 +0000

Per Solaris (verificato su S11.3) per un link simbolico ad una directory è necessario eseguire

root@ac11x017:/var/tmp$ ls -lal dumpdir
lrwxrwxrwx 1 root root 16 Jun 15 09:08 dumpdir -> /data/dumpdir/
root@ac11x017:/var/tmp$ chown -RP oracle:oinstall dumpdir
lrwxrwxrwx 1 oracle oinstall 16 Jun 15 09:09 dumpdir -> /data/dumpdir/
1
1
1
2015-11-01 19:12:57 +0000

Si noti che cambiare l’owner di un link simbolico può funzionare solo se il target è accessibile dal nuovo utente a cui si vuole assegnarlo.

Per esempio, se il target è all'interno di una cartella a cui l'utente a cui si vuole assegnare non ha abbastanza diritti, il comportamento dell’ln -s command è tale che non farà assolutamente nulla.