web-dev-qa-db-fra.com

Comment accéder aux systèmes de fichiers montés en tant qu'utilisateur invité?

Dans Ubuntu 11.04, je pouvais monter un système de fichiers dans/media/foo et exécuter chown guest:guest /media/foo/bar -R et avoir un accès complet au compte invité. Après la mise à niveau vers 12.04, j'ai modifié ma routine pour refléter les nouveaux noms d'utilisateur invités (chown guest[id]:guest[id] /media/foo/bar -R), mais je ne peux toujours pas y accéder en tant qu'invité, car je ne dispose pas des privilèges d'accès à/media en tant qu'invité:

ls: impossible d'ouvrir le répertoire/média: permission refusée

(Très intéressant, cela fonctionne si je su dans le compte invité en tant que root). Je comprends que cela est conçu comme un mesure de sécurité mais je ne vois pas comment cela se fait. ls -l / rapports

drwxr-xr-x  11 root root  4096 Sep  9 22:28 media

Ainsi, mes deux questions: comment fonctionne cette restriction et comment puis-je accéder à un système de fichiers monté en tant qu'utilisateur invité, idéalement sans permettre l'accès à tous les autres systèmes de fichiers montés?

5
Perseids

L'accès à /media est limité par le profil AppArmor /etc/apparmor.d/lightdm-guest-session. Il y a deux exceptions (lignes 31 et 32):

 owner /media/ r,
 owner /media/** rmwlixk,  # we want access to USB sticks and the like

Cela permet l'accès si /media/foo appartient à guest [id], qui est la première alternative pour résoudre mon problème. L'inconvénient est que le compte invité peut créer des répertoires et des fichiers arbitraires à la racine de/media/foo. J'ai décidé de faire explicitement un trou pour /media/foo/bar et j'ai ajouté les lignes:

 owner /media/foo/bar rw,

Vous trouverez une description de la syntaxe ici: http://doc.opensuse.org/documentation/html/openSUSE/opensuse-security/cha.apparmor.profiles.html

À ma connaissance, cela permet uniquement à la session invité d'accéder à /media/foo/bar et uniquement si guest [id] est le propriétaire de bar. Notez que l'invité [id] ne peut toujours pas accéder à /media/foo lui-même. Ainsi, ls /media/foo échouera, mais ls /media/foo/bar fonctionnera.

Enfin recharger le profil pour que les modifications prennent effet:

 Sudo apparmor_parser -r /etc/apparmor.d/lightdm-guest-session
5
Perseids