Sudo nano et Kate

Bonjour à tous et à toutes.
J’ai une machine virtuelle sur ma Freebox avec Debian 11 arm64.
J’ai deux problèmes pour sauvegarder mes fichiers systèmes.
Avec sudo nano, quand je veux enregistrer les modifications, nano ne me propose pas d’enregistrer les modification.
Avec Kate, sous Manjaro, Kate me demande le mot de passe utilisateur (avec les droits sudo) mais sur la Debian, Kate me dit qu’il est impossible d’enregistrer le document.
Si quelqu’un a une idée pour résoudre ça car pour l’instant, je suis dans l’impossibilité de modifier le moindre fichier système.
Merci.

Bonjour,

As-tu des copies à nous montrer des fichiers /etc/sudoers pour la VM Debian et la VM Manjaro ?
As-tu vérifié les droits associés aux fichiers et dossiers concernés ?

Bonjour, vbreton.
Merci pour ta réponse.
Voilà le fichier de la VM Debian :

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root	ALL=(ALL:ALL) ALL

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

# See sudoers(5) for more information on "@include" directives:

@includedir /etc/sudoers.d

Voilà le fichier de ma Manjaro (ce n’est pas une VM) :

## sudoers file.
##
## This file MUST be edited with the 'visudo' command as root.
## Failure to use 'visudo' may result in syntax or file permission errors
## that prevent sudo from running.
##
## See the sudoers man page for the details on how to write a sudoers file.
##

##
## Host alias specification
##
## Groups of machines. These may include host names (optionally with wildcards),
## IP addresses, network numbers or netgroups.
# Host_Alias	WEBSERVERS = www1, www2, www3

##
## User alias specification
##
## Groups of users.  These may consist of user names, uids, Unix groups,
## or netgroups.
# User_Alias	ADMINS = millert, dowdy, mikef

##
## Cmnd alias specification
##
## Groups of commands.  Often used to group related commands together.
# Cmnd_Alias	PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
# 			    /usr/bin/pkill, /usr/bin/top
# Cmnd_Alias	REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff

##
## Defaults specification
##
## You may wish to keep some of the following environment variables
## when running commands via sudo.
##
## Locale settings
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
##
## Run X applications through sudo; HOME is used to find the
## .Xauthority file.  Note that other programs use HOME to find   
## configuration files and this may lead to privilege escalation!
# Defaults env_keep += "HOME"
##
## X11 resource path settings
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
##
## Desktop path settings
# Defaults env_keep += "QTDIR KDEDIR"
##
## Allow sudo-run commands to inherit the callers' ConsoleKit session
# Defaults env_keep += "XDG_SESSION_COOKIE"
##
## Uncomment to enable special input methods.  Care should be taken as
## this may allow users to subvert the command being run via sudo.
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment to use a hard-coded PATH instead of the user's to find commands
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
##
## Uncomment to send mail if the user does not enter the correct password.
# Defaults mail_badpass
##
## Uncomment to enable logging of a command's output, except for
## sudoreplay and reboot.  Use sudoreplay to play back logged sessions.
## Sudo will create up to 2,176,782,336 I/O logs before recycling them.
## Set maxseq to a smaller number if you don't have unlimited disk space.
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/usr/local/bin/sudoreplay !log_output
# Defaults!REBOOT !log_output
# Defaults maxseq = 1000

##
## Runas alias specification
##

##
## User privilege specification
##
root ALL=(ALL:ALL) ALL

## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL:ALL) ALL

## Same thing without a password
# %wheel ALL=(ALL:ALL) NOPASSWD: ALL

## Uncomment to allow members of group sudo to execute any command
# %sudo	ALL=(ALL:ALL) ALL

## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw  # Ask for the password of the target user
# ALL ALL=(ALL:ALL) ALL  # WARNING: only use this together with 'Defaults targetpw'

## Read drop-in files from /etc/sudoers.d
@includedir /etc/sudoers.d

Les fichiers appartiennent à root (lecture et écriture) au groupe root (lecture seule) et autres (lecture seule).

Le profil root étant un profil particulier, il serait bon d’ajouter un utilisateur avec la commande useradd sur ta VM puis de lui affecter un mot de passe:

Citation
sudo useradd toto
sudo passwd toto

Ensuite, tu ajoutes ton utilisateur (ici toto dans l’exemple) dans le fichier /etc/sudoers après la ligne root…

# User privilege specification
root	ALL=(ALL:ALL) ALL
toto    ALL=(ALL:ALL) ALL

Ce n’est pas dit que cela marche mais il faut éviter l’utilisateur root car certains scripts ou programmes le rejette.

Concernant les droits sur les dossiers et les fichiers, certains scripts ou programmes lisent les droits affectés et prennent des décisions.

Au lieu d’utiliser nano, pour faire la part des choses tu peux essayer de créer un fichier vide par exemple avec la commande touch et voir si le fichier est bien créé:

Citation
touch essai
ls -l

Je n’utilise pas root. J’utilise mon compte « ignace ».
Je trouve étonnant de mettre mon compte dans /etc/sudoers.
Je viens de le faire, résultat :
Je ne peux plus faire quoique ce soit, ni clique droit ou clique gauche, ni lancer une application.

C’est juste pour donner les privileges sudo à un utilisateur

J’ai essayé de redémarrer la VM et impossible.
Maintenant, elle ne démarre plus.

Des protections spécifiques à Free ?

Je vais essayer d’installer Debian avec l’image ISO et pas avec la VM préinstallé.

Bonjour.
J’ai fais une réinstallation à partir de la VM préinstallé car l’installation depuis l’ISO ne fonctionne pas car le terminal intégré à l’interface web de la Freebox ne permet pas de naviguer dans les menus d’installation avec les flèches haut et bas et je me retrouve avec le même problème.
J’ai l’impression que la VM préinstallé de Debian sur la Freebox est foireuse.
Je viens de testé avec la VM préinstallé de Ubuntu et je n’ai pas les problèmes. Sudo nano fonctionne bien et l’enregistrement de fichiers système avec Kate fonctionne bien aussi.
Je vais donc garder la Ubuntu car mon objectif est d’avoir un serveur fonctionnel administrable correctement le plus rapidement possible pour résilier mon abonnement chez mon hébergeur car ça me fera 7,20 € d’économie par mois.

1 J'aime

Je suis revenu à Debian en VM car je retrouvais le même problème avec la Ubuntu (sans compter que Ubuntu ne jure que sur les Snap).

Bonjour,

peux-tu nous donner un exemple complet avec nano par exemple ? (la commande tapée, le chemin du fichier modifié, la procédure pour enregistrer les modifications…)

Sinon, si tu utilises sudo, tu peux te connecter au compte root et charger son environnement avec sudo -i

Bonjour, Spuntnik93.
Voilà :
sudo nano /etc/hosts
En faisant CTRL+O, ça me donne ça :
https://i.ibb.co/r29F69t/sudo-nano-debian.webp
En faisant la même chose avec ma Manjaro, j’ai ça :
https://i.ibb.co/QvFYDY4/sudo-nano-manjaro.webp

Ah, j’ignore si c’est lié, mais les raccourcis semblent différents (par exemple, en Fr et sur ma machine comme sur ta Manjaro, Ctrl-X ferme le fichier, tandis que sur ta Debian Ctrl-X sert à exécuter une commande) la locale par défaut de ta Debian semble être une locale de langue anglaise, peut-être que sudo dpkg-reconfigure locales (sélectionne une locale fr, comme fr_FR.UTF-8 et aussi une locale anglaise comme en_US.UTF-8, puis choisis la locale Fr par défaut).

Peut-être que les raccourcis de nano sont différents selon la locale, ou bien tu as une configuration de nano particulière dans un fichier nanorc. Je connais assez peu nano, je ne serai pas d’un grand secours, dans ce dernier cas.

Le plus souvent c’est vi (ou vim) ou emacs que j’emploie et qui sont bien plus confortables mais qui nécessitent une petite prise en main pour démarrer confortablement, surtout vi.

sudo apt install vi
sudo apt install vim
sudo apt install emacs

Sauf espace mémoire très restreint comme dans certains systèmes embarqués, ça vaut la peine d’installer vi (ou vim), ou emacs.
L’avantage de nano c’est qu’il doit être natif à une install de base de la debian et qu’il est très léger mais ça s’arrête là.

Surtout qu’il est beaucoup plus intuitif que vim pour les néophytes. J’utilise vim au quotidien et j’ai du mal à m’en passer, mais pour modifier une ligne dans un /etc/hosts nano fait aussi bien l’affaire sans nécessiter l’apprentissage de la prise en main.
Par contre dès qu’on travaille sur des fichiers plus complexes, et en particulier du code dans un langage sensible à l’indentation, comme python ou yaml par exemple, ça devient nécessaire de passer par un éditeur plus puissant. Je peste quand des collègues flinguent les indentations dans ce type de fichiers car ils utilisent nano pour faire des copier/coller…

Ben sur ma Manjaro, j’utilise Kate pour les fichiers système.
Pour coder, j’utilise Geany.
Vi, Vim ou Emacs pour modifier trois lignes de code, je trouve ça un peu extrême.
Bon, les raccourcis on l’air d’être les mêmes en français et en anglais dans Nano :
https://i.ibb.co/cYxTPDk/sudo-nano-debian-2.webp

L’avantage de vi, vim et emacs, c’est qu’on ne se pose pas trop de questions avec les raccourcis tant la documentation est abondante sur le Web. Pour vi et emacs, ce n’est plus extrême vu la puissance de la plupart des machines, notamment des VM. Il y a aussi sed et ed, repris dans vi.

Et là quand tu fais Ctrl-O, il ne te propose pas d’enregistrer le fichier au même emplacement ?

Bonjour

Rhaaaa !!! Cette manie de vouloir éditer /etc/sudoers au risque de péter son système au lieu de simplement mettre l’utilisateur dans le groupe sudo qui a des droits déjà définis dans /etc/sudoers:
Je veux que « myuser » puisse utiliser sudo, je passe root via su -et je fais un: adduser myuser sudo
Je veux lui retirer la possibilité d’utiliser sudo, je passe root via su - et je fais un: deluser myuser sudo

Mais par pitié, que les gens arrêtent de vouloir éditer /etc/sudoers (avec vi ou via visudo), c’est particulièrement sale !

2 J'aime