Vous n'êtes pas identifié(e).
Si tu permet à quelqu'un d'installer des paquets, tu lui permet de modifier n'importe quoi dans le système
Faut pas exagérer, je ne connais aucun paquet des dépôts officiels dont l'installation avec la configuration par défaut permet à un utilisateur non privilégié d'exécuter des actions privilégiées arbitraires. (Certes, le paquet policykit-1 permet à un utilisateur local non privilégié de suspendre, redémarrer ou éteindre la machine ou monter des volumes amovibles, et le paquet network-manager permet de manipuler les interfaces réseau mais tout cela est ciblé, ça ne permet pas de modifier le système.)
apt-get install ./litteralement_nimportequoi_pasdanslédepots.deb
A ma connaissance et à moins que ça ait changé, apt-get ne permet pas d'installer un paquet à partir d'un fichier .deb quelconque, contrairement à dpkg et apt. Voyons...
Marche pô...
Il vaut mieux montrer que raconter.
Hors ligne
Donc avec un chemin explicite pour indiquer que c'est un nom de fichier, ça marche. Bon, j'ai appris un truc, merci.
Faut durcir le script wrapper pour filtrer les options et les chemins pour ne laisser que les noms de paquets.
Il vaut mieux montrer que raconter.
Hors ligne
Dernière modification par totoZero7 (29-10-2022 21:01:05)
Hors ligne
Donc avec un chemin explicite pour indiquer que c'est un nom de fichier, ça marche. Bon, j'ai appris un truc, merci.
J'ai appris ça sur le forum cette année, fort pratique pour installe des .deb et installant automatiquement les dépendances (quand le paquet est bien fait ~)
Dernière modification par otyugh (29-10-2022 20:42:00)
Hors ligne
Hors ligne
fort pratique pour installe des .deb et installant automatiquement les dépendances
Bof, apt le fait déjà, y avait pas besoin de ça dans apt-get...
Il vaut mieux montrer que raconter.
Hors ligne
brider "sudo -c"
Je ne vois pas d'option -c dans la page de manuel de sudo. C'est censé faire quoi ?
j'ai en tête l''autorisation d'éditeur de texte
Avec apt-get ? apt a bien la commande edit-sources, mais je ne vois rien de tel pour apt-get.
En tout cas c'est bien le genre de fonctionnalité dont il faut se méfier quand on accorde les droits sudo sur une commande.
Il vaut mieux montrer que raconter.
Hors ligne
totoZero7 a écrit :
brider "sudo -c"
Je ne vois pas d'option -c dans la page de manuel de sudo. C'est censé faire quoi ?
c'est modifié
Hors ligne
Hors ligne
Dernière modification par otyugh (29-10-2022 21:32:07)
Hors ligne
Est-ce qu'il est possible d'obtenir, par un utilisateur charitable, un script wrapper tout fait pour brider "sudo apt-get -c" d'un user qui a la possibilité de faire des sudo apt-get ?
Quelque chose de ce genre :
si on veut installer et mettre à jour sans désinstaller de paquets, et éventuellement ne pas installer les paquets recommandés.
J'ai regardé si on pouvait faire la même chose avec les wildcards de sudo, mais ça n'a pas l'air assez souple.
en incluant l'interdiction d'installer ces 2 paquets: (policykit-1, network-manager)
Pourquoi ? Ces paquets sont probablement déjà installés, et comme je l'ai écrit, ils ne permettent pas de modifier le système.
ainsi que la possibilité d'installer un paquet via le chemin explicite
Cette possibilité est exclue par la vérification des noms de paquets qui ne doivent contenir que des lettres minuscules, des chiffres et des tirets au milieu. Cela exclut donc aussi la possibilité d'installer une version spécifique, une architecture spécifique ou depuis une archive spécifique.
Dernière modification par raleur (29-10-2022 23:16:30)
Il vaut mieux montrer que raconter.
Hors ligne
Hors ligne
est-il possible d'obtenir un script wrapper qui interdirait par exemple uniquement la commande "ls"
Aucun intérêt. Il serait trivial de copier le programme ls sous un autre nom ou de l'appeler dans un script pour passer outre l'interdiction.
Comme on te l'a déjà dit, les listes noires sont faciles à contourner.
je n'arrive pas pour le moment à utiliser apt-get -c
Si tu ne dis pas exactement ce que tu fais et ce qui se passe, ça va être difficile de te répondre.
Ensuite, le script se met où ?
Dans un des chemins inclus dans le $PATH utilisateur. /usr/local/bin me semble le meilleur endroit car il est à la disposition de l'administrateur local contrairement à /bin et /usr/bin dont le contenu provient de la distribution.
- Comment on le fait fonctionner pour qu'il s'active avec sudo ? Doit-il être mis dans un fichier /etc/monsudo.conf ?
Si sudo est configuré pour lire ce fichier, pourquoi pas. Sinon, dans /etc/sudoers ou un fichier dans /etc/sudoers.d/ (voir le README dans ce répertoire).
Dois-je le rendre exécutable ou cela se fait automatiquement ?
Oui, comme n'importe quel programme exécutable.
Sous quelle forme (de test) on peut utiliser l'option -c de apt-get pour tester que ce la fonctionne bien ?
Peu importe. -c n'est pas la seule option dangereuse, il y a aussi -o et j'en oublie sûrement. Pas besoin que la commande fonctionne réellement pour vérifier si sudo la refuse.
Comment faire pour autoriser uniquement la commande "apt autoremove"
Ajoute "autoremove" à la liste des commandes d'apt-get acceptées dans l'expression du script.
Il vaut mieux montrer que raconter.
Hors ligne
Je lui ai donné les droit 755
Mais je pense que cela ce fonctionne pas. Quand je teste avec cette commande j'obtiens ceci:
Le script n'est pas censé m’empêcher de faire cette commande ?
Ai-je oublier quelque chose ? quoi ?
D'ailleurs, que fait exactement ce script ? je n'arrive pas à le comprendre.
Hors ligne
Le script n'est pas censé m’empêcher de faire cette commande ?
Non, le script n'est pas censé empêcher d'exécuter apt-get avec sudo. C'est sudo lui-même qui doit être configuré pour autoriser seulement l'exécution du script et pas d'apt-get. Le script s'utilise ensuite avec sudo à la place d'apt-get.
Il vaut mieux montrer que raconter.
Hors ligne
Hors ligne
Hors ligne
Je parlais d’empêcher de faire apt-get -c ou tout autres formes d'option de apt-get, car je ne comprends pas ce script ; mais pas d’empêcher de faire un simple apt-get
C'est pourtant ce qu'il faut faire. Si tu mets apt-get en liste blanche, tu autorises toutes ses actions.
Le script sert à remplacer apt-get dans la liste blanche de sudo et à limiter ce qu'on peut faire avec apt-get.
Dans sudoers, j'ai fait cela mais ça ne fonctionne pas
Mais encore ?
Il vaut mieux montrer que raconter.
Hors ligne
par contre il faudra penser a toute les alternatives , car apt update fonctionne
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
En ligne
pour bloqué la commande apt-get a tout les membres de sudo
Ça ne marche pas. Il suffit de lancer l'exécutable sous un autre nom pour contourner l'interdiction.
Je ne vois pas ce qu'il y a de compliqué. Au lieu d'autoriser apt-get, on autorise un script qui lance apt-get de façon contrôlée.
Dernière modification par raleur (02-11-2022 14:59:05)
Il vaut mieux montrer que raconter.
Hors ligne
Mais encore ?
Je reprends,
Pour s'occuper seulement de la commande apt-get:
Il faut créer un script dédié pour "apt-get" afin de le restreindre de certaines actions (option -c par exemple)
Ce script dédié est mis idéalement dans /usr/local/bin
Ce script dédié doit être mis en exécutable
Le chemin de ce script doit être mis dans le fichier sudoers, au niveau de l'user qui sera ciblé à la partie %sudo.
Je n'ai pas mis apt-get en liste blanche (sous alias) dans sudoers, juste le script.
On est bon jusque là ?
J'ai fait tout cela, mais cela ne fonctionne pas.
toto n'a pas accès a apt-get tout court.
Hors ligne
Le chemin de ce script doit être mis dans le fichier sudoers, au niveau de l'user qui sera ciblé à la partie %sudo.
L'utilisateur ne doit pas être membre du groupe sudo, sinon il aura le droit d'exécuter n'importe quoi.
sudo apt-get update
Il faut exécuter le script, pas apt-get.
Il vaut mieux montrer que raconter.
Hors ligne
L'utilisateur ne doit pas être membre du groupe sudo, sinon il aura le droit d'exécuter n'importe quoi.
Je pensais qu'on s'occupait uniquement de apt-get.
Je souhaitais ajouter ensuite des fonctions comme éteindre la machine, qui nécessite sudo.
Tout ce que je souhaite ajouter doit être mis dans le scripté dédié du coup ?
Hors ligne
Tout ce que je souhaite ajouter doit être mis dans le scripté dédié du coup ?
Non, ce script ne sert qu'à "envelopper" apt-get.
Il faut ajouter les autres commandes dans sudo.
Il vaut mieux montrer que raconter.
Hors ligne
Ça ne marche pas. Il suffit de lancer l'exécutable sous un autre nom pour contourner l'interdiction.
ah bon , j'ai pas testé mais ce serait étonnant
c'est pas un fichier de config utilisateur mais des règles établi pour tout membre du groupe sudo
donc logiquement aucun utilisateur n'aura le droit
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
En ligne