Puncte:0

Scripturi Linux: Cum să NU executați implicit comenzi specifice dintr-un .bash_profile al unui utilizator atunci când sudo către utilizator printr-un script

drapel pw

Iată problema cu care mă confrunt: am un script care va verifica dimensiunea db a Oracle și va executa SQL specific bazat pe versiunea oracle care rulează pe casetă. Scriptul va fi rulat prin ansible pentru a fi executat pe toate serverele Oracle (400).

Problema este Oracle .bash profilul NU este standard și, de fapt, există două versiuni (care nu pot fi corectate din diverse motive de acum). Un set de servere are RMAN comanda în .bash_profile al utilizatorului Oracle.

Deci, pentru acele seturi de servere (~ 100 din totalul 400), scriptul returnează informații de rezervă atunci când este executat prin Ansible și rezultatul (care merge în format Excel) este stricat. Poate cineva să sugereze o modalitate prin care să putem restricționa RMAN sau orice altă comandă specifică din execuție când sudo la oracle?

paladin avatar
drapel kr
Să-l faci neexecutabil? `chmod -x FILENAME`
SBhardwaj avatar
drapel pw
Oracle .bash_profile nu poate fi modificat în ceea ce privește permisiunile. Întregul său peisaj pe care acest script trebuie să se execute printr-un utilizator Ansible și ansible care va sudo la oracle.
paladin avatar
drapel kr
Nu, am vrut să elimin permisiunea de execuție din anumite binare. De exemplu, utilizatorul dumneavoastră ansible folosește programul `/bin/myprogram`, puteți nega asta folosind `chmod -x /bin/myprogram`. Dar văd că aceasta ar putea să nu fie o soluție bună la problema ta.
paladin avatar
drapel kr
Ar fi bine să știți de ce nu puteți schimba `.bash_profile`, în cazul în care acest lucru este cauzat de un sistem de fișiere numai pentru citire, puteți încerca să montați orice director în directorul principal al utilizatorului respectiv, adică: `mount --options bind /tmp/ /home/ansible/`, înainte de a încerca să vă autentificați.
SBhardwaj avatar
drapel pw
Multumesc pentru comentarii . Puține lucruri nu pot schimba permisiunea binară, deoarece ar trebui făcută pentru întregul peisaj de aproximativ 400 de servere.Și va avea consecințe de mare anvergură dacă iau permisiunea de execuție binară specifică. Chiar dacă o iau și o acord din nou la sfârșitul scriptului - nici nu vreau să fac asta, deoarece orice execuție eșuată a scriptului va duce la probleme mai mari, deoarece există servere de producție parte a listei în care scriptul va fi executat.
SBhardwaj avatar
drapel pw
Ideea este să facem această mică automatizare FĂRĂ modificări ale mediului care includ servere prod Oracle. Există o modalitate prin care în Scriptul meu însuși, pot face ceva prin cod care nu va permite executarea unei anumite comenzi/binar.
paladin avatar
drapel kr
Puteți ajusta scriptul: `test -f /var/lock/LOCKFILE && echo true || echo false`, când LOCKFILE există (adică prin `touch /var/lock/LOCKFILE`), faceți comenzile, altfel faceți altceva.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.