Wine, root et sécurité

Salut à toutes et à tous !

Je suis actuellement en train d’écrire un tutoriel pour installer la version GOG de Planescape: Torment pour une utilisation multi-utilisateurs sous GNU/Linux.
La version actuelle peut se trouver ici :
baldursgateworld.fr/lacouron … linux.html

Je m’interroge sur un des scripts qui installe le jeu via Wine en root, particulièrement sur la sécurité de celui-ci.
Si vous pouvez me donner votre avis sur la sécurité de ce script je vous offre ma gratitude :

export WINEARCH=win32 export WINEDEBUG=-all export WINEPREFIX=/root/.wine-prefixes/pstorment mkdir -p /root/.wine-prefixes/pstorment if ! [ -f /root/.Xauthority ]; then cp /home/*/.Xauthority /root touch /root/Xauthority-tmp fi wineboot --init cd /root/.wine-prefixes/pstorment/dosdevices rm d\:\: z\: ln -s /usr/local/games d\: wget http://winetricks.org/winetricks chmod a+x winetricks ./winetricks gdiplus rm winetricks cd /usr/local/games cp /home/*/setup_planescape_torment_*.exe . mkdir pstorment wine setup_planescape_torment_*.exe if [ -f /root/Xauthority-tmp ]; then rm /root/.Xauthority /root/Xauthority-tmp fi cd pstorment wine setup-ddrawfix.exe

Le point qui me pousse à m’interroger est l’ajout/suppression du fichier /root/.Xauthority.

Merci !


J’ai édité le script pour en enlever la copie de .Xauthority et ajouté une indication indiquant que la connexion root doit se faire via sux :

export WINEARCH=win32 export WINEDEBUG=-all export WINEPREFIX=/root/.wine-prefixes/pstorment mkdir -p /root/.wine-prefixes/pstorment wineboot --init cd /root/.wine-prefixes/pstorment/dosdevices rm d\:\: z\: ln -s /usr/local/games d\: wget http://winetricks.org/winetricks chmod a+x winetricks ./winetricks gdiplus rm winetricks cd /usr/local/games cp /home/*/setup_planescape_torment_*.exe . mkdir pstorment wine setup_planescape_torment_*.exe cd pstorment wine setup-ddrawfix.exe

Le script est mal fait, par exemple il coincera chez moi ou sur toute machine ayant plusieurs utilisateurs.

La recopie du fichier .Xauthority d’un utilisateur (supposé unique dans ce script) sur /root permet d’utiliser une application graphique sous root via su par exemple. Il y a d’autres méthodes (sux, gsudo, etc que je ne connais pas bien). Installer un jeu windows sous root me parait un non sens.

En effet, je me suis emmêlé sur le comportement de cp pour la mise en place du fichier .Xauthority…
Je ne vois pas comment le mettre en place autrement, mais je vais réfléchir sur ce point.

Pour ce qui est de l’installation sous root, elle sert à installer le jeu globalement (sous /usr/local/games), ce qui permet par la suite un accès multi-utilisateur avec chaque utilisateur bénéficiant de sa configuration locale (réglage du jeu et mods).

L’alternative à l’installation en root que j’avais proposé à l’origine sur le forum où j’ai posté ce tutoriel était un changement de groupe du répertoire /usr/local/games (de staff vers games) et de droits pour permettre l’écriture aux membres de ce groupe. Mais cette manipulation a été jugée trop “lourde” pour l’installation d’un jeu.

L’objectif final serait que l’installation génère un paquet .deb (peut-être via checkinstall).
De cette façon un script complet à lancer via un utilisateur (dont ce tuto peut être vu comme un brouillon) prendrait l’installeur comme argument et recracherait un paquet .deb (ou .rpm, ou …) prêt à l’installation par root.

Je te suggère de regarder ceci partage-prefixe-wine-wine-avec-plusieurs-utilisateurs-t37736.html

Ça répond à ton problème.

J’ai édité le script, cf. premier message.

Le système de préfixe partagé grâce au Wine patché fonctionnerait sûrement, je vais y jeter un oeil.
Mais j’aurai voulu éviter de devoir utiliser un autre Wine que celui proposé dans les dépôts de la distribution (le patch sauterait à la mise-à-jour de Wine, et ce tuto ne s’adresse pas à des personnes maîtrisant leur distribution).

Je pense que la meilleure solution dans mon cas serait de me concentrer dès maintenant sur la création du paquet, qui permettrait d’exécuter l’installation en utilisateur et de n’utiliser root que pour l’installation du paquet.

Bon, j’ai complètement réécrit le guide en le débarrassant de tous ses appels absurdes à root.
Toute la partie concernant Wine est mainenant réalisée côté utilisateur et sert à créer des paquets .deb.

C’est quand même bien moins crade que ce que j’ai posté dans ce fil :unamused: