75 votes

Comment puis-je permettre à un utilisateur de se connecter à un autre sans autoriser l'accès root ?

J'aimerais permettre à certains utilisateurs de se connecter à un autre compte utilisateur sans avoir à connaître le mot de passe de ce compte, mais ne pas autoriser l'accès à tout autre compte utilisateur (c'est-à-dire root).
Par exemple, j'aimerais permettre à Tom, le DBA, d'accéder à l'utilisateur oracle, mais pas à l'utilisateur tomcat ni à l'utilisateur root.

J'imagine que cela pourrait être fait avec le fichier /etc/sudoers - est-ce possible ? Si oui, comment ?

62voto

Kristof Provost Points 12359

Oui, c'est possible.

En /etc/sudoers l'élément qui suit immédiatement les égaux est l'utilisateur sous lequel la commande sera autorisée à s'exécuter.

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

L'utilisateur (tom) peut taper sudo -u oracle /bin/chown tom /home/oracle/oraclefile

56voto

dF. Points 29787

Ajoutez à votre /etc/sudoers quelque chose comme

tom ALL=(oracle) ALL

Alors l'utilisateur tom devrait pouvoir utiliser sudo pour exécuter des choses en tant qu'utilisateur oracle avec l'option -u, sans laisser tom

C'est-à-dire obtenir un Shell en tant qu'utilisateur oracle (enfin, étant donné que votre sudo est assez récent pour avoir l'option -i).

sudo -u oracle -i

10voto

karimofthecrop Points 111

Pour fournir UNIQUEMENT les capacités mentionnées dans la question, ajoutez ce qui suit au fichier /etc/sudoers :

tom            ALL=(oracle)    /bin/bash

Alors Tom peut :

sudo -u oracle bash -i

4voto

K Alnory Points 21

Par exemple, j'aimerais permettre à Tom, le DBA, d'accéder à l'utilisateur oracle, mais pas à l'utilisateur tomcat ni à l'utilisateur root.

J'ai eu besoin de faire cela sur un système récemment et j'ai eu du mal à retrouver mes notes sur la configuration alternative que j'ai utilisée il y a des années et qui permettait aussi la syntaxe suivante su <user> . Dans ma situation, j'avais besoin de permettre à plusieurs utilisateurs de su à un utilisateur spécifique.

Créez un groupe en utilisant addgroup <groupName> que les autres utilisateurs pourront su sans mot de passe. Ensuite, ajoutez ce groupe à chaque utilisateur auquel vous voulez donner accès. su à cet utilisateur sans mot de passe : usermod -a -G <groupName> <userName> (o usermod -a -G oracle tom ). Les changements de groupe peuvent ne pas prendre effet avant la prochaine connexion.

Remarque : Dans votre cas, vous avez déjà le groupe car oracle aurait été créé lorsque vous avez créé l'utilisateur oracle avec le groupe adduser oracle .

Modifier maintenant /etc/pam.d/su et sous les points suivants :

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

ajouter des lignes de règles d'authentification pour que la section ressemble à ceci :

# 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>

Remplacer <groupName> con oracle dans ce cas. Cela permettra à n'importe quel utilisateur faisant partie de l'équipe de gestion de la sécurité de l'entreprise d'avoir accès à l'information. <groupName> a su <groupName>

Maintenant tom puede su oracle et si vous avez besoin de donner à d'autres utilisateurs le même accès, ajoutez-les à oracle groupe.

question similaire aquí

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X