it-swarm-eu.dev

chown non sta cambiando il link simbolico

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

$ chown -h myuser:mygroup mysymbolic/ 

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

302
rizidoro

Stavo mettendo una barra alla fine del target:

chown -h myuser:mygroup mysymbolic/ 

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

 chown -h myuser:mygroup mysymbolic
372
rizidoro

L'ho provato io stesso e funziona per me. 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 il collegamento simbolico è collegato a una directory

29
Arto Uusikangas

Non sono riuscito a chown una directory anche con -h ma utilizzando il percorso completo lavorato.

# 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

Il target è un file o una directory?

Se è una directory, prova con -H (maiuscolo H)

4
Michael

Ricrea il link da myuser a casa di myuser e mp questo link al luogo di destinazione di Sudo.

Ad esempio: (come myuser), ln -s somedir/ linkname (sarà un collegamento interrotto se somedir/non esiste nella directory dell'utente)

Quindi, Sudo mv linkname targetlocation (diventerà un collegamento valido fornito targetlocation/somedir/ esiste)

3
wangdong

semplicemente.

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

dovrebbe essere abbastanza e lavorare!

3
Aziz Zoaib

Ho avuto un problema simile. Per quanto mi riguarda, non potevo escludere il collegamento simbolico come root indipendentemente da come avessi chiamato chmod. Per aggiungere confusione a questo, nautilus stava mostrando il proprietario/gruppo come nulla. Il proprietario era vuoto. Così ho provato a cambiare il link simbolico usando nautilus come root dato che chmod non funzionava e il nautilus si è schiantato !!

Ma penso di aver capito il problema. La directory su cui il link simbolico puntava aveva autorizzazioni diverse rispetto al collegamento simbolico. Quindi ho chmodato la directory di destinazione (usando -h) al mio nome utente/gruppo. Quindi ho chodato il collegamento simbolico allo stesso e ha funzionato! E visualizzare i dettagli del collegamento simbolico in nautilus (con i permessi di root) ora non si blocca più.

Quindi, per gli altri che hanno un problema simile, controlla le autorizzazioni della directory/del file di destinazione e assicurati che sia compatibile con le autorizzazioni a cui stai impostando il link simbolico.

1
cgrey

Si noti che la modifica di owner di un collegamento simbolico può funzionare solo se il target è accessibile dal nuovo utente a cui si desidera assegnarlo.

Ad esempio, se il tuo obiettivo è all'interno di una cartella a cui l'utente che desideri assegnarlo non ha abbastanza diritti, il comportamento ln -s command è tale che non farà nulla.

1
AnomalySmith

Per Solaris (verificato su S11.3) per un collegamento simbolico a una directory, è necessario eseguirlo

[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