---
categories: ['OpenWRT','Système']
date: 2020-02-24T19:41:07+01:00
description: "Comment créer un utilisateur non privilégié, lui permettre d'avoir temporairement des droits privilégiés par le biais de sudo !?"
draft: false
tags: ['OpenWRT','sudo','sysadmin']
title: "OpenWRT : sudo"
translationKey: "openwrt-sudo"
---
## Description
Par défaut, OpenWRT est livré avec un seul compte, celui de l'administrateur `root`.
Nous allons créer un nouvel utilisateur sans privilège particulier qui
aura le droit d'administrer le système par le biais de l'utilitaire `sudo`.
## Installation
En tant que **root**, exécutons les commandes d'installation suivantes :
`# opkg update`
`# opkg install shadow-useradd sudo`
{{< note tip >}}
Il est possible d'installer aussi le paquet `shadow-usermod` qui permettra
au besoin de modifier tout paramètre lié au compte utilisateur.
{{< /note >}}
## Configuration
### configuration utilisateur
Maintenant, configurons le compte utilisateur :
* `# u=username` où `username` est le nom d'utilisateur choisi -
*à vous de paramètrer à votre convenance…*
* `# useradd "${u}"`
* `# passwd "${u}"` : afin de définir le mot-de-passe lié à l'utilisateur
* `# mkdir -p /home/"${u}"/.ssh` : pour créer le répertoire home principal,
ainsi que le sous-répertoire `.ssh` qui pourra servir plus tard.
* `# touch /home/"${u}"/.ssh/authorized_keys` : créer le fichier vide nécessaire
pour y copier les clés SSH publiques.
* `# chown -R "${u}":"${u}" /home/"${u}"` : pour donner les droits d'utilisateurs sur son home.
* `# chmod 0700 /home/"${u}"` : pour n'autoriser que cet utilisateur dans son home.
### configuration sudo
Je ne parlerais que de la méthode la plus sécurisée de configuration de `sudo`.
Cette méthode permet de n'avoir qu'à utiliser le mot de passe de l'administrateur
sans avoir à se connecter avec le compte administrateur.
Une fois, connecté avec votre compte utilisateur, lors des besoins d'administration,
il faudra précéder de la commande `sudo` toute autre commande nécessaire.
Avec l'utilitaire `visudo`, nous allons éditer le fichier adéquate `/etc/sudoers`.
`# visudo`
Puis dirigez vous vers la fin du fichier pour décommenter les deux lignes
suivantes, en supprimant le symbole `#` :
`# Defaults targetpw # Ask for the password of the target user`
`# ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw'`
{{< note tip >}}
Pour ceux qui ne savent pas comment enregistrer avec l'éditeur **visudo** :
tapez `:wq!` une fois que vous avez modifié le fichier afin d'écrire celui-ci
et de quitter l'éditeur.
{{}}
Une fois l'écriture validée, il sera permis à votre utilisateur `ego` d'utiliser
toute commande d'administration, telle que décrit ci-dessus.
### configuration ssh
Profitez de ce moment particulier pour mettre votre {{< inside2 l="sec:ssh:configuration-securisee" t="clé d'authentification ssh" a="nouvelle-clé-rsa--pkbdf" >}},
dans le fichier `/home/ego/.ssh/authorized_keys`.
{{< note warning >}}
Assurez-vous de bien copier votre clé publique, celui terminant par l'extension `.pub` !!!
{{}}
### configuration sauvegarde système
Pensez à éditer le fichier `/etc/sysupgrade.conf` afin d'ajouter :
* le répertoire home de votre utilisateur,
* `/etc/sudoers.d/` *(seulement si vous faites des ajouts dans ce répertoire)*
puis vérifier avec la commande `sysupgrade -l` que le répertoire est bien inclus.
Ainsi lors de votre futur {{< inside "sys:openwrt:sysupgrade" "mise à niveau" >}}
d'OpenWRT, vos données personnelles seront sauvegardées !
## Documentation
* https://openwrt.org/docs/guide-user/security/secure.access#create_a_non-privileged_user_in_openwrt
----