Portál AbcLinuxu, 10. května 2025 23:00
Řešení dotazu:
if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
Asi nechápu dotaz. Je problém s tím, jak soubory ukládá FTP? Nebo s čím? Nejde to tam dostat inteligentněji, tedy včetně práv, nebo alespoň tam ftpnout tar a rozbalit? První podmínka je test na ne-systémového uživatele, kde se předpokládá, že systémoví mají uid do 100 (což může být problém udržet, desktopová distra dnes raději začínají s uživatelskými uid od 1000...).mno, teď na mne mluvíte zase španělsky vy :)
Treba si ujasniť situáciu. Vo všeobecnosti platí:Tomu říkám skvělá odpověď. Díky Celý problém byl tady:Na tvojom mieste by som skúsil použiť commandline klienta na prenesenie jedného súboru - to aby nerobil nič "sám od seba" - a všimol si prístupové práva adresára, kde súbor vyrobíš a práva novovyrobeného súboru. Vyskúšal by som tiež či server povolí príkaz 'chmod' cez ftp. A ak máš prístup, pozrel by som tiež aký umask má nastavený ftp server vo svojom konfiguráku.
- užívateľ, ktorý nie je root, môže meniť prístupové práva len súborom, ktoré vlastní. (root môže všetkým)
- vlastníkom novovzniknutého súboru je užívateľ, ktorého proces ten súbor vyrobil
- prístupové práva novovzniknutého súboru ovplyvňuje umask
- (samotný) zápis do súboru, ktorý už existoval nemení jeho vlastníka ani prístupové práva
- subory vyrobené prihlásením sa na ftp server a prenesením súboru by mali mať vlastníka toho užívateľa, ktorý bol použitý pre prihlásenie sa na ftp server
- ak sa nemýlim, tak 'chmod' nie je priamo súčasťou ftp protokolu. Server môže ponúknuť vykonanie nejakého príkazu na serverovej strane, ale z bezpečnostných dôvodov to býva spravidla zakázané.
- tar má parameter -p, ktorý hovorí, že majú byť zachované prístupové práva. Predpokladom ale asi je, že buď id alebo meno (neviem ktoré) užívateľa existuje na oboch systémoch rovnaké
- prístupové práva (presnejšie skupinu) môžu ešte ovplyvniť prístupové práva adresára, v ktorom súbor cez ftp vyrábaš a to za predpokladu že ten adresár má nastavený 's' bit
Ještě by mne zajímalo jak zjistím jaký FTP server je instalovanýBuď sa predstaví sám pri pripojení:
$ ftp mojserver Connected to mojserver (10.0.0.1). 220 (vsFTPd 2.2.2) ...alebo musíš mať možnosť prihlásiť sa aj inak ako len cez ftp. Ak máš, tak môžeš skúmať výstup z
ps
, alebo netstat
.
a kde má definované data pro CHMODNeviem, čo presne máš tým na mysli. Ak myslíš hodnotu umask, tak tá by mohla byť v konfiguračnom súbore. Kde ten súbor je, ako sa volá a ako presne je to tam zapísané - to závisí od toho, aký ftp server to je.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.