Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sudo et Firefox

20 réponses
Avatar
Yliur
Bonjour

Sans me casser les pieds =E0 faire une cage (on verra plus tard), mais
pour =E9viter que Firefox ait le droit d'acc=E9der =E0 n'importe quoi s'il
=E9tait compromis, je me suis dit que ce serait mieux et assez simple de
le faire ex=E9cuter par son propre utilisateur.

J'ai cr=E9=E9 un utilisateur firefox, je lui ai donn=E9 un mot de passe
et acc=E8s =E0 un shell.

Les r=E9pertoires des utilisateurs ne sont accessible qu'=E0 leur
propri=E9taire (d'ailleurs pourquoi ce n'est pas le cas dans les
distribution Linux en g=E9n=E9ral ?).

=C7a a l'air de marcher en ex=E9cutant dans un terminal :
su - firefox [+ saisie du mot de passe]
firefox

Je ne sais pas s'il y a moyen de passer en param=E8tre =E0 su le mot de
passe de l'utilisateur firefox. Donc j'ai essay=E9 avec sudo. J'ai ajout=E9
=E0 la fin de /etc/sudoers :
<utilisateur> alcheringa,localhost=3D(firefox) NOPASSWD: /usr/bin/firefox

Et quand je tape
sudo -u firefox firefox

=E7a ne fonctionne pas. Il n'y a pas de message d'erreur, parfois un
processus firefox est lanc=E9 par l'utilisateur firefox mais la fen=EAtre
n'appara=EEt jamais, parfois il n'y a rien.

Un essai avec Epiphany a donn=E9 quelque chose d'un peu diff=E9rent : la
premi=E8re fois =E7a n'a pas march=E9 (la fen=EAtre d'Epiphany est apparue =
et
il s'est plaint d'un probl=E8me de connexion =E0 /tmp/xxxxxxx-socket-xxxx
[=E7a parlait de dbus aussi], puis la fen=EAtre a disparu). J'ai ensuite
essay=E9 avec "su - firefox" + lancer Epiphany, =E7a a march=E9, et depuis =
la
version avec sudo fonctionne aussi.

Voil=E0, si vous avez un avis. Y a-t-il une diff=E9rence entre le lancement
avec sudo et celui en =E9tant r=E9ellement connect=E9 avec l'utilisateur ?
L'initialisation du shell ? Mais =E7a marche =E9galement avec "su firefox",
sans le tiret, puis lancement de Firefox.

Les avis g=E9n=E9raux sur le principe sont =E9galement les bienvenus.

Pour acc=E9der =E0 quelques r=E9pertoires personnels depuis l'instance de
Firefox lanc=E9e avec un autre utilisateur, je pensais =E0 utiliser
=E9ventuellement des liens durs. Et dans une cage pareil : on peut
laisser acc=E8s =E0 certains r=E9pertoires avec des liens durs. Je ne dis p=
as
de b=EAtise, =E7a ne permet pas de sortir de la cage ?

Merci

10 réponses

1 2
Avatar
François
Le 27/04/2010 18:49, Yliur a écrit :

Ça a l'air de marcher en exécutant dans un terminal :
su - firefox [+ saisie du mot de passe]
firefox



En lançant Firefox en root, tu autorises d'avance le premier script
malveillant venu à flinguer ton système.

Si tu es parano, tu te crées un compte d'utilisateur ordinaire que tu
utiliseras chaque fois que tu veux surfer dangereusement.

--
François
Avatar
Yliur
Le Tue, 27 Apr 2010 22:18:36 +0200
François a écrit :

Le 27/04/2010 18:49, Yliur a écrit :

> Ça a l'air de marcher en exécutant dans un terminal :
> su - firefox [+ saisie du mot de passe]
> firefox

En lançant Firefox en root, tu autorises d'avance le premier script
malveillant venu à flinguer ton système.




Je ne le lance pas en root.
"su - <utilisateur>" permet de se connecter avec un autre utilisateur
(qui s'appelle ici "firefox").


Si tu es parano, tu te crées un compte d'utilisateur ordinaire que tu
utiliseras chaque fois que tu veux surfer dangereusement.



C'est bien ce que j'ai décrit dans mon message.
Avatar
Hugues
Bijour,

Ce cher Yliur a posté :

Bonjour

Sans me casser les pieds à faire une cage (on verra plus tard), mais
pour éviter que Firefox ait le droit d'accéder à n'importe quoi s'il
était compromis, je me suis dit que ce serait mieux et assez simple de
le faire exécuter par son propre utilisateur.



Pourquoi pas.


J'ai créé un utilisateur firefox, je lui ai donné un mot de passe
et accès à un shell.



Jusque là, ok.

Les répertoires des utilisateurs ne sont accessible qu'à leur
propriétaire (d'ailleurs pourquoi ce n'est pas le cas dans les
distribution Linux en général ?).



Je ne comprends pas ce que tu veux dire.. : le propriétaire de qui ?

Ça a l'air de marcher en exécutant dans un terminal :
su - firefox [+ saisie du mot de passe]
firefox

Je ne sais pas s'il y a moyen de passer en paramètre à su le mot de
passe de l'utilisateur firefox.



Non, il faudrait jouer avec PAM, je pense, mais à chaud je ne vois pas comment...

Donc j'ai essayé avec sudo. J'ai ajouté
à la fin de /etc/sudoers :
<utilisateur> alcheringa,localhost=(firefox) NOPASSWD: /usr/bin/firefox



C'est une meilleure idée, en effet.

Et quand je tape
sudo -u firefox firefox

ça ne fonctionne pas. Il n'y a pas de message d'erreur, parfois un
processus firefox est lancé par l'utilisateur firefox mais la fenêtre
n'apparaît jamais, parfois il n'y a rien.



Vérifie le comportement des variables d'environnement telles que HOME,
il est bien possible qu'elles soient restées aux valeurs de
l'utilisateur <user lambda>...

[...]
Les avis généraux sur le principe sont également les bienvenus.



sudo aura tendance à ne pas mettre à jour toutes les variables
d'environnement, typiquement le PATH, HOME, etc..
man sudoers pour avoir plus d'infos..

Alors qu'avec su, tu as la garantie de faire un login complet, avec mise
à zéro des différentes variables shell.

Selon moi, l'utilisateur firefox n'a même pas besoin d'avoir un shell
dans son /etc/passwd avec sudo, mais c'est à tester..


Pour accéder à quelques répertoires personnels depuis l'instance de
Firefox lancée avec un autre utilisateur, je pensais à utiliser
éventuellement des liens durs. Et dans une cage pareil : on peut
laisser accès à certains répertoires avec des liens durs. Je ne dis pas
de bêtise, ça ne permet pas de sortir de la cage ?



Trop de complication nuit à la sécurité : keep it simple, keep it stupid.
L'idée du sudo est déjà pas mal à mon goût.

--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]

ꞁəƃəᴉɥ sənƃnɥ
Avatar
Bastien Durel
Le Tue, 27 Apr 2010 18:49:28 +0200, Yliur a écrit :
Bonjour



bonjour,
[...]
Et quand je tape
sudo -u firefox firefox



Tu peux essayer avec sudo -H pour placer $HOME, voir -i pour simuler le
login (comme le "-" de "su - user")

Par contre, je ne vois pas comment il va parler au serveur X ... mais
avec su - non plus. (à moins de transférer le MIT-cookie)

--
Bastien
Avatar
appzer0
Hugues wrote:

J'ai créé un utilisateur firefox, je lui ai donné un mot de passe
et accès à un shell.





Peut-être même que tu peux lui donner un faux shell, à savoir /bin/false
(qui doit faire partie de /etc/shells sunr une distro linux standard,
ubuntu je ne sais pas)

Les répertoires des utilisateurs ne sont accessible qu'à leur
propriétaire (d'ailleurs pourquoi ce n'est pas le cas dans les
distribution Linux en général ?).





Ça c'est la politique de la distro. Sur Slackware par exemple, les
home/user/ sont en 755, fichiers en 644 comme bcp d'autres distro, donc
accessibles aux autres (le groupe et aussi les autres) . C'est à toi de
décider si tu veux restreindre l'accès ou pas à ces répertoires au seul
groupe/propriétaire.

Donc j'ai essayé avec sudo. J'ai ajouté
à la fin de /etc/sudoers :
<utilisateur> alcheringa,localhost=(firefox) NOPASSWD: /usr/bin/firefox



C'est une meilleure idée, en effet.

Et quand je tape
sudo -u firefox firefox

ça ne fonctionne pas. Il n'y a pas de message d'erreur, parfois un
processus firefox est lancé par l'utilisateur firefox mais la fenêtre
n'apparaît jamais, parfois il n'y a rien.



Vérifie le comportement des variables d'environnement telles que HOME,
il est bien possible qu'elles soient restées aux valeurs de
l'utilisateur <user lambda>...



Il est possible que ce soit la faute du script 'firefox', c'est un
"wrapper" qui exécute firefox-bin.sh ou quelque chose dans ce goût-là,
possible que ton sudo ne passe pas l'étape 'firefox', alors que c'est
'firefox-bin.sh' qui devrait être lancé par l'utilisateur 'firefox' (de
tête, je n'ai rien vérifié).

appzer0
Avatar
Nicolas George
appzer0 wrote in message <4bd8289f$0$28658$:
Peut-être même que tu peux lui donner un faux shell, à savoir /bin/false
(qui doit faire partie de /etc/shells sunr une distro linux standard,



Il ne devrait pas : le rôle du fichier /etc/shells est de reconnaître les
vrais shells, justement.
Avatar
Toxico Nimbus
Le 28/04/2010 14:22, appzer0 a écrit :

Il est possible que ce soit la faute du script 'firefox', c'est un
"wrapper" qui exécute firefox-bin.sh ou quelque chose dans ce goût-là,
possible que ton sudo ne passe pas l'étape 'firefox', alors que c'est
'firefox-bin.sh' qui devrait être lancé par l'utilisateur 'firefox' (de
tête, je n'ai rien vérifié).



C'est peut-être un peu simpliste, mais mettre firefox-bin avec un id
firefox et un setuid ne ferait-il pas l'affaire ?

--
Toxico Nimbus
Avatar
Nicolas George
Toxico Nimbus wrote in message
<4bd8422e$0$24818$:
C'est peut-être un peu simpliste, mais mettre firefox-bin avec un id
firefox et un setuid ne ferait-il pas l'affaire ?



Non, les binaires SUID gagnent des droits mais n'en perdent pas à moins de
le faire exprès.
Avatar
Yannick Patois
Le 27.04.2010 18:49, Yliur a écrit :
Et quand je tape
sudo -u firefox firefox



Essaie sux, sinon, tu vas au devant de gros problèmes avec X.

Yannick

--
_/ Yannick Patois ___________________________________________________
| web: http://feelingsurfer.net/garp/ | Garp sur irc undernet |
| email: | |
Avatar
Toxico Nimbus
Le 29/04/2010 10:57, Yannick Patois a écrit :
Le 27.04.2010 18:49, Yliur a écrit :
Et quand je tape
sudo -u firefox firefox



Essaie sux, sinon, tu vas au devant de gros problèmes avec X.



Dans la même lignée, y'a pas un gksudo ?

--
Toxico Nimbus
1 2