Je dois autoriser l'utilisateur martin
à changer d'utilisateur martin-test
sans mot de passe
su - martin-test
Je pense que cela peut être configuré dans /etc/pam.d/su
. Il y a déjà quelques lignes dans ce fichier qui peuvent être décommentées. Cependant, je n'aime pas l'idée d'ajouter un utilisateur martin
à un groupe wheel
. Je ne veux pas donner martin
plus de privilèges que de pouvoir changer martin-test
. Je ne veux pas non plus utiliser sudo
.
Quelle serait la meilleure façon de le faire, tout en limitant les privilèges d’utilisateur martin
?
users
password
authentication
pam
Martin Vegter
la source
la source
sudo
par exemplesudo -u martin-test -i
. Y a-t-il une raison pour laquelle vous demandez spécifiquementsu
?sudo
uniquement pour cette raison (je ne l'utilise pas normalementsudo
et je ne l'aime pas particulièrement). Et je pense que l’utilisationpam
est plus propre et plus transparente.sudo
était destiné. En plus de ne pas l'utiliser normalement, quelles sont les objections?pam
, je préférerais cela plussudo
. Sisudo
est la seule possibilité, c'est très bien aussi. Mes objectionssudo
sont principalement idéologiques: je n'aime pas l'idée de gestion administrative par l'utilisateursudo foo
. Lorsque j'ai besoin de faire de l'administration, je me connecte en tant que root. Sinon, je me connecte en tant qu'utilisateur. Ces deux rôles distincts ne doivent pas être mélangés. De plus, j'ai déjà unepam
infrastructure installée. Je ne veux pas installer un autresetuid
programme qui peut éventuellement introduire des bugs de sécurité.sudo foo
pour des commandes spécifiques. Sudo asudo -s
qui va lancer un shell. sudo est un utilitaire très courant, ce qui signifie que sa sécurité a été minutieusement vérifiée, bien plus que ne le sera une supercherie de pam. Je dirais également que l’obtention d’un shell root pour les tâches est beaucoup plus précaire que le lancement de commandes spécifiques. Lorsque vous lancez un shell, vous lancez tout en tant que root. Si l'une de ces choses (comme un simplels
) comporte une vulnérabilité de sécurité, vous venez d'ouvrir une faille de sécurité.Réponses:
Ajoutez les lignes suivantes juste en dessous de la
pam_rootok.so
ligne dans votre/etc/pam.d/su
:Ces lignes effectuent des contrôles à l'aide du
pam_succeed_if.so
module. Voir aussi la syntaxe du fichier de configuration Linux-PAM pour en savoir plus sur lesauth
lignes.martin-test
. Si c'est le cas, rien ne se passe (success=ignore
) et nous continuons sur la ligne suivante pour vérifier l' utilisateur actuel . Si ce n'est pas le cas, la ligne suivante sera ignorée (default=1
) et nous continuerons sur les lignes suivantes avec les étapes d'authentification habituelles.martin
. Si tel est le cas, le système considère que le processus d'authentification a abouti et renvoie (sufficient
). Sinon, rien ne se passe et nous continuons sur les lignes suivantes avec les étapes d’authentification habituelles.Vous pouvez également limiter
su
à un groupe, le groupeallowedpeople
peut icisu
sans mot de passe:la source
Si vous ne souhaitez pas modifier les groupes ou les utiliser
sudo
, utilisez un module pam appelépam_exec
pour exécuter des scripts externes dans une étape pam.Ajouter une ligne dans votre
/etc/pam.d/su
après lapam_rootok.so
ligne:/path/to/script
a les permissions 755 (rwxr-xr-x) et le contenu suivant:Donc, ce script existe avec succès si
su
:martin
etmartin-test
.Voir:
la source
/etc/pam.d/su
utilisation en fonction depam_access
ma situation?pam_access
je ne peux pas faire ça. Lorsquesu
passe dans la pile de pam, c'est l'utilisateur que vous changez de utilisateur, et non l'utilisateur à partir duquel vous changez d'utilisateur. Donc, si vous ajoutez une règle telle que+ : martin : ALL
, elle permettra à quiconque de passer àmartin
. Même si vous changezmartin
pourmartin-test
, cela laissera tout le monde le faire. Vous devez analyser à la fois l’utilisateur dont vous venez et l’utilisateur auquel vous passez. Vraiment, c’est exactement ce qu’ilsudo
faut ...Si vous n'avez pas accès au compte root, mais avez le mot de passe de l'utilisateur que vous souhaitez utiliser pour exécuter une commande, vous pouvez procéder comme suit.
Il suffit d’installer votre clé publique dans la catégorie allowed_keys of toto
la source
Ma solution simple est:
Si vous voulez éviter le sudo à tout prix, je pense qu'il devrait être possible de le mettre dans un script:
Cependant, je ne peux pas comprendre le
chown root
etchmod +s ToTest.sh
bits, pour que cela fonctionne réellement:Je cours toujours en tant qu'utilisateur normal, comme le dit l'écho. Et il faut toujours un mot de passe sudo. Si cela fonctionnait en tant que root, on pourrait supprimer
sudo
la dernière ligne ...la source
bash
trouve, pourquoi supposez-vous que vous savez oùenv
est ou existe-t-il même?). Mais à la fin, vous ne savez pas ce quebash
ce sera exactement. Il pourrait provenir du répertoire de l'utilisateur appelant et avoir été compilé une minute plus tôt à partir de son code source. Vous voyez où je vais? Ou l'utilisateur peut remplacerwhoami
...