Hirdetés

2019. február 16., szombat

Gyorskeresés

Hozzászólások

(#551) 7 válasza FixY67 (#550) üzenetére


7
(PH! addikt)

Mire jo neked egy butitott shell? :)

(#552) FixY67 válasza 7 (#551) üzenetére


FixY67
(senior tag)

A router fw-ek általában ilyennel működnek (Tomato, openwrt dd-wrt az ú.n. busybox-ra épül)

...

(#553) HUNNIA1920


HUNNIA1920
(őstag)

Sziasztok!
Tudna nekem segíteni valaki shell script ügyben?
Iskolába kéne a Zh - hoz, de nem igazán tudom, hogy melyik az eleje meg a hátulja. :)
Ez lenne a feladat:

Írjon shell scriptet, amely az alábbi fájl bejegyzéseket a megfelelő jogosultságokkal
együtt létrehozza az aktuális könyvtáron belül:

Név: Típus: Jogosultság: Helye:
A könyvtár rwxr-xr-x .
B könyvtár rwxr-sr-x A
C állomány (C,D hard link) rw-r----- A
D állomány (C,D hard link) rw-r----- B
E B-re mutató szimbolikus link rwxrwxrwx A

Megoldás:

mkdir A; chmod 755 A
mkdir A/B; chmod 2755 A/B
echo > A/C; chmod 640 A/C
ln A/C A/B/D
ln -s B A/E

Ezt valaki el tudná magyarázni, hogy mi hogy van és miért?
Köszönöm előre is!

Szerk.: sajnos össze csúszott, de szerintem aki tud segíteni, az érti így is.

[ Szerkesztve ]

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#554) FixY67 válasza HUNNIA1920 (#553) üzenetére


FixY67
(senior tag)

Ha valaki elmondja, mi akar lenni a "(C,D hard link)" szöveg, pláne így, duplázva, akkor a többit el tudom magyarázni. :)

---
De nem teljesen értem, hogy te mit nem értesz. Felül a feladat, alatta a megoldás, egy többé-kevésbé korrekt shell script formájában. Az egyes parancsok magyarázata kellene?

...

(#555) Jester01 válasza FixY67 (#554) üzenetére


Jester01
(PH! kedvence)

Az akar lenni, hogy a C és a D ugyanarra az inode-ra hard link.

Jester

(#556) FixY67 válasza Jester01 (#555) üzenetére


FixY67
(senior tag)

Tesemértedhogymitnemértek. :DD

Persze, hogy értem, csak hülyén van megfogalmazva, erre próbáltam "finoman" célozni: ha szó szerint veszem a feladatot, akkor C-t és D-t is hardlinkként kell létrehozni úgy, hogy egymásra mutassanak. Az meg kb. tyúk-tojás problémakör. (ez meg tképp szimpla kötekedés részemről. ;) )

...

(#557) HUNNIA1920


HUNNIA1920
(őstag)

Hát mondjuk az kéne, hogy a megoldásban melyik sor mit csinál? ;) Mert a Zh - ba a feladat mindig más.
Pl.: lehet ez is egy példa:

Név: Típus: Jogosultság: Helye:
A D-re mutató szimbolikus link rwxrwxrwx B
B könyvtár rwxr-sr-x .
C állomány (C,D hard link) rw-r----- E
D állomány (C,D hard link) rw-r----- B
E könyvtár rwxr-x--t B

Na és itt már gondba vagyok, hogy akkor hogy is van ez? :U

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#558) Jester01 válasza FixY67 (#556) üzenetére


Jester01
(PH! kedvence)

Csak hibás kötekedés, mivel a hard linkek nem egymásra mutatnak, hanem az inode-ra. Persze "pucér" inode-t nem tudsz létrehozni, rögtön kapsz hozzá 1 hard linket induláskor. De a végén C és D tökéletesen egyenértékű, nem tudod megmondani melyik az "igazi". Nem úgy, mint symlink esetén.

Jester

(#559) Jester01 válasza FixY67 (#548) üzenetére


Jester01
(PH! kedvence)

Ha már ennyire rámentél a külső parancsok eliminálására (nagyon helyesen) akkor azért azt se felejtsd el, hogy a bash kiválóan szét tudja szabdalni a stringet, nem kell hozzá a sed. Az adott példában ha jól látom egyszerűen ident=${i//_*html/} avagy a string végét feltételezve ident=${i%%_*html}.

Jester

(#560) FixY67 válasza Jester01 (#558) üzenetére


FixY67
(senior tag)

Ez igaz, de az inode-ot létre kell hozni valahogy, addig nem tudsz rá hard linket gyártani. ;)

...

(#561) FixY67 válasza Jester01 (#559) üzenetére


FixY67
(senior tag)

Ez már nekem új. Ksh-t tanultam valamikor, de már annak a nagy részét is elfelejtettem. :(

...

(#562) HUNNIA1920 válasza HUNNIA1920 (#557) üzenetére


HUNNIA1920
(őstag)

No akkor senki se tud segíteni? :U
Sürgős lenne, aztán akkor megpróbálok más fórumokba segítséget kérni, ha itt nem kapok választ. Jövő héten Zh és addigra kéne valami.

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#563) FixY67 válasza HUNNIA1920 (#562) üzenetére


FixY67
(senior tag)

Az a baj, hogy én továbbra sem értem, mit nem értesz... a feladatot nem tudod értelmezni?

...

(#564) HUNNIA1920 válasza FixY67 (#563) üzenetére


HUNNIA1920
(őstag)

Nem igazán tudom máshogy magyarázni. :DDD
Adott egy feladat és adott egy megoldás. A megoldásba mi micsoda?
Vagy akkor mondom úgy, hogy a 2. feladat amit bemásoltam, annak mi a megoldása? Na így már talán könnyebb lesz. ;)

Szerk.: ja és ugye ez a feladat: "Írjon shell scriptet, amely az alábbi fájl bejegyzéseket a megfelelő jogosultságokkal együtt létrehozza az aktuális könyvtáron belül:".

[ Szerkesztve ]

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#565) FixY67 válasza HUNNIA1920 (#564) üzenetére


FixY67
(senior tag)

Amit először beírtál, az egyértelmű, de szerintem korábban írtam is: a feladat 1. sorának a megoldások 1. sora a megoldása. A 2.-é a 2. stb.
Szóval így továbbra sem tudok mit mondani...

...

(#566) HUNNIA1920 válasza FixY67 (#565) üzenetére


HUNNIA1920
(őstag)

Na és akkor a 3. és 4. sor megoldása miért nem egyezik meg? Mert elvileg mind két sorban ugyan azt kellene csinálni, csak más a név és a hely.

"echo > A/C; chmod 640 A/C
ln A/C A/B/D"

Így nem lehetne a 4. sort: echo > B/D; chmod 640 B/D ?

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#567) FixY67 válasza HUNNIA1920 (#566) üzenetére


FixY67
(senior tag)

Azért, mert a feladat (számomra kissé értelmetlenül megfogalmazva) az volt, hogy a C és a D nevű file fizikailag azonos legyen, csak eltérő néven kerüljenek a könyvtárakba. Ehhez előbb létre kellett hozni egy file-t, ez volt a C. Amikor az "echo >C"-vel létrehozod a file-t, akkor keletkezik hozzá egy könyvtár bejegyzés és kap egy ú.n. inode-t. A második parancs annyit csinált, hogy készített egy újabb könyvtárbejegyzést másik könyvtárba, más néven, ami fizikailag ugyanarra a file-ra/inode-ra mutat.
Tehát végeredményben keletkezett egyetlen file-od ami több néven elérhető.
Ha a D-t is "echo >"-val hozod létre, akkor a két file-nak semmi köze nem lesz egymáshoz.

Az

echo > A/C
ln A/C A/B/D

után ha beleírsz valamit az A/C-be és megnézed az A/B/D tartalmát, akkor abban is látni fogod a változást.

...

(#568) HUNNIA1920 válasza FixY67 (#567) üzenetére


HUNNIA1920
(őstag)

Tehát akkor a 2. példa megoldásának ez jó:

mkdir B; chmod 2755 B
mkdir B/E; chmod ? B/E
echo > E/C; chmod 640 E/C
ln E/C E/B/D
ln -s D B/A

A 2. sornál nem tudom mi lesz a parancs (chmod után), mert a jogosultságban kiegészítő bit is van és azt nem igazán értem, hogy hogy is van.
A többi különben jó?

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#569) FixY67 válasza HUNNIA1920 (#568) üzenetére


FixY67
(senior tag)

(#570) HUNNIA1920 válasza FixY67 (#569) üzenetére


HUNNIA1920
(őstag)

Igen-Igen. :K

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#571) FixY67 válasza HUNNIA1920 (#570) üzenetére


FixY67
(senior tag)

Nagyjából jónak tűnik.
A ? kapcsán meg man chmod

...

(#572) HUNNIA1920 válasza FixY67 (#571) üzenetére


HUNNIA1920
(őstag)

Ezt a "man chmod" - ot nem igazán értettem, de mindegy.
Kicsit utána olvastam ezeknek a kiegészítő biteknek és azt találtam, hogy 3 féle létezik: a setuid, a setgid és a sticky bit. A setuid - nál a usernél változik a végrehajtás (x) s - re, a setgid - nél a csoport végrehajtás lesz s, és a sticky - nél meg az other végrehajtás lesz t.

De most pl. Parancs: chmod 4755, Eredményezett jog: rwsr-xr-x - nél a 4 - es szám mit jelent? Mert a 755 az ugye 111 101 101 a bináris maszkok módszere szerint és ugye a user - nél lesz az x betű s. De azt a 4 - es számot nem értem. Annyit tudok, hogy alapértelmezésként 0 áll az első helyen, csak azt nem tüntetjük fel.

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#573) FixY67 válasza HUNNIA1920 (#572) üzenetére


FixY67
(senior tag)

Úgy emlékszem,
4000 - setUID
2000 - setGID
1000 - sticky bit.
Ez utóbbinak eredetileg a programok/library-k esetében volt jelentősége, innen a neve (valami olyasmi rémlik, hogy nem lehetett őket kilapozni a memóriából), mostanság meg valami törléssel kapcsolatos dologra használják, de inkább nem írom le, mert kissé hiányosan emlékszem rá.

A man chmod meg annyi, hogy bemész unix/linux shellbe (windows-on telepítesz egy cygwin-t és annak a shelljébe) és kiadod a man chmod parancsot.

...

(#574) HUNNIA1920 válasza FixY67 (#573) üzenetére


HUNNIA1920
(őstag)

Na így már rendben van. :DD
Erre voltam kíváncsi, hogy melyik hányas számmal kezdődik. Attól féltem, hogy ez is mindenhol más, de így akkor már tudni fogom, hogy pl.: 2xxx - es az setUID - os. Remélem így már menni fog a Zh is. :C
Köszi szépen a türelmet és a segítséget :R

Szerk.: tehát akkor így lesz:

mkdir B; chmod 2755 B
mkdir B/E; chmod 1751 B/E
echo > E/C; chmod 640 E/C
ln E/C E/B/D
ln -s D B/A

chmod 1751: rwxr-x--t ---> 111 101 001

[ Szerkesztve ]

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#575) bambano válasza HUNNIA1920 (#574) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

"ogy pl.: 2xxx - es az setUID - os.": ezt hogy hoztad össze?

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#576) Jester01 válasza HUNNIA1920 (#574) üzenetére


Jester01
(PH! kedvence)

1) a megoldás során végig az eredeti directoryban állsz (ami a B szülője). Ezért például az E/C forma nem jó, hiszen az E a B-ben van. Tehát B/E/C formában kell rá hivatkozni. Hasonlóan a többire is.
2) az echo az nem üres fájlt hoz létre, beleír egy entert. Ha ez probléma, akkor echo -n vagy egyszerűen touch.
3) a chmod nem csak az oktális jogokat szereti, ismeri a szimbolikust is
4) az mkdir-nek egyből meg is lehet adni jogokat
Pl. mkdir -m u=rwx,g=rxs,o=rx B

Jester

(#577) FixY67 válasza bambano (#575) üzenetére


FixY67
(senior tag)

Azt azért elárulhatná valaki, hogy oktális formában megadva a jogokat, a setuid, setgid biteket hogy lehet levakarni egy állományról? (nem tudom, van-e jelentősége, hogy valószínűleg könyvtár volt az áldozat)
Egy Ubuntu 9.10-en próbálkoztam és csak u-s g-s formában működött, numerikusan nem.
Lusta voltam utánanézni, hogy ez bug v. így kell működnie.

...

(#578) Jester01 válasza FixY67 (#577) üzenetére


Jester01
(PH! kedvence)

MOD: hm, számít, hogy könyvár :B Arról nekem se szedi le.
man chmod:
chmod preserves a directory's set-user-ID and set-group-ID bits unless you explicitly specify otherwise. You can set or clear the bits with symbolic modes like u+s and g-s, and you can set (but not clear) the bits with a numeric mode.

[ Szerkesztve ]

Jester

(#579) FixY67 válasza Jester01 (#578) üzenetére


FixY67
(senior tag)

Sejtem már... azon a nyomorult Ubin van valami apparmor vagy miatúró... Nem ismerem, nem tudom, pontosan mit csinál, de könnyen lehet, hogy az pofázott bele az életembe.

Egy biztos, linuxos (Tomato) routeren, rootként működik:

root@router:/tmp/home/root# mkdir x
root@router:/tmp/home/root# chmod 6777 x
root@router:/tmp/home/root# ls -l
drwsrwsrwx 2 root root 40 Mar 27 15:14 x
root@router:/tmp/home/root# chmod 0777 x
root@router:/tmp/home/root# ls -l
drwxrwxrwx 2 root root 40 Mar 27 15:14 x

[ Szerkesztve ]

...

(#580) FixY67 válasza FixY67 (#579) üzenetére


FixY67
(senior tag)

Nem nyert. A debianomon nincs ilyesmi, mégsem működik. Najó, akkor következik valami doksi olvasás, hátha kiderül...

...

(#581) Jester01 válasza FixY67 (#580) üzenetére


Jester01
(PH! kedvence)

Szerkesztettem az #578-at :B

Jester

(#582) bambano válasza FixY67 (#577) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

még mindig firtatnám azt a kérdést, hogyha te a hsz-edben megírod, hogy 2xxx az setGID, akkor ő hogy hozza össze belőle, hogy setuid...

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#583) FixY67 válasza Jester01 (#581) üzenetére


FixY67
(senior tag)

Szerencsére én is belenéztem a man-ba: korábban a sticky bit kapcsán hülyeséget írtam. A memóriából eltávolítható a program, a swap-ből nem engedi törölni.

...

(#584) FixY67 válasza bambano (#582) üzenetére


FixY67
(senior tag)

Úgy, ahogy én is szoktam: figyelmetlen. :)

...

(#585) HUNNIA1920


HUNNIA1920
(őstag)

Így van, kicsit siettem, aztán azért írtam el. Setgid - et akartam írni. :K

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#586) HUNNIA1920 válasza Jester01 (#576) üzenetére


HUNNIA1920
(őstag)

Kezdek bele keveredni.
Akkor így lesz:

mkdir B; chmod 2755 B
mkdir B/E; chmod 1751 B/E
echo > B/E/C; chmod 640 B/E/C
ln B/E/C B/D
ln -s D B/A

Ha így sem jó, akkor tényleg nem tudom hogy lesz. :F

"Nagy-Magyarország te sosem maradsz árva, mindig szívünkben élsz, szeretetbe zárva" - EF.

(#587) Badb0y


Badb0y
(PH! addikt)

Kérdésem lenne, hogyan tudom egy fájl tartalmát egy csv megadott oszlopába megadott helytől kezdődően exportálni.

Úgy szeretném, hogy minden sor külön cellába legyen.

Minőségi laptopok http://www.laptop-ok.hu

(#588) ngabor2


ngabor2
(PH! nagyúr)

lenne egy nem túl bonyolult problémám, valszeg egyetlen ciklussal (ügyesebbeknek egy sorral) is megoldható, csak én lusta vagyok :D

szóval van egy könyvtár, abban képfile-ok. IMG_xxxx.JPG a nevük, az xxxx egy sorszám. ezeket kellene átnevezni kep_yymmddxx.jpg-re, ahol az yy az év, a mm a hónap, dd a nap, xx meg egy sorszám 01-től. a dátum a létrehozás, vagy az utolsó módosítás dátuma, nem az aktuális.

(#589) kraftxld válasza ngabor2 (#588) üzenetére


kraftxld
(PH! félisten)
LOGOUT blog

Total Commander, file, csoportos átnevezés.

MCSE+M/S, MCITP, VCP6.5-DCV - ''Soha ne becsüld le az autópályán száguldó DAT kazettákkal megrakott teherautó sávszélességét''

(#590) doc válasza kraftxld (#589) üzenetére


doc
(PH! nagyúr)

azert ne ajanljunk mar windowsos programot ebben a topicban :)
foleg hogy van nativ megoldas, pl. Krename

1N23456.HU - A Veszprém megyei motorkölcsönző

(#591) ngabor2 válasza doc (#590) üzenetére


ngabor2
(PH! nagyúr)

köszi, megoldottam ezzel. bár kicsit sokat kellett kattingatnom, mire úgy csinálta meg, ahogy akartam :D

(#592) kraftxld válasza doc (#590) üzenetére


kraftxld
(PH! félisten)
LOGOUT blog

Problémára keresünk megoldást, pl az ilyen átnevezéshez szerintem 100x jobb a TC mint scriptekkel matatni :)

MCSE+M/S, MCITP, VCP6.5-DCV - ''Soha ne becsüld le az autópályán száguldó DAT kazettákkal megrakott teherautó sávszélességét''

(#593) FixY67 válasza kraftxld (#592) üzenetére


FixY67
(senior tag)

Nade egy unix-linux rendszeren annyira nem jellemző a TC. :)

...

(#594) kraftxld válasza FixY67 (#593) üzenetére


kraftxld
(PH! félisten)
LOGOUT blog

A shell script lehet powershell is :)

MCSE+M/S, MCITP, VCP6.5-DCV - ''Soha ne becsüld le az autópályán száguldó DAT kazettákkal megrakott teherautó sávszélességét''

(#595) FixY67 válasza kraftxld (#594) üzenetére


FixY67
(senior tag)

Ez igaz. :)

...

(#596) Badb0y


Badb0y
(PH! addikt)

Akarok egy scripteket elindító scriptet írni. Hogy lehetséges az, hogy csak akkor induljon el a következő, ha az előző sikeresen lefutott?

A következő elgondolás jó?

./usr/.../script1 && ./usr/.../script2 && ./usr/.../script3

& kapcsolatnál ha minden igaz, akkor csak akkor megy tovább amikor az előtte levő sikeresen lefutott igaz?

Vagy más megoldás kellene ?

másik kérdésem, a keletkezett fájlt hogy tudom emailban elküldeni? mert valamiért nem akar eljönni, a mail -s "tárgy" uuencode fájlnév email címmel :F

Minőségi laptopok http://www.laptop-ok.hu

(#597) dabadab válasza Badb0y (#596) üzenetére


dabadab
(Jómunkásember)

"& kapcsolatnál ha minden igaz, akkor csak akkor megy tovább amikor az előtte levő sikeresen lefutott igaz?"

Egeszen pontosan csak akkor, ha az elozo parancs exit levelje 0 volt. Az osi unixos szokas, hogy ha rendben lefut, akkor ez nulla, ha meg nem, akkor nem nulla, viszont pl. a sajat scripteknel figyelned kell erre (a shell scriptek a legutolso futtatott parancs exit leveljet kapjak meg, es ha pl. ez egy echo "hiba tortent" (ami persze szepen le fog futni es 0-t ad vissza), akkor utana be kell raknod pl. egy exit 1 utasitast). Egyebkent teljesen jol hasznalhato konstrukcio, pl. az unzip x.zip && rm x.zip az egyik kedvencem :)

A levelezeshez meg vmi olyasmi kellene, hogy uuencode file.bin | mail -s subject akarki@akarhol.org

[ Szerkesztve ]

DRM is theft

(#598) Heller2


Heller2
(fanatikus tag)

Sziasztok !

lenne egy kérésem egy feladatot illetően...
Feladat a következő:
Scriptet kell létrehozni, amely user-eket hoz létre, úgy nézzen ki, hogy tetszőleges számú usert hozzon létre, törölni is tudja az usereket, fájlból vegye az új usereket ( ezt nem tudom mit jelenet ), fájlban valódi név is legyen, hibák kezelése, kiírása, vagy más paramétereket is kiírhat. ( pl. Kati - Kiss Katalin )

Ezt valaki leírná ez elejétől, pontról-pontra ?
Szeretem én a linuxot, csak ne bonyolódjak bele... :R
Nem tudom számít-e, de Debiánt használunk..

GTAO: Leppke77

(#599) Votyesz13


Votyesz13
(kvázi-tag)

Sziasztok

Egy olyan kérdésem lenne hogy a feladatom egy olyan szkript írása ami egy fájlt vár bemenetként.Ezt hogy tudom elérni?És hogy soronként olvassa ezt?Getline-al vagy hogyan?
Előre is köszi.

üdv bolvar

(#600) Sianis


Sianis
(PH! kedvence)

cat $1 | while read line; do
echo $line
done

A fájl soronkénti feldolgozása kb ennyi.

Az meg, hogy fájl-e a $1 paraméter például:

if [ -t $1 ]; then
echo "Yes it is"
fi

Sianis

[ Szerkesztve ]

Copyright © 2000-2019 PROHARDVER Informatikai Kft.