Question sur l'utilisation de sudo

Bonjour,

En mode « authentification mot de passe », j’ai un petit souci avec sudo.

Conformément à la doc, l’utilisateur avec lequel je me connecte à la machine distante est bien dans sudoers :

image

Pourtant les commandes sudo sont refusées :

Il y a sans doute un truc qui m’échappe…
Questions :

  1. Comment dois-je faire pour lancer une commande sudo ?
  2. En lançant la même commande via « info », on ne voit pas le rejet.
    → Une évolution est-elle prévue pour faciliter le debug ?

Merci.

donc cet utilisateur a un nom

juste faire sudo dans la commande ssh ne précise pas un utilisateur

Tu devrais lire la doc.

https://titidom-rc.github.io/Documentation/fr_FR/SSHManager/index

Oui, c’est celui que j’ai renseigné dans l’onglet principal (user & passwd)

C’est pourtant ce que j’ai fait (ou il y a un truc que je ne comprends pas).
Je viens de retester avec mkdir → la commande n’aboutit pas.

J’ai bien relu la doc, mais je ne vois pas ce qui coince.
→ RAS en mode « non sudo ».

Donc si tu as bien renseigné cet utilisateur, ce que je ne savais pas et qu’il est dans le groupe sudoer, tu passes juste la commande.

tu ne mets pas sudo devant normalement

Cette phrase ne t’était pas adressée.

En effet, sorry !

1 « J'aime »

Pour info j’ai tenté cela mais cela ne passe pas.

Le fichier log est créé, mais il est vide, j’en déduis que la commande ne s’est pas exécutée.

Ah oui vous aviez devinez que tout était correctement renseigné.

Ma phrase lui montré qu’il parlait d’un user, dont on ne savait pas si il était renseigné juste qu’il était dans sudoers

Toujours aussi aimable …

Bonsoir à tous,

Bon il manque une petite phrase dans ma doc visiblement et il va falloir que je l’ajoute :stuck_out_tongue:

@dvb : j’imagine que ta commande « sudo » (quelle qu’elle soit) rentre en timeout non ?

Pour que des commandes sudo fonctionnent ici, il faut certe que le user soit dans le groupe sudoers (ce que tu as bien fait), mais il faut également configurer ce user pour qu’il n’ait pas de mot de passe à taper en cas de lancement d’une commande sudo.

Pour cela, il te faut te connecter sur la machine sur laquelle tu as déclaré cet utilisateur, et taper la commande suivante (en partant du principe que le nom du user est sshmanager, sinon à adapter :wink: ) :

echo 'sshmanager ALL=(ALL) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/sshmanager

EDIT : on peut également adapter cette commande pour que seulement certaines commandes soient lançable sans mot de passe (si besoin).
EDIT2 : Ce n’est à faire qu’une seule fois bien sûr, une fois cette commande exécutée, cet utilisateur pourra lancer des commandes sudo sans avoir à taper son mot de passe, donc cela fonctionnera à travers le plugin :slight_smile:

TiTidom.

1 « J'aime »

Bonjour, au milieu de ces amabilités, peut être une piste.

Citation
image

En éditant le fichier /etc/sudoers, est ce que la commande NOPASSWD: ALL est présente ?

#Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD: ALL

1 « J'aime »

@TiTidom
Mes tests en // via un terminal ssh (donc sudo +commande + mot de passe) étaient OK et je ne comprenais pas. Voilà donc l’explication :wave:

@TiTidom @Fifirept
Lorsque je déclare un user dans le groupe sudo, je le fais exclusivement avec cette commande :

adduser toto sudo

J’évite de modifier directement sudoers, et je souhaite maintenir la demande de mot de passe (bonnes pratiques côté sécurité).

Donc si je comprends bien, il y a deux possibilités :

  1. je travaille via une authentification par clé sous réserve que cela embarque sudo (je suppose que oui, mais à vérifier).
  2. le plugin ssh-manager évolue avec une option sudo qui adresserait ce besoin.

J’ai une préférence pour 2), mais je laisse @TiTidom et @Mips décider de la suite :slight_smile:

Il semblerait que tu te sois assagi de ce côté.
C’est bien, continu.

Salut,

D’où la commande que je t’ai proposé qui ne modifie pas le sudoers directement mais ajoute un fichier de conf dans la gestion du sudo à côté :slight_smile:

Je te comprend, mais les solutions existantes par ailleurs pour palier à cette problématique, sont soit très lourde à mettre en place, compliquées à maintenir, et niveau sécurité, obligerait d’une manière ou d’une autre à mettre le mot de passe quelque part et à le passer en paramètre d’une commande, ce qui n’est pas forcément mieux :open_mouth: (loin de là).

D’où la dernière proposition que j’avais faite, de n’autoriser le sudo sans mot de passe que sur certaines commandes, par exemple les commandes « reboot », « systemctl », « apt update » et « apt upgrade » etc… à affiner en fonction des besoins :wink:

Cela ne résoudrait pas ton problème, car la partie clé n’est là que pour l’authentification (alors si il est possible de faire reposer sudo sur l’authentification par clé, mais non content de ne pas être trivial à mettre en place, cela revient à taper des commandes sans avoir à rentrer de mot de passe / clé… donc on en revient au point de départ :stuck_out_tongue:

TiTidom.

Hello,

Effectivement, le sujet n’est pas si simple …

Après réflexion, ta proposition de « fichier de conf à côté » semble un compromis intéressant (*). Si je veux limiter au service usbipd par exemple, ce serait ce type de syntaxe ?

sshmanager ALL=(ALL) NOPASSWD: /usr/sbin/usbipd

(*) Il resterait à restreindre l’IP du demandeur, je creuserai à l’occasion.

Re,

La syntaxe est celle-ci pour mettre une ou plusieurs commandes :

echo 'UserName ALL= NOPASSWD: /usr/sbin/shutdown, /usr/sbin/reboot, /usr/sbin/poweroff' | sudo tee /etc/sudoers.d/UserName
1 « J'aime »

Re,

Ca tu peux le faire également assez simplement, en ajoutant un fichier à ta configuration ssh (toujours sur le même principe de ne pas modifier le fichier du système mais d’ajouter un fichier supplémentaire) :

Edite le fichier, via la commande (par exemple) : sudo nano /etc/ssh/sshd_config.d/jeedom.conf (jeedom.conf n’est qu’un exemple, tu lui donnes le nom que tu souhaites, l’important c’est l’extension de fichier .conf ;))

Ensuite dans le fichier tu mets un truc du style :

Match User sshmanager
    AllowUsers sshmanager@192.168.1.50

le nom de ton user étant ici sshmanager et l’adresse IP de ton Jeedom serait 192.168.1.50 :wink:

Et enfin pour que ce soit pris en compte, il faut redémarrer le service SSH : sudo systemctl restart sshd ou bien rebooter la machine :stuck_out_tongue:

et ATTENTION : si tu fais une fausse manip, tu risques de perdre l’accès SSH à la machine en question, alors on vérifie bien à deux fois avant de redémarrer le service SSH, sinon la punition va être très rapide lol.

Bonne soirée,
TiTidom.

2 « J'aime »

Merci pour toutes tes précisions :+1:
Je teste ça dès que j’ai un moment.

@+