sudo regel werkt niet

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Nu online
Ik ben een machine aan het inrichten en een gedeelte van de functionaliteit wil ik ontsluiten naar gebruikers die aanloggen op de machine. In dit geval gaat het om het draaien van een script (wat weer op zijn beurt een ander script aanroept, waar vervolgens een Oracle database mee ontstaat / wordt opgeruimd). Het geheel draait op OEL 5.6 (wat overeen komt met RHEL 5.6)

Anyway, het script waar het om gaat is deze:
code:
1
2
[root@dev ~]# ls -ld /usr/local/bin/create_db.sh 
-rwxr-x--- 1 oracle dba 2491 Mar 16 17:49 /usr/local/bin/create_db.sh


Dit script doet wat dingetjes met inputvariabelen en roept vervolgens het dbca script van de gebruiker oracle aan. Als ik het geheel als de gebruiker Oracle draai, dan werkt het.

De sudo regel die ik heb aangemaakt (middels visudo) is deze
code:
1
%dba ALL = (oracle) NOPASSWD: /usr/local/bin/create_db.sh


Vervolgens heb ik een gebruiker aangemaakt:
code:
1
useradd -g users -G dba -m -s /bin/bash -c "JaQ" -d /u01/homes/JaQ JaQ


en deze gebruiker kan ook de sudo-regel aanroepen
code:
1
2
3
4
5
6
7
-bash-3.2$ sudo -l
Matching Defaults entries for JaQ on this host:
    requiretty, !visiblepw, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE LC_COLLATE
    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY ORACLE_HOME"

User JaQ may run the following commands on this host:
    (oracle) NOPASSWD: /usr/local/bin/create_db.sh


Toch, en dit verbaasd mij, krijg ik een foutmelding op het moment dat ik het script aanroep:
code:
1
2
3
-bash-3.2$ sudo -u oracle -i /usr/local/bin/create_db.sh 
[sudo] password for JaQ: 
Sorry, user JaQ is not allowed to execute '/bin/bash -c /usr/local/bin/create_db.sh' as oracle on dev.area51.local.


Ten eerste verbaasd het mij dat er toch om een password wordt gevraagd, ten tweede mag ik toch het script niet uitvoeren !?

De enige relevante logging die ik zie is deze regel in /var/log/secure
code:
1
Mar 22 11:03:13 sr sudo: JaQ : command not allowed ; TTY=pts/0 ; PWD=/u01/homes/JaQ ; USER=oracle ; COMMAND=/bin/bash -c /usr/local/bin/create_db.sh


Help!

Egoist: A person of low taste, more interested in themselves than in me


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Kijk eens hoe je sudoers line niet overeenkomt met de logmelding?

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Nu online
CyBeR schreef op dinsdag 22 maart 2011 @ 11:12:
Kijk eens hoe je sudoers line niet overeenkomt met de logmelding?
die /bin/bash er voor bedoel je?

Thx! Dat ik die melding niet eerder gezien heb :(

[ Voor 11% gewijzigd door JaQ op 22-03-2011 11:20 ]

Egoist: A person of low taste, more interested in themselves than in me


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 10:47

Kees

Serveradmin / BOFH / DoC
Ik denk dat je -i weg moet laten bij je sudo regel, of zelfs alleen maar sudo ervoor moet zetten (ik gebruik eigenlijk nooit users icm sudo, dus dat weet ik niet zeker).

Maar -i moet zeker weg, want die probeert de shell van de user (/bin/bash dus) eerst te draaien.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Nu online
Kees schreef op dinsdag 22 maart 2011 @ 11:28:
Maar -i moet zeker weg, want die probeert de shell van de user (/bin/bash dus) eerst te draaien.
Dat is correct. (oftewel: of /bin/bash opvoeren in de sudo regel, of de -i weglaten).

Nu zullen de eindgebruikers dit enkel aanroepen via een alias, dus voor hen maakt het niet zoveel uit (of zit er security-wise een nadeel aan het gebruik van /bin/bash?)

Anyway, nu nog even uitzoeken hoe ik veilig parameters aan het script kan voeren (er staat echt belachelijk veel advies online wat de hele sudo beveiliging onderuit helpt.... )

Egoist: A person of low taste, more interested in themselves than in me


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 10:47

Kees

Serveradmin / BOFH / DoC
Tja, als je /bin/bash in je /etc/sudoers zet, dan kunnen je gebruikers 'sudo [-u user] /bin/bash' doen, en dan is het hele nut van de sudo weg, want ze hebben dan gewoon een shell als die user zijnde.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Nu online
Je snapt natuurlijk wel dat er dan
code:
1
/bin/bash -c /usr/local/bin/create_db.sh

als command in mijn sudo regels was gekomen :)

Egoist: A person of low taste, more interested in themselves than in me

Pagina: 1