Portál AbcLinuxu, 6. června 2024 08:17


Dotaz: BASH: Ako by to malo správne byť?

9.9.2012 16:18 prco | skóre: 6
BASH: Ako by to malo správne byť?
Přečteno: 440×
Odpovědět | Admin
Dobrý deň, snažil som sa vytvoriť skript, ktorý by automaticky menil vlastníka súboru alebo adresára. V praxi to malo fungovať tak, že ak niekto niečo uploadol na SFTP server, tak po 5 minútach mal linux skontrolovať daný priečinok /data/file_server/upload a súbory alebo priečinky ktoré nevlastní užívateľ s uid 1004 mali byť zmenené na užívateľa s uid 1004 v mojom prípade je to užívateľ matej.



skript s názvom zmen-vlastnika-uploadu.sh obsahuje:

#!/bin/bash
/usr/bin/find /data/file_server/upload/ \! -uid 1004 -exec /usr/bin/chown matej '{}' \;

V tom priečinku upload sa nachádzajú tri objekty ktoré nemajú vlastníka s uid 1004. Jeden priečinok a dva súbory. Keď tento skript spustím /root/./zmen-vlastnika-uploadu.sh tak mi vyskočia tri hlásenia:

/usr/bin/find: `/usr/bin/chown': Adresár alebo súbor neexistuje
/usr/bin/find: `/usr/bin/chown': Adresár alebo súbor neexistuje
/usr/bin/find: `/usr/bin/chown': Adresár alebo súbor neexistuje

predpokladám, že keď v priečinku /data/file_server/upload/ sú tri súbory ktoré nemajú vlastníka s uid 1004, tak preto sú aj tri hlásenia. Čiže skript, ich dokáže nájsť, ale už nie zmeniť. Asi tam zle zadá cestu k súboru/priečinku alebo niečo podobné. Viete mi niekto poradiť?

Řešení dotazu:


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

Odpovědi

9.9.2012 16:43 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
Odpovědět | | Sbalit | Link | Blokovat | Admin
type chown
9.9.2012 17:01 prco | skóre: 6
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyriešené, chyba bola v ceste k príkazu chown, ten sa nachádza v ./bin/chown a nie v /usr/bin/chown.
10.9.2012 09:29 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
Odpovědět | | Sbalit | Link | Blokovat | Admin
jednodušeji:
chown -R matej /data/file_server/upload
In Ada the typical infinite loop would normally be terminated by detonation.
10.9.2012 11:49 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
Jednodušeji, ale - aspoň na mém systému - na velkých stromech výrazně pomaleji (také mne to překvapilo).
frEon avatar 10.9.2012 12:06 frEon | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
Nemel jsi vypnuty cacheovani cest k spustitelnym souborum? viz set [+|-]h
Talking about music is like dancing to architecture.
10.9.2012 13:22 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
I kdyby ano, zpomalilo by to find/chmod, ne samotný "chmod -R".
frEon avatar 13.9.2012 18:09 frEon | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
aha, to jsem te blbe pochopil, myslel jsem nepouziti absolutni cesty, ne -R
Talking about music is like dancing to architecture.
10.9.2012 15:23 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
Zajímavé, o kolik?
In Ada the typical infinite loop would normally be terminated by detonation.
10.9.2012 16:00 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
Tehdy to byl několikanásobek, konkrétně šlo o adresář s přeloženými zdrojáky Firefoxu, ve kterém jsem spustil "make install" jako root. Teď jsem to zkusil rychlý test na tmpfs a vycházelo to srovnatelně, takže možná mezitím chown opravili. Až budu mít čas, zkusím ještě zreprodukovat tu původní situaci, jestli se to opravdu změnilo.
10.9.2012 18:07 Ash | skóre: 53
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
A nebo alespoň
/usr/bin/find /data/file_server/upload/ \! -uid 1004 -exec /usr/bin/chown matej '{}' +
pokud byl problém s chown -R
10.9.2012 18:55 kuka
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je najaky duvod pouzivat jednou 1004 a podruhe matej? Jestli jsem to spravne pochopil, tak si to odpovida (a treba na jinem serveru uz nemusi...).
13.9.2012 17:20 pletiplot | skóre: 14
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
find -uid vyžaduje číslo, chown podporuje jak jméno, tak číslo, takže je možné v obou případech použít číslo. Ale jinak souhlasím, je divné dělat to různě.
13.9.2012 18:07 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH: Ako by to malo správne byť?
Na druhou stranu, find má i -user, tedy aspoň GNU find.

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.