Új hozzászólás Aktív témák
-
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 AMegoldá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/EEzt 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 ]
"Amit a szem lát és a fül hall, azt az agy elhiszi."
-
FixY67
senior tag
válasz HUNNIA1920 #553 üzenetére
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?...
-
FixY67
senior tag
válasz Jester01 #555 üzenetére
Tesemértedhogymitnemértek.
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. )
...
-
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 BNa és itt már gondba vagyok, hogy akkor hogy is van ez?
"Amit a szem lát és a fül hall, azt az agy elhiszi."
-
Jester01
veterán
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
-
Jester01
veterán
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
-
HUNNIA1920
őstag
válasz HUNNIA1920 #557 üzenetére
No akkor senki se tud segíteni?
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."Amit a szem lát és a fül hall, azt az agy elhiszi."
-
FixY67
senior tag
válasz HUNNIA1920 #562 üzenetére
Az a baj, hogy én továbbra sem értem, mit nem értesz... a feladatot nem tudod értelmezni?
...
-
HUNNIA1920
őstag
Nem igazán tudom máshogy magyarázni.
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 ]
"Amit a szem lát és a fül hall, azt az agy elhiszi."
-
FixY67
senior tag
válasz HUNNIA1920 #564 üzenetére
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......
-
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 ?
"Amit a szem lát és a fül hall, azt az agy elhiszi."
-
FixY67
senior tag
válasz HUNNIA1920 #566 üzenetére
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/Dutá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.
...
-
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/AA 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ó?"Amit a szem lát és a fül hall, azt az agy elhiszi."
-
FixY67
senior tag
válasz HUNNIA1920 #568 üzenetére
...
-
FixY67
senior tag
-
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.
"Amit a szem lát és a fül hall, azt az agy elhiszi."
-
FixY67
senior tag
válasz HUNNIA1920 #572 üzenetére
Ú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.
...
-
HUNNIA1920
őstag
Na így már rendben van.
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.
Köszi szépen a türelmet és a segítségetSzerk.: 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/Achmod 1751: rwxr-x--t ---> 111 101 001
[ Szerkesztve ]
"Amit a szem lát és a fül hall, azt az agy elhiszi."
-
válasz HUNNIA1920 #574 üzenetére
"ogy pl.: 2xxx - es az setUID - os.": ezt hogy hoztad össze?
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
Jester01
veterán
válasz HUNNIA1920 #574 üzenetére
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 BJester
-
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....
-
Jester01
veterán
MOD: hm, számít, hogy könyvár 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
-
FixY67
senior tag
válasz Jester01 #578 üzenetére
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 ]
...
-
-
HUNNIA1920
őstag
Így van, kicsit siettem, aztán azért írtam el. Setgid - et akartam írni.
"Amit a szem lát és a fül hall, azt az agy elhiszi."
-
Badb0y
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 https://notebookokhu.business.site/
-
ngabor2
nagyúr
lenne egy nem túl bonyolult problémám, valszeg egyetlen ciklussal (ügyesebbeknek egy sorral) is megoldható, csak én lusta vagyok
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.
-
Badb0y
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
Minőségi laptopok https://notebookokhu.business.site/
-
dabadab
titán
"& 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
-
Heller2
aktív 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...
Nem tudom számít-e, de Debiánt használunk..GTA V Online: Lepke77 vagy valami hasonló(k)
-
Votyesz13
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
-
Sianis
addikt
cat $1 | while read line; do
echo $line
doneA 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"
fiSianis
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Sorozatok
- Külföldi rendelések: boltok, fizetés, postázás
- Programozás topic
- Készülőben a Xiaomi 2021-es csúcsmodelljeinek HyperOS frissítése
- DIGI internet
- RETRO beárazás (mobil, PC, konzol)
- Skoda, VW, Audi, Seat topik
- Napelem
- AMD Ryzen 9 / 7 / 5 / 3 3***(X) "Zen 2" (AM4)
- Óra topik
- További aktív témák...