Re: Práva u mkdir -p -m
Miroslav Vancl
mira.vancl na gmail.com
Čtvrtek Leden 6 14:22:35 CET 2011
Můj RH to dělá trochu jinak ale výsledek je (až na moji výchozí
hodnotu umask) stejný:
umask(0) = 027
stat("a/b/c", 0x7fffd0e42630) = -1 ENOENT (No such file or directory)
umask(0) = 0
open(".", O_RDONLY) = 3
mkdir("a", 0750) = 0
chdir("a") = 0
mkdir("b", 0750) = 0
chdir("b") = 0
umask(0) = 0
mkdir("c", 0700) = 0
Vypadá to, že hodnotu --mask uplatňuje jen na poslední adresář, jinak
jede podle umask, snad je to i logické (option se nevztahuje na
implicitně tvořené adresáře).
Otázkou je, proč příkaz manipuluje s hodnotou umask. Vypadá to, že ji
jen simuluje ale proč, proč nenechá konat jádro ?
M. Vancl
2011/1/6 Ladislav Vaiz <spam na nagano.cz>:
> Ahoj,
> je v pořádku, aby se mkdir -p -m 0700 aaa/bbb/ccc/ddd
> choval takto?
>
> umask(0) = 07
> mkdir("aaa", 0770) = 0
> open("aaa", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_NOFOLLOW)
> = 3
> fchdir(3) = 0
> close(3) = 0
> mkdir("bbb", 0770) = 0
> open("bbb", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_NOFOLLOW)
> = 3
> fchdir(3) = 0
> close(3) = 0
> mkdir("ccc", 0770) = 0
> open("ccc", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_NOFOLLOW)
> = 3
> fchdir(3) = 0
> close(3) = 0
> mkdir("ddd", 0700) = 0
>
> Čekal bych, že 0700 budou mít všechny adresáře.
> Zkoušeno na Debianu Lenny.
>
> Láďa
>
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux
>
Další informace o konferenci Linux