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

chown is niet het veranderen van symbolische link

Ik probeer de gebruiker/groep van een symbolische link te veranderen met het commando:

$ chown -h myuser:mygroup mysymbolic/

Maar het verandert niet. Ik ben ingelogd als root. De huidige gebruiker/groep is ingesteld op root:root. Wat is er misgegaan?

Antwoorden (8)

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

Ik zette een schuine streep in het einde van het doel:

chown -h myuser:mygroup mysymbolic/

haalde gewoon de schuine streep in het einde en werkt. Hier is de juiste manier:

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

Ik heb dit zelf geprobeerd en het werkt voor mij. Als je de -h het verandert de eigenaar van de symbolische link, maar als je dat niet doet dan verandert het de eigenaar van het bestand zelf en niet de link.

Maar het lijkt niet te werken van de symbolische link is gekoppeld aan een directory

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

Ik was niet in staat om chown een directory te maken, zelfs niet met -h, maar het gebruik van het volledige pad werkte.

# 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

gewoon.

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

moet genoeg zijn en werken!  

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

Recreëren die link door mijn gebruiker thuis, en mv deze link naar de doellocatie door sudo.

Bijvoorbeeld: (als gebruiker), ln -s somedir/ linkname (zal een gebroken link zijn als somedir/ niet bestaat in de directory van de gebruiker)

Dan, sudo mv linkname targetlocation (zal een geldige link worden mits targetlocation/somedir/ bestaat)

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

Ik had een soortgelijk probleem. Voor mij kon ik de symbolische link niet chmoderen, zelfs niet als wortel, ongeacht hoe ik chmod noemde. Om hier verwarring over te zaaien, liet nautilus de eigenaar/groep als niets zien. De eigenaar was gewoon blank. Dus probeerde ik de symbolische link te veranderen met nautilus die als wortel loopt, omdat chmod niet werkte en nautilus crashte!!

Maar ik denk dat ik het probleem heb uitgezocht. De directory waar de symbolische link naar wees had andere rechten dan de symbolische link. Dus ik chmod'ed de doelmap (met -h) naar mijn gebruiker/groepsnaam. Dan chmod'ed de symbolische link naar dezelfde en het werkte! En het bekijken van de symbolische link details in nautilus (met root permissies) crasht nu niet meer.

Dus voor anderen die een soortgelijk probleem hebben, controleer de permissies van de doelmap/het bestand en zorg ervoor dat het compatibel is met de permissies waar je de symbolische link op instelt.

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

Voor Solaris (gecontroleerd op S11.3) voor een symbolische link naar een directory moet u

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/
``` uitvoeren.
1
1
1
2015-11-01 19:12:57 +0000

Merk op dat het veranderen van de owner van een symlink alleen kan werken als het doel toegankelijk is voor de nieuwe gebruiker aan wie je het wilt toewijzen.

Bijvoorbeeld, als je doel in een map zit waar de gebruiker aan wie je het wilt toewijzen niet genoeg rechten heeft, is het gedrag van ln -s command zodanig dat het helemaal niets zal doen.