Portál AbcLinuxu, 12. května 2025 11:28

Dotaz: Chown -R a symbolické odkazy - co všechno ovlivní

7.1.2009 18:11 chown
Chown -R a symbolické odkazy - co všechno ovlivní
Přečteno: 417×
Odpovědět | Admin

Mám pár jednoduchých otravných dotazů a prosil bych je prosím objasnit: Mám adresář pokus a v něm "ln -s /zdroj pokus/zdroj". Pokud napíšu "chown user:group pokus/zdroj", tak to ovlivní /zdroj, nikoliv symlink, což se dá podle dokumentace asi vypnout použitím no deference. Ale co udělá "chown user:group pokus -R"? Ovlivní vlastníka symlinku nebo umístění symlinku? Zkoušel jsem to a vypadá to, že to ovlivňuje jen symlink, nikoliv jeho odkaz. Je dobré při chown -R použít ještě --no-dereference nebo to není nutné a volba -R to už obsahuje? Jde mi o to, aby se to na různých systémech nechovalo jinak.  A je nutné vůbec měnit vlastníky symlinků, když je stejně mohou vlastníci adresářů vymazat, i když není ten symlink jejich?

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.1.2009 22:23 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokiaľ viem, tak na Linux-e rozhodujú prístupové práva odkazovaného súboru a teda prístupové práva či vlastníctvo symlinku je nepodstatné.
8.1.2009 17:36 chown
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní

A co to chown -R a jeho vliv na soubory?

8.1.2009 20:19 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
chown -R rekurzívne zmení vlastníka súborov a adresárov. To vieš. Čo nevieš? Nezmení sa obsah ani žiadna iná vlastnosť súborov. Zmení sa len to, kto môže k tomu súboru pristupovať a kto môže následne meniť jeho prístupové práva. Takže ako vlastne znie otázka?
8.1.2009 23:14 chown
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní

V adresáři /pokus mám adresář uvnitr a symlink uvnitr2, který odkazuje na /uvnitr2. Pokud dám chown pokus:pokus /pokus -R, změní se vlastník jen v /pokus nebo i v /uvnitr2, na který je v adresáři /pokus symlink?

David Watzke avatar 8.1.2009 23:18 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
chown (pokud vím) neumí měnit práva symlinků...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
9.1.2009 06:32 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
chown (pokud vím) neumí měnit práva symlinků...

Tiež som si to tak pamätal a kedysi to tak bolo. Ale pre istotu som si to teraz vyskúšal - a funguje - na jadre 2.6.27 a ext3.
David Watzke avatar 9.1.2009 15:06 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
No, u mě to změní práva u toho souboru na kterej symlink ukazuje.
root@amd64 ~ # ll a b
-rw-r--r-- 1 dave root 0 2009-01-08 23:17 a
lrwxrwxrwx 1 root root 1 2009-01-09 15:04 b -> a
root@amd64 ~ # chown petr b
root@amd64 ~ # ll a b
-rw-r--r-- 1 petr root 0 2009-01-08 23:17 a
lrwxrwxrwx 1 root root 1 2009-01-09 15:04 b -> a
Jak změnit přímo práva symlinku, to nevím.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
9.1.2009 20:37 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
-h, --no-dereference
affect each symbolic link instead of any referenced file (useful only on systems that can change the ownership of a symlink)
8.1.2009 23:45 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní

V info stránce se píše:

The following options modify how `chown' and `chgrp' traverse a hierarchy when the `--recursive' (`-R') option is also specified. [...] These options specify whether processing a symbolic link to a directory entails operating on just the symbolic link or on all files in the hierarchy rooted at that directory.

These options are independent of `--dereference' and `--no-dereference' (`-h'), which control whether to modify a symlink or its referent.

`-P' – Do not traverse any symbolic links. This is the default if none of `-H', `-L', or `-P' is specified.

Já z toho taky nejsem moudrý.

Teoreticky by měl změnit cíl odkazu /pokus/uvnitr2, tedy /uvnitr2, ale již ne soubory pod /uvnitr2.

Prakticky by bylo dobré, aby to nedělal, protože /uvnitr2 je mimo strom /pokus.

Zeptejte se vývojářů.

9.1.2009 08:45 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
Vždyť je tam napsáno, že default je nic netraversovat.
In Ada the typical infinite loop would normally be terminated by detonation.
9.1.2009 09:56 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
nic netraversovat

Ano, ale traverse není dereference. A je na to výslovně upozorněno.

Takže moje dilema není o zpracování obsahu adresáře /uvnitr2 skrze symlink, ale o tom, zda chown -R -P --dereference bude, nebo nebude měnit vlastníka /uvnitr2 samotného.

9.1.2009 10:35 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
Aha, to je pravda. Ale i u toho referencování je negativní default.
`--no-dereference'
     Act on symbolic links themselves instead of what they point to.
     This is the default.
In Ada the typical infinite loop would normally be terminated by detonation.
9.1.2009 11:48 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
Kterou verzi citujete? chown z coreutils-6.12 tvrdí opak.
9.1.2009 12:42 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
Já tu mám trochu postarší chown (GNU coreutils) 5.93
In Ada the typical infinite loop would normally be terminated by detonation.
9.1.2009 06:38 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Chown -R a symbolické odkazy - co všechno ovlivní
Příloha:

V adresáři /pokus mám adresář uvnitr a symlink uvnitr2, který odkazuje na /uvnitr2. Pokud dám chown pokus:pokus /pokus -R, změní se vlastník jen v /pokus nebo i v /uvnitr2, na který je v adresáři /pokus symlink?

To záleží na tom či použiješ -L. Veď si to vyskúšaj.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.