Könyvtár keresés Attribútumom szerint és automata módosítás...

Sziasztok.

Egy olyan Scriptet szeretnék írni amivel megkeresek egy adott könyvtárban minden almappát aminek "XY" a neve ezt mondjuk beíratom egy File-ba. Következő lépésként pedig valahogy kiolvastatom a file tartalmát, soronként beillesztem mondjuk egy ls -l parancs után és ezt is szűrőm Attribútumom szerint. Ha ez a 2 rész megvolt minden olyan könyvtár aminek az Attribútuma 744 azt módosítanám 777-ra.

Ebből a részből ezt szépen megcsináltam.

"#!/bin/sh

logfolder=/root/tools/logfolder/

find /"KERESÉS_HELYE"/ | grep "XY-ra Szűrés" >> $logfolder/newfolder.txt"

Viszont itt elakadtam.

cat -al próbálkoztam de nem biztos, hogy nekem ez kellene...

Valaki rá tudna vezetni a megoldásra?
Köszönöm előre is...

Hozzászólások

Pontosabban nem tudnád leírni, hogy mi a feladat?
Pl. milyen attribútum az, amit keresel?
Ha nem szükséges mást közbeiktatni, akkor felesleges az átirányítás, lásd -exec kapcsoló!
Ha csak könyvtárakat keresel, -type d, ha a jogok alapján akarsz szűrni, akkor talán -perm kell neki.

Update: http://www.linuxmanpages.com/man1/find.1.php

Leírom a pontos dolgot...

A /var/mail könyvtárban minden "ügyfél" postafiókjának "New" könyvtárait szeretném módosítani a 755 attribútumomról 777-re, mivel a maildrop nem hajlandó az új leveleket betenni a helyére amíg nem 777.

A konkrét lényeg tehát egy Script ami megkeresi a New könyvtárakat és minden 755 attribútum átírja 777-re.

(A miérteket is leírom szívesen ha érdekel)

Előre szólok, amire készülsz, az hülyeség! Nem tudom, mi az a maildrop, de ha csak 0777-es jogok mellett tud e-mailt kézbesíteni, akkor ott valami nagyon el van kefélve. Szóval igen, esetleg írd le, hogy pontosan miről van szó, hátha valaki tud segíteni!

Szóval amit keresel, az kb. ez:

find /var/mail -type d -perm 0755 -exec chmod 0777 {} \;

A {} helyére behelyettesítődik az épp megtalált név, a -exec lezárásaként pedig kötelező a \; (vigyázz, hogy a \-t ne nyelje le semmi! Ha simán parancssorba írod, akkor nem lesz vele gond)

Lényegében az a gond hogy át kell migrálni egy régi levelező rendszerből újra egy komplett mail rendszert.
A 2 szerver között sok különbség van, pl. a régi Exim / Courier az új pedig Postfix / Courier.
Régen Ldap-ban lehetett megváltoztatni minden adatot, viszont most ISPConfig lesz.

A régi rendszerben minden levél chown mailnull:mail -ra volt belőve itt viszont vmail:vmail minden és hiába állítottam át mindent, a meglévő leveleket szépen le lehet tölteni (imap) és levelet is lehet küldeni, de ha érkezik egy új levél a valamiért nem tárolódik el.

Ha erre tudsz valamit szívesen veszem de ez a script megoldja majd a problémát.

Update: Müxik a Script és nagyon szuper...

Ez nem "megoldja", csak elfedi a problémát.

És ha nem volt mentésed azokról a könyvtárakról, akkor most sikeresen tönkretettél egy rendszert. Mert azt még csak-csak meg lehet csinálni, hogy amin most 0777 jogosultság van, azt visszarakd 0755-re(??? nekem már ez sem tetszik igazán), de honnan fogod tudni, hogy nem volt-e közte olyan, ami eredetileg és okkal volt 0777-re állítva?
Gondolj bele: ettől kezdve bárki, bármit beleszemetelhet mások postájába, kiolvashatja stb.

http://www.howtoforge.com/forums/showthread.php?t=58806
Felszínesen átfutva a google találatokat, ez esetleg segíthet?

Akkor ezt felejtsd el!
Ha valóban jogosultsági probléma, akkor legvégső esetben a maildrop-ot futtató usernek adj jogot, de csak neki, ne az egész világnak!
De inkább körül kellene nézni doksiban, neten, mert ha nem valami bugba futottál, akkor kell, hogy legyen normális megoldás is rá.

Szinte biztos vagyok, hogy Bug-ba futottam, mert ha ISPConfig-ba minden szépen be van állítva és a /var/mail/"DOMAIN"/"pl.:info"/ könyvtárakat szépen mailnull:mail -ra állítja a rendszer alapból akkor kérdem én miért csak a Courier-maildrop nem müxik jól [csak vmail:vmail (5000:5000) el akkar dolgozni]... Szinte biztos vagyok a "bug" -ba de ha valaki látott már ilyet akkor érdekel a megoldás :)

Az a baj, hogy ezeket nem ismerem, arra meg lusta vagyok, hogy doksit kezdjek bogarászni.

http://www.courier-mta.org/maildrop.html - erről van szó?
Úgy látom, setuidos és rootként települ. Ha nálad is ez a helyzet, akkor vagy a konfig fájlban van valami elkefélve vagy selinux/apparmor/stb. pofázik a működésébe, de ennek kiderítését meghagyom a hozzáértőknek.
Ilyet max. úgy vállalnék el, ha itt lenne az orrom előtt.

Ha debian6 és ismeretlen amit írtam, akkor ne foglalkozz vele! ;)
SELinux és apparmor biztonsági eszközök, amivel még a root nevében futó processzek jogait is tudod korlátozni. Ha SELinuxod van, akkor a getenforce paranccsal tudod lekérdezni az állapotát: be van-e kapcsolva, ha igen, csak logolja az illetéktelen hozzáféréseket vagy meg is akadályozza?
Ugyanez a helyzet az apparmorral, csak az Ubuntun divat, meg talán SuSE Linuxon. És ott talán az aa_status mondja meg, hogy be van-e kapcsolva.
A "társai" meg arra vonatkozott, hogy van még pár hasonló eszköz, de azokról még annyit sem tudok, mint ezekről.

Egyébként javasolnám, hogy a /var/log alatt keresgélj a hozzáférési problémák miatt, valamelyik logban előfordulhat, hogy találsz valamit ami segít.

Amit linkeltél az sajna nem jó.
Azt kellene megcsinálnom, hogy ne vmail legyen a levelek kezelője.
Mert a régi rendszert mailnull:mail -ra volt állítva.
Ha viszont a meglévő könyvtárakat és leveleket vmail-ra állítom akkor minden benne tárolt levél "módosítva" lesz és újra fogja tölteni azoknak akik imap-osak de le is töltik a levelek. (Egyszer már belefutottam egy hasonló story-ba ahol 8 Gigányi levelet az egyik ügyfél újra megkapott)

6: chown -R vmail:vmail /home/vmail

Már próbáltam, de az előző rendszerben nem a mailnull és a mail volt a lényeges hanem a uid 26 (mailnull) és a gid 6 (mail) és ha ezeket a vmail helyére teszem tehát 5000:5000 -re akkor úgy érzékeli mintha nem lenne levél a postafiókba se az új se a régi leveleket nem látja... :S

Nagyon szépen köszönöm a segítséget... a probléma megoldva :)
Még 1x Köszi!