Prijava
Korisničko ime:

Lozinka:

remember me

Zaboravili lozinku?

Registrirajte se!
Glavni menu
Potraga
Tko je online
30 korisnika je online (20 korisnika cita Diskusije)

članovi: 0
Gosti: 30

više...
HULK-Diskusije - Programiranje - Python: kako unjeti password za sudo unutar skripte
Chat WIKI Kontakt
HULK Forum Index
   Programiranje
  Python: kako unjeti password za sudo unutar skripte

Pregledavanje ovog Threada:   1 Anonimnih Korisnika

 

 Dno   Prethodna tema   Sljedeca tema
1234>
  •  Ocjena Threada
      Ocijenite ovaj Thread
      Izvrsno
      Dobro
      Prosjecno
      Loše
      Užasno
Pošiljatelj Thread
Python: kako unjeti password za sudo unutar skripte
#1
Regularni posjetitelj
Pridružen: 11.01.2007
Od
Poruke: 45
Level : 5
HP : 0 / 112
MP : 15 / 4527
EXP : 51
Grupa:
Registered Users
Offline
Cao,

Imam skriptu koja mi mounta moj USB stick i onda sprema backup na njega i to radi OK.

za mountanje USB sticka koristim, oakav dio koda:
command = "sudo mount -t vfat -o rw,nosuid,nodev,shortname=mixed,uid=1000,gid=1000,umask=077,iocharset=utf8 " + dev + " " + directory
#print command 
time.sleep( 2 ) # jer dok dodjem do ove komande prijasanja nije zavrsena
os.system( command )

i ovo radi OK, osim što svaki put moram ručno unijeti šifru

Mene sada zanima kako mogu napraviti da se sifra sama unosi, tj da ne moram ja unjeti sifru preko tastature ?

Googlao sam ali nista korisno nisam pronasao.
Jedini razlog zasto koristim sudo jer mount moze samo root koristnik ucinit.
Ovo mi je bitno jer sam stavio da mi se ta ksripta pokrece preko fcrontaba, i ona se uspijesno pokrene ali zastane kada dodje do koda gdje se treba unjeti sifra.

Hvala
_________________
http://mzsl.wordpress.com/
Postano : 13.09.2009 3:36:54
Izradi PDF od ove poruke Ispis
Vrh
Re: Python: kako unjeti password za sudo unutar skripte
#2
Webmaster
Pridružen: 31.12.2004
Od Zagreb/Našice
Poruke: 283
Level : 15
HP : 0 / 368
MP : 94 / 16949
EXP : 73
Grupa:
Webmasters
Registered Users
Offline
zašto jednostavno ne staviš u /etc/fstab pod options "user", na taj način će moć i korisnik izvršit mountanje....
Postano : 13.09.2009 4:05:12
Izradi PDF od ove poruke Ispis
Vrh
Re: Python: kako unjeti password za sudo unutar skripte
#3
Webmaster
Pridružen: 31.12.2004
Od Zagreb/Našice
Poruke: 283
Level : 15
HP : 0 / 368
MP : 94 / 16949
EXP : 73
Grupa:
Webmasters
Registered Users
Offline
Možda par napomena.

ovako nekako treba izgledat /etc/fstab (ako user treba mountat):

/dev/sde1 /mnt/usb vfat defaults,noauto,user,umask=0 0 0

onda samo iz skripte napraviš ovo (kao user):

mount /mnt/usb

A inače ako trebaš sudo da izvrši neku određenu komandu (za mount kao što vidiš nije potrebno), daš ovlasti samo za tu određenu komandu i imaš klazulu u sudoers NOPASSWD koja onda neće tražit password (naravno, samo za tu određenu komandu i određenog usera, etc)...
Postano : 13.09.2009 4:58:01
Izradi PDF od ove poruke Ispis
Vrh
Re: Python: kako unjeti password za sudo unutar skripte
#4
Regularni posjetitelj
Pridružen: 11.01.2007
Od
Poruke: 45
Level : 5
HP : 0 / 112
MP : 15 / 4527
EXP : 51
Grupa:
Registered Users
Offline
kost, hvala na pomoći.

Rijesio sam problem.
Rijesenje je tražilo i dodatnu promjenu logike kod izvođenja skripte.

Imam jos jedno pitanje, koje me jako interesira.
Moj USB uvijek bude po imenom /dev/sdc1 i skripta mi ne bi radila ako bi mi se pojavio pod drugim imenom.

Mene zanima tko određuje pod kojim će imenom biti prijavljen USB tj. zašto baš sdc1, zašto nije sdd1 ili sde1?

I da li se to može nekako konfigurirati, gledao sam UDEV, ali mi se ćini da se to sa njim ne može učiti.

Da li netko nešto zna o tome ?
_________________
http://mzsl.wordpress.com/
Postano : 20.09.2009 2:30:58
Izradi PDF od ove poruke Ispis
Vrh
Re: Python: kako unjeti password za sudo unutar skripte
#5
Linux Master
Pridružen: 04.01.2005
Od 33 stupnja i 4 minute sjeverno, i zatim 5 koraka na zapad
Poruke: 2391
Level : 39
HP : 0 / 964
MP : 797 / 44327
EXP : 56
Grupa:
Webmasters
Registered Users
HULK
UrednikNovosti
UrednikRecenzija
UrednikLinkova
ModeratoriForuma
UrednikSekcija
UrednikBlogova
UrednikDogadjanja
UrednikDokumenata
UrednikKomentara
Offline
To ovisi na koji USB port (a samim time i USB kontroler) se spajas, pa tako sustav dodjeljuje imena. Zbog slicnih situacija kao sto su tvoje potrebe, postoji UUID i volume label, koji su opisani u odgovarajucim man stranicama fstab-a i mount-a pa ti preporucam bacit pogled na to.

U svakom slucaju, UUID bi trebao omoguciti jednoznacnu identifikaciju medija (CD, disk, memory stick) koji se spaja na sustav. A samim time bi i tebi bilo svejedno gdje se disk spaja.
_________________
Poći ću s vama jer volim šalu, hoću da vidim ježa budalu.

Put u Japan
Postano : 20.09.2009 5:30:36
Izradi PDF od ove poruke Ispis
Vrh
Re: Python: kako unjeti password za sudo unutar skripte
#6
Regularni posjetitelj
Pridružen: 11.01.2007
Od
Poruke: 45
Level : 5
HP : 0 / 112
MP : 15 / 4527
EXP : 51
Grupa:
Registered Users
Offline
Citat:

slobodan je napisao/la:
To ovisi na koji USB port (a samim time i USB kontroler) se spajas, pa tako sustav dodjeljuje imena. Zbog slicnih situacija kao sto su tvoje potrebe, postoji UUID i volume label, koji su opisani u odgovarajucim man stranicama fstab-a i mount-a pa ti preporucam bacit pogled na to.

U svakom slucaju, UUID bi trebao omoguciti jednoznacnu identifikaciju medija (CD, disk, memory stick) koji se spaja na sustav. A samim time bi i tebi bilo svejedno gdje se disk spaja.


Razumjem sve što si napisao i znam kako to implemetirati i imam par pitanja koji se ticu linux best pratice.

Godinu ipo dana sam koristio Ubunut 7.10. I on je imao logiku da ćim bi se neku USB uređaj spoji na njega automatski je bio mountan pod /media/<label>, kada uređaj nije bio spojem tada nije bio moutan pod /media/<label> a ni sam /media/<label> direktojin nije postojao. Tj. sam sustav se brinio oko stvaranja /media/<label> direktorija prije mountanja i brisanja /media/<label> direktorija nakon umounta.

Zadnjih 6 mjeseci sam na crunchbang linux-u prvenstveno zbog openbox-a. On ima malo drukčiju logiku. One mounta USB čim se spoji, ali ga prikaže unutar PCman file menager, pa se klikom na njega USB mounta, te ponovnim klikom odmounta. Ali je logika kreiranja i brisanja /media/<label> direktorija ostala ista, to nekako PCman file menager radi sam.

Radi predhodnog 2 godišnjeg iskusta ja sam navikao da /media/<label> direktorij ne postoji osim ako USB stick nije mountan, a da kada se USB umounta da se /media/<label> direktorij izbriše.

I ja se sada pitam da li je to loša praksa ?

Jer ako i napravim unutar fstab-a da mi se USB stick mounta preko UUID, to podrazumjeva da sam direktorij na koji se mounta moraj već postojai, osim ako nije moguće unutar fstab-a reci da se on automatski kreira i briše sa mountom i umountom (gledao jesam man page ali nisam pronašao tu mogućnost) pa ako postoji neka mi netko kaže.

Znaći pravo moje pitanje je:

Da li sam fstab ili nešto treće može jednsotavno praviti praviti i brisati direktoriej na koje se mounta ili to tako nikada nije ni bilo zamišljeno, a ja sam žrtva ubuntu automatike ???
_________________
http://mzsl.wordpress.com/
Postano : 20.09.2009 14:05:41
Izradi PDF od ove poruke Ispis
Vrh
Re: Python: kako unjeti password za sudo unutar skripte
#7
Linux Master
Pridružen: 04.01.2005
Od 33 stupnja i 4 minute sjeverno, i zatim 5 koraka na zapad
Poruke: 2391
Level : 39
HP : 0 / 964
MP : 797 / 44327
EXP : 56
Grupa:
Webmasters
Registered Users
HULK
UrednikNovosti
UrednikRecenzija
UrednikLinkova
ModeratoriForuma
UrednikSekcija
UrednikBlogova
UrednikDogadjanja
UrednikDokumenata
UrednikKomentara
Offline
/etc/fstab je datoteka koju u zadnje vrijeme najčešće automatika mijenja ovisno o trenutnom stanju datotečnog sustava te priključenih uređaja. U pravilu ćeš tu datoteku rijetko mjenjati sam. Prije se to češće radilo, no danas to rade raznorazni automounteri i HAL podsustavi. Trenutno stanje sustava zapravo je u /etc/mtab gdje se vide i još neki sistemski mountovi pored particija.

Glavna razlika između ova dva primjera koje navodiš je da openbox očekuje od korisnika inicijativu mountanja uređaja. Sve ostalo je isto.

Citat:

Da li sam fstab ili nešto treće može jednsotavno praviti praviti i brisati direktoriej na koje se mounta ili to tako nikada nije ni bilo zamišljeno, a ja sam žrtva ubuntu automatike ???


Ovo tvoje pitanje nema smisla.

/etc/fstab je datoteka koju sustav čita prilikom boota i iz koje se zaključuje koje uređaje u tom trenutku mountati. Nakon boota ta datoteka više nije toliko bitna, jer se automounteri brinu oko toga da se pojedini uređaji (npr usb i slični) mountaju gdje treba. Znači, /etc/fstab sam po sebi ne radi ništa. Za dinamički mount se nakon boota brine HAL. I taj podsustav je onaj koji mjenja /etc/fstab i mountanje i kreiranje direktorija i još neke druge stvari. I taj podsustav se može i konfigurirati na odgovarajući način.

Da nešto treće može jednostavno praviti i brisati direktorije si se i sam uvjerio. To nije uopće upitno. Da to nije tako zamišljeno, onda to vjerojatno ne bi radilo nego bi to bio bug koji treba pod hitno riješiti. Uvjeravam te da to nije bug.

UUID se uređaju dodjeljuje prilikom spajanja uređaja na sustav, i trebao bi biti jedinstven za pojedini uređaj. Prava lokacija tih spojeva nalazi se u /dev/disk poddirektoriju. U /etc/fstab se UUID može staviti kao poveznica pojedine putanje ali i ne mora, no bitnije je ono što stoji u /dev/disk. Korištenje UUID-a je zgodna ali ne i obavezna mogućnost.

HAL podsustav postoji zadnjih... čini mi se 6-7 godina sigurno, možda i duže. Nema veze s ubuntuom. A još i prije toga je bilo par nadobudnih pokušaja automounta tjekom kraja 90ih, počevši s RedHat i Mandrake/Mandriva distrama, koliko se sjećam.

Ti si "žrtva" nepoznavanja rada HAL podsustava. Preporučam ti da proučiš taj dio, kako se po potrebi konfigurira, i razmisliš zašto bi automatsko kreiranje poddirektorija (i eventualno brisanje, makar nisam baš zagledao da ubuntu odnosno kubuntu kod mene nešto specijalno briše pojedine /mount poddirektorije) trebalo biti toliko tragično loše kako se da zaključiti iz tvojih komentara.

Ono što bi tebi trebalo je skonfigurirati da se uređaj tog i tog UUID-a mounta na određenu lokaciju. U fstab navedeš taj uređaj (dovoljno je jednom, ne moraš svako malo brisati i pisati), staviš gdje će se mountati, i pustiš automatiku da radi svoje. Ne znam u čemu je problem oko toga.
_________________
Poći ću s vama jer volim šalu, hoću da vidim ježa budalu.

Put u Japan
Postano : 20.09.2009 14:47:53
Izradi PDF od ove poruke Ispis
Vrh
Re: Python: kako unjeti password za sudo unutar skripte
#8
Regularni posjetitelj
Pridružen: 11.01.2007
Od
Poruke: 45
Level : 5
HP : 0 / 112
MP : 15 / 4527
EXP : 51
Grupa:
Registered Users
Offline
Jer mi Vaš odgovor ništa nije jasan, prvo kažete da se fstab ne treba nikada dirati,a onda završite sa tim da tamo dodam i da će sam HAL brinuti za stvaranej direktorija, a ja ima konkretna jasna iskustva da to tako ne funkcionira.

Ja ne kažem da se Vi ne kužite u stavari, ali ih jako loše objašnjavate ili ne ne razumjete moja pitanje.


Možda sada stvari budu jasnije:
ako ja napišem sljedeće u /etc/fstab

/dev/sdc1       /media/USB_WORK vfat defaults,noauto,user,umask=0  0 0


i onda učinim

mount /media/USB_WORK


dobijem sljedeću grešku:
mount: mount point /media/USB_WORK does not exist


i ta greška se pojavi jer direktorij USB_WORK ne postoji unutar /media direktorija.

Da li je to jasno ???
_________________
http://mzsl.wordpress.com/
Postano : 20.09.2009 15:13:19
Izradi PDF od ove poruke Ispis
Vrh
Re: Python: kako unjeti password za sudo unutar skripte
#9
Linux Master
Pridružen: 04.01.2005
Od 33 stupnja i 4 minute sjeverno, i zatim 5 koraka na zapad
Poruke: 2391
Level : 39
HP : 0 / 964
MP : 797 / 44327
EXP : 56
Grupa:
Webmasters
Registered Users
HULK
UrednikNovosti
UrednikRecenzija
UrednikLinkova
ModeratoriForuma
UrednikSekcija
UrednikBlogova
UrednikDogadjanja
UrednikDokumenata
UrednikKomentara
Offline
Ne moraš mi govoriti Vi. Ovdje smo poprilično neformalni što se toga tiče. Moj tekst je bio komentar za onoga kojemu je sve jasno i tko zna kako implementirati.

Citat:

sasa_ je napisao/la:
Jer mi Vaš odgovor ništa nije jasan, prvo kažete da se fstab ne treba nikada dirati,a onda završite sa tim da tamo dodam i da će sam HAL brinuti za stvaranej direktorija, a ja ima konkretna jasna iskustva da to tako ne funkcionira.


... A gdje sam ja to rekao "fstab se ne treba nikad dirati"? Ajd mi ne imputiraj nešto što ja nisam rekao, ok?

To što ti odgovor nije jasan je zato što ti prvenstveno nije jasno kako i što radi HAL te čemu služi /etc/fstab i kako ga konfigurirati za tvoje potrebe.

Citat:

i ta greška se pojavi jer direktorij USB_WORK ne postoji unutar /media direktorija.

Da li je to jasno ???


Naravno da ne postoji jer /etc/fstab NE KREIRA direktorije automatski. Putem /etc/fstab mountaju se uređaji na postojeće već kreirane direktorije. HAL korištenjem automounta kreira direktorije za uređaje koji do tad nisu bili definirani u /etc/fstab, i dinamički se pobrine da je /etc/fstab konfiguriran kako treba.

/etc/fstab je datoteka koja primarno opisuje STATIČKE mount točke. Znači, nešto za što se očekuje da je tamo (već kreirani odgovarajući poddirektoriji) i to najčešće već pri bootu sustava. Tipično - /, /usr, /home, /var i slični.

Kasnije se naravno može nadodavati neka nova mount točka, ali /etc/fstab nije inicijalno zamišljen kao dinamički sustav, niti bez odgovarajućeg editiranja podržava dinamičko spajanje i micanje uređaja. Stoga u zadnjih par godina u pravilu ne mjenjamo nešto specijalno sadržaj te datoteke nakon instalacije, nego pustimo automounterima odnosno HAL-u da to za nas radi. HAL se ujedno brine i za kreriranje potrebnih direktorija ako već ne postoje.

Ono što ti želiš je:

a) pojedini korisnik (a ne samo root/administrator) može mountati particije i uređaje
b) fiksna lokacija mountanja pojedinog uređaja (npr. usb diska) bez obzira na koji usb port ga uštekao

Stoga kako ti je već Kost rekao, trebaš definirati u fstab da se particija mounta pod users a ne user mogućnostima, a kao što sam ti ja rekao, dodaš UUID definiciju za tu particiju tako da jednoznačno odrediš mount point pojedinog uređaja. I pošto radiš ručno a ne putem automountera, kreiraš potrebne direktorije na koje će se tvoj uređaj mountati.

I to napraviš samo jednom, i više ne diraš. Znači, kao što sam rekao, nema potrebe često mjenjati fstab, i u pravilu ga ne čačkaš ako baš nisi siguran što želiš i kako. A ne da ne smiješ uopće dirati.

E a kako točno to napraviti? Nek ti za početak ovo bude primjer (redak iz mog /etc/fstab):

UUID=f025e2b0-6064-4cf8-8c24-fd5c5baadc14 /home/m ext3 relatime 0 2

I odluči se, ili si početnik ili ti je sve jasno i znaš kako implementirati, da znam na koji način ti trebam formulirati odgovor.
_________________
Poći ću s vama jer volim šalu, hoću da vidim ježa budalu.

Put u Japan
Postano : 20.09.2009 16:53:10
Izradi PDF od ove poruke Ispis
Vrh
Re: Python: kako unjeti password za sudo unutar skripte
#10
Regularni posjetitelj
Pridružen: 11.01.2007
Od
Poruke: 45
Level : 5
HP : 0 / 112
MP : 15 / 4527
EXP : 51
Grupa:
Registered Users
Offline
Da ne duljim, postaviti cu sada konkretna pitanja:

1. li mi se može dati neki link što dobro opisuje HAL, sa primjerima konfiguracije ?

2. Gdje i kako dodati u HAL sljedece:
/dev/sdc1       /media/USB_WORK vfat defaults,noauto,user,umask=0  0 0

Umijesto /dev/sdc1 zamisli da stoji UUDI=<uuid mog USB sticka>

Znaci ja želim da sam HAL kreira i briše USB_WORK direktorij i koliko kužim to se može definirati u HAL, samo neznam u koju konkretno datoteku i na koji način.

Znaći sve što mi treba je ime i putanja datoteke i konfiguracija koja to radi.
_________________
http://mzsl.wordpress.com/
Postano : 21.09.2009 2:28:10
Izradi PDF od ove poruke Ispis
Vrh
 Vrh   Prethodna tema   Sljedeca tema
1234>

 


 Ne možete pokrenuti novu temu.
 Možete citati teme.
 Ne možete odgovarati na poruke.
 Ne možete uredivati svoje poruke.
 Ne možete brisati svoje poruke.
 Ne možete dodavati nove ankete.
 Ne možete glasati u anketama.
 Ne možete dodavati fileove porukama.
 Ne možete slati poruke bez odobrenja.
Copyright © 1995-2009 HULK web team. Sva prava pridržana. RSS. Engine: XOOPS