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?
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