Come posso consentire a un utente di fare causa a un altro senza consentire l'accesso come root?


53

Vorrei consentire a determinati utenti di fare causa ad un altro account utente senza dover conoscere la password di quell'account, ma non consentire l'accesso a nessun altro account utente (ad es. Root).
Ad esempio, vorrei consentire a Tom il DBA di fare un sopralluogo all'utente di Oracle, ma non all'utente di Tomcat o root.

Immagino che ciò possa essere fatto con il file / etc / sudoers - è possibile? Se é cosi, come?

Risposte:


44

Sì, questo è possibile.

In / etc / sudoers l'elemento immediatamente dopo il uguale è l'utente che il comando sarà autorizzato a eseguire come.

tom  ALL=(oracle) /bin/chown tom *

L'utente (tom) può digitare sudo -u oracle / bin / chown tom / home / oracle / oraclefile


5
Ciò consentirebbe a Tom di eseguire i comandi come Oracle, ma di non diventare effettivamente l'utente Oracle
Gharper

11
Che dire di sudo -u oracle su -? Ciò gli darebbe una shell aperta come utente Oracle. È questo che vuoi?
Brent,

+1 per l'ultimo commento, Brent. Questa sarebbe la mia risposta.
Annika Backstrom,

3
Qualcosa di simile al seguente funzionerebbe: sudo -u oracle -s o sudo -u oracle -i (-s per shell, -i per login - esegue una shell di login). Sfortunatamente non so con certezza cosa useresti in / etc / sudoers per limitare l'utente, ma dato che stai permettendo loro l'accesso alla shell, probabilmente vorrai semplicemente fare ALL = (oracle) ALL come qualcuno ha menzionato. Se possono eseguire una shell, probabilmente non ti importa di limitare i comandi che possono eseguire.
Segna il

1
Idealmente, non vorresti che Tom eseguisse i comandi come utente Oracle, invece di diventare l'utente Oracle? La distinzione è lieve, ma fornisce un ottimo registro di controllo senza dover utilizzare futilmente una shell di controllo.
Scott Pack,

40

Aggiungi al tuo / etc / sudoers qualcosa di simile

tom ALL=(oracle) ALL

Quindi l'utente tom dovrebbe essere in grado di usare sudo per eseguire le cose come oracolo utente con l'opzione -u, senza lasciare tom

Vale a dire ottenere una shell come oracolo dell'utente (beh, dato che il tuo sudo è abbastanza nuovo da avere l'opzione -i).

sudo -u oracle -i

5
Ho dovuto usare la sintassi tom ALL=(oracle)NOPASSWD:ALLper fare in modo che sudo non chiedesse la password
snowindy il

9

Per fornire SOLO le funzionalità della domanda, aggiungere quanto segue a / etc / sudoers:

tom            ALL=(oracle)    /bin/bash

Quindi Tom può:

sudo -u oracle bash -i

0

Ad esempio, vorrei consentire a Tom il DBA di fare un sopralluogo all'utente di Oracle, ma non all'utente di Tomcat o root.

Di recente avevo bisogno di farlo su un sistema e ho avuto difficoltà a trovare le mie note sulla configurazione alternativa che ho usato anni fa che permetteva anche la sintassi su <user>. Nella mia situazione avevo bisogno di consentire a più utenti sudi un utente specifico.

Crea un gruppo usando addgroup <groupName>quello che gli altri utenti potranno fare susenza una password. Quindi aggiungere quel gruppo a ciascun utente che si desidera essere in grado di sul'utente senza una password: usermod -a -G <groupName> <userName>(o usermod -a -G oracle tom). Le modifiche al gruppo potrebbero non avere effetto fino al prossimo accesso.

Nota: nel tuo caso, hai già il gruppo perché il oraclegruppo sarebbe stato creato quando hai creato l'utente Oracle adduser oracle.

Ora modifica /etc/pam.d/sue sotto quanto segue:

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so

..aggiungi le righe delle regole di autenticazione in modo che la sezione sia simile alla seguente:

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so
auth       [success=ignore default=1] pam_succeed_if.so user = <groupName>
auth       sufficient   pam_succeed_if.so use_uid user ingroup <groupName>

Sostituire <groupName>con oraclein questo caso. Questo permetterà a qualsiasi utente che fa parte della <groupName>asu <groupName>

Ora tompuoi su oraclee se hai bisogno di dare ad altri utenti lo stesso accesso, aggiungili al oraclegruppo.

domanda simile qui

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.