Définition : groupe src - Quoi est ce ?

Résolu/Fermé
Illitch Messages postés 1582 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 3 janvier 2024 - 10 sept. 2009 à 12:16
Illitch Messages postés 1582 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 3 janvier 2024 - 12 sept. 2009 à 05:18
Bonjour,

Le tuto Ubuntu.fr sur la compilation de paquet autre que .deb indique d'ajouter son id utilisateur au groupe src (sudo addgroup $USER src) pour compiler un programme sans utiliser sudo, ne voulant pas attribuer plus de permissions que nécessaire (au cas où cet ajout serait permanent) et ne sachant pas quel est l'intérêt de ne pas utiliser sudo j'ai donc ces questions :

- Qu'est ce que le groupe src et quel est son rôle ?
- Pourquoi ne pas utiliser sudo ou sudo su, quel est l'intérêt de s'ajouter à src (est ce bien /usr/src ?) ?
- Dans la commande : sudo addgroup $USER src doit on remplacer $USER par son nom d'utilisateur ou bien $USER est il un joker remplaçant l'utilisateur connecté à la console ?

le tuto source de mon questionnement (§ sous le titre "Compiler") : http://doc.ubuntu-fr.org/tutoriel/compilation

Un lien vers un lexique Ubuntu (je parle d'un dico) serai également bienvenu

Merci d'avance.

6 réponses

Bonjour,

il faut se poser la question : est-ce que compiler un programme peut être dangereux pour le système ?

Le groupe src à les droits d'écriture dans le dossier /usr/src ou se trouve le noyau et les modules. Il suffit donc d'apprécier ce qui est important.
Si vous êtes le seul utilisateur à compiler, autant utiliser sudo. Si vous êtes plusieurs, c'est peut être plus pratique comme ça ?

Cordialement,
0
Illitch Messages postés 1582 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 3 janvier 2024 45
10 sept. 2009 à 13:10
merci kiki,
En effet je suis le seul "administrateur" (faute de mieux) du système et je préfère limiter au max les droits permanents (surtout pour acceder au kernel...) sudo su ou un script "ouvrir avec les droits roots" me conviennent donc mieux. :)

Reste, par curiosité, ma question sur l'expression $USER et ma félicité sera compilée (mais pas ses dépendances :P ). Le lien vers un lexique LINUX serait également acceuilli avec bonheur.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
10 sept. 2009 à 13:36
Salut,

La compilation d'un programme peut être fait par n'importe quel utilisateur et il n'y a aucun danger.
L'installation en revanche ne peut être faite que par root (enfin si en jour tu vas t'amuser avec LFS - Linux From Scratch - tu verras que ce n'est pas obligatoire)

Pour ne pas te compliquer avec cette histoire de src il suffit de télécharger les sources et les désarchiver dans le répertoire personnel d'utilisateur.

Les commandes
./configure
make

sans trop d'explications ne sont que pour la préparation de l'installation qui sera faite en root.
Ensuite pour installer il suffit de taper sudo make install

Selon ce tuto on a l'impression que la seule manière de compiler c'est ça Pour compiler un programme sans utiliser sudo rajouter l'utilisateur au groupe src, ce qui n'est pas du tout vrai.

D'ailleurs c'est en contradiction avec ce qu'on voit plus haut dans le tuto
Une fois téléchargée, décompressez l'archive dans votre dossier personnel
Pourquoi j'aurais besoin des privilèges particulières pour faire un ./configure && make dans mon répertoire personnel?
Et pourquoi ça sera dangereux ?


0
Illitch Messages postés 1582 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 3 janvier 2024 45
10 sept. 2009 à 14:02
Je suis d'accord ce tuto est un peu confus :/
J'ai cru comprendre que compiler manuellement sans apt peut poser des problèmes si le paquet a des dépendances non installées et pour la désinstalation dudit paquet ; d'où l'intérêt d'utiliser build-essential / fakeroot / checkinstall.
Le protocole donné dans le tuto est il correct ? A savoir :
décompresser l'archive puis :
cd /[chemin_vers_le_répertoire_des_sources]
./configure
make
sudo checkinstall


/up :
$USER ?
Lexique LINUX ?
0
jeanbi Messages postés 15118 Date d'inscription samedi 9 décembre 2006 Statut Contributeur Dernière intervention 6 février 2023 2 177
10 sept. 2009 à 14:29
bonjour,
pourquoi revenir sur ce qui a ete ecit
il est toujours possible de compiler un programme,
les commandes gerenrales sont en user
./configure
make
si tout se passe bien qu'il n'y a pas d'erreur
en root
avec sudo
sudo make install
ou su -
motdepasse (root)
make install
a+
0
Illitch Messages postés 1582 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 3 janvier 2024 45
10 sept. 2009 à 14:42
mais si j'ai bien compris checkinstall créé un.deb et rend possible la désinstalation ultérieure par le synaptic (toujours bon à prendre), également la procédure indiquée est suposée contrôler l'existance de dépendances non satisfaite, chose très intéressant : alors ma question reste entière la méthode du tuto est elle valide ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeanbi Messages postés 15118 Date d'inscription samedi 9 décembre 2006 Statut Contributeur Dernière intervention 6 février 2023 2 177
10 sept. 2009 à 16:54
re, je n'ai jamais essaye
en aucun cas il ne s'occupe des dependances vu que c'est make qui va s'occuper de compiler et de te dire s'il manque des dependances
la commande a le seul interet d'installer le programme comme un rpm ou deb de mettre à jour la base de logiciels et de se fait en permettre la desinstalation.
il faut bien sur installer checkinstall
a+
0
Illitch Messages postés 1582 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 3 janvier 2024 45
10 sept. 2009 à 23:26
Merci

Pigé (navré j'ai été un peu lent : j'ai un cerveau double core pourtant comme tout le monde).
Je vais toutefois installer checkinstall et l'utiliser histoire d'avoir un synaptic au propre. Décidément ce tuto est mal fichu (plutôt rare sur Ubuntu.fr) :/
0
Illitch Messages postés 1582 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 3 janvier 2024 45
12 sept. 2009 à 05:18
Donc ça donne ça (copie du log de la console - les entrée tapées dans la console sont en gras) - J'ai décompressé l'archive en mode graphique auparavant.

1 - Se rendre dans le répertoire ou se trouve l'archive décompressée :

bullshit@Ducon180374:~$ cd /home/bullshit/Bureau/Téléchargements/Programmes/Foremost/foremost-1.5.6
bullshit@Ducon180374:~/Bureau/Téléchargements/Programmes/Foremost/foremost-1.5.6$.

2 -Exécuter configure (ici ./configure n'est pas présent dans l'archive)

sudo su
[sudo] password for bullshit:
root@Ducon180374:/home/bullshit/Bureau/Téléchargements/Programmes/Foremost/foremost-1.5.6# ./configure
bash: ./configure: Aucun fichier ou dossier de ce type

3 - Compiler

root@Ducon180374:/home/bullshit/Bureau/Téléchargements/Programmes/Foremost/foremost-1.5.6# make
gcc -Wall -O2 -DVERSION=\"1.5.6\" -D__UNIX -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c main.c
gcc -Wall -O2 -DVERSION=\"1.5.6\" -D__UNIX -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c state.c
gcc -Wall -O2 -DVERSION=\"1.5.6\" -D__UNIX -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c helpers.c
gcc -Wall -O2 -DVERSION=\"1.5.6\" -D__UNIX -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c config.c
config.c: Dans la fonction «translate» :
config.c:27: attention : valeur calculée n'est pas utilisée
config.c:32: attention : valeur calculée n'est pas utilisée
config.c:37: attention : valeur calculée n'est pas utilisée
config.c:42: attention : valeur calculée n'est pas utilisée
config.c:47: attention : valeur calculée n'est pas utilisée
config.c:52: attention : valeur calculée n'est pas utilisée
config.c:57: attention : valeur calculée n'est pas utilisée
gcc -Wall -O2 -DVERSION=\"1.5.6\" -D__UNIX -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c cli.c
gcc -Wall -O2 -DVERSION=\"1.5.6\" -D__UNIX -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c engine.c
gcc -Wall -O2 -DVERSION=\"1.5.6\" -D__UNIX -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c dir.c
gcc -Wall -O2 -DVERSION=\"1.5.6\" -D__UNIX -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c extract.c
gcc -Wall -O2 -DVERSION=\"1.5.6\" -D__UNIX -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c api.c
gcc -Wall -O2 -DVERSION=\"1.5.6\" -D__UNIX -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 main.o state.o helpers.o config.o cli.o engine.o dir.o extract.o api.o -o foremost

4 - Exécuter checkinstall pour créer le .deb :

root@Ducon180374:/home/bullshit/Bureau/Téléchargements/Programmes/Foremost/foremost-1.5.6# sudo checkinstall

checkinstall 1.6.1, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.


The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]: y

Preparing package documentation...OK

Please write a description for the package.
End your description with an empty line or EOF.
>> Récupération de données.

*****************************************
**** Debian package creation selected ***
*****************************************

This package will be built according to these values:

0 - Maintainer: [ root@Ducon180374 ]
1 - Summary: [ Récupération de données. ]
2 - Name: [ foremost ]
3 - Version: [ 1.5.6 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ foremost-1.5.6 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]

Enter a number to change any of them or press ENTER to continue:

Installing with make install...

========================= Installation results ===========================
install -m 755 foremost /usr/local/bin
install -m 444 foremost.8.gz /usr/share/man/man8
install -m 444 foremost.conf /usr/local/etc

======================== Installation successful ==========================

Copying documentation directory...
./
./README
./CHANGES
grep: /var/tmp/chrRNSamOPrrDceMAIYQd/newfile: Aucun fichier ou dossier de ce type

Copying files to the temporary directory...OK

Stripping ELF binaries and libraries...OK

Compressing man pages...OK

Building file list...OK

Building Debian package...OK

Installing Debian package...OK

Erasing temporary files...OK

Deleting temp dir...OK


**********************************************************************

Done. The new package has been installed and saved to

/home/bullshit/Bureau/Téléchargements/Programmes/Foremost/foremost-1.5.6/foremost_1.5.6-1_i386.deb

You can remove it from your system anytime using:

dpkg -r foremost

**********************************************************************



le paquet apparait bien (renseigné) dans le synaptic.
0