Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

lundi 18 juillet 2016

Ajouter un dépôt en ligne de commande sous Linux

Quand on installe un logiciel sous Linux, on a souvent besoin d'ajouter un nouveau dépôt au fichier /etc/apt/sources.list.

On peut évidemment éditer le fichier précédent avec les droits administrateurs, mais on va le faire ici de manière non interactive.

Si par exemple on veut ajouter le dépôt wheezy-backports à une version wheezy de Debian, on essaiera:

sudo echo "deb http://http.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list

et on se heurtera au message suivant:

bash: /etc/apt/sources.list: Permission non accordée

En fait ici la commande echo n'est pas lancée avec les droits administrateurs et le mot clé sudo n'est pas pris en compte ! C'est assez surprenant. L'erreur doit venir du fait qu'on utilise une redirection.

En revanche, la commande suivante:

sudo cp /etc/apt/sources.list .
user@machine:~$ ls -l sources.list 
-rw-r--r-- 1 root root 620 juil. 18 11:30 sources.list

crée bien un fichier ayant les droits root.

Pour ajouter un dépôt en ligne de commande, on utilisera plutôt la commande tee avec le flag -a pour "append":

echo "deb http://http.debian.net/debian wheezy-backports main" | sudo tee -a /etc/apt/sources.list

De cette façon, le dépôt a bien été ajouté.

Si quelqu'un sait pourquoi la première façon de faire échoue, ça m'intéresse !

jeudi 15 octobre 2015

Ajouter un utilisateur dans la liste des 'sudoers' sous Debian

Sur un système Debian fraîchement installé, et je dis bien Debian et non Ubuntu, Mint ..., l’utilisateur créé ne peut pas par exemple lancer la commande suivante avec succès:

myuser@mymachine:~$ sudo apt-get update
[sudo] password for myuser: 
myuser is not in the sudoers file.  This incident will be reported.

En effet, par défaut l'utilisateur myuser n'a pas les droits sudo.

Pour qu'il obtienne les droits d'utiliser la commande sudo, il suffit qu'il appartienne au groupe Unix sudo, comme le montre la fin du fichier de configuration de sudo, /etc/sudoers:

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

Ajouter le groupe sudo à la liste des groupes de notre utilisateur se fait comme suit:

root@mymachine:/home/myuser# adduser myuser sudo
Ajout de l'utilisateur « myuser » au groupe « sudo »...
Ajout de l'utilisateur myuser au groupe sudo
Fait.

Maintenant, j'ai les droits sudo:

myuser@mymachine:~$ id
uid=1000(myuser) gid=1000(myuser) groupes=1000(myuser),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),105(scanner),110(bluetooth),112(netdev)

Et je peux par exemple mettre mon système à jour:

myuser@mymachine:~$ sudo apt-get update
[sudo] password for myuser: 
Atteint http://ftp.fr.debian.org wheezy Release.gpg
Atteint http://security.debian.org wheezy/updates Release.gpg          
Atteint http://dl.google.com stable Release.gpg                        
Réception de : 1 http://ftp.fr.debian.org wheezy-updates Release.gpg [1 554 B]
Atteint http://security.debian.org wheezy/updates Release                      
Atteint http://ftp.fr.debian.org wheezy Release                                
Atteint http://dl.google.com stable Release     

Petite précision tout de même, pour que l'ajout de groupe soit effectif, il faut au moins ouvrir un nouveau terminal pour l'utilisateur en question voire se déconnecter complètement.