web-dev-qa-db-fra.com

Un problème d'autorisation sur le dossier / media / utilisateur m'empêche d'accéder à un média externe

Lorsque je connecte mon disque dur externe, insère un DVD ou tente de voir ce que j'ai sur mon lecteur USB, il en résulte un comportement particulier.

Les systèmes de fichiers montent bien. Lorsque je me connecte en tant que root via Sudo su, je peux voir parfaitement le contenu du /media/casper/externaldrive. Cependant, mon utilisateur, casper, ne le peut pas. Ubuntu répond à chaque action impliquant l'emplacement Permission denied:

casper@casper-desktop:/media$ ll /media/casper/externaldrive
ls: cannot access '/media/casper/externaldrive': Permission denied

J'ai décidé de creuser un peu la permission (problèmes) du dossier /media. En tant que casper, je vois ce qui suit:

casper@casper-desktop:/media$ ls -alF
total 16
drwxr-xr-x  4 root root 4096 apr 21 17:47 ./
drwxr-xr-x 25 root root 4096 jul 29 15:43 ../
drwxr-x---  3 root root 4096 aug  3 21:02 casper/
lrwxrwxrwx  1 root root   45 apr 21 17:47 .directory -> /etc/kubuntu-default-settings/directory-media
lrwxrwxrwx  1 root root   42 apr 21 17:47 .hidden -> /etc/kubuntu-default-settings/hidden-media
drwxr-xr-x  2 root root 4096 feb 29 23:56 home/

Ce qui m'a frappé, c'est que le code indique total 16, alors qu'il n'y en a que 6 au maximum. J'ai donc à nouveau exécuté la commande, mais sous le nom root. Le résultat était le même, bizarre. (est-ce que quelqu'un peut m'éclairer à ce sujet?)

Quoi qu'il en soit, ce qui m'a le plus frappé est que le répertoire /media/casper n'est pas le mien et que je ne peux pas non plus y accéder. Je me suis laissé tenter par chown -R les bazinkas, mais après avoir réussi à me maîtriser, j'ai cherché quelque chose comme Google: "Dossier de l'utilisateur multimédia, pas le mien, aide-moi".

Cela a pris un certain temps mais je suis finalement tombé sur this fil, où les utilisateurs expliquent le rôle des dossiers 750 root:root /media/user. Il s'assure que seul root peut monter, afficher et gérer des systèmes de fichiers, dont les autorisations individuelles sont modifiées pour l'utilisateur réel.

Donc, si mes informations étaient correctes, les autorisations /media/casper/externaldrive devraient m'être favorables. J'ai vérifié,

root@casper-desktop:/media/casper# ll
total 12
drwxr-x--- 3 root   root   4096 aug  3 21:02 ./
drwxr-xr-x 4 root   root   4096 apr 21 17:47 ../
drwxrwxrwx 1 casper casper 4096 aug  3 20:20 externaldrive/

Et cela semble être le cas.

Donc c'est ici que je suis coincé. Le système de fichiers a des autorisations pour moi tout au long de l'arborescence, mais je ne peux pas accéder à un seul fichier. C'est la même chose pour les CD et les clés USB.

Qui peut m'aider à accéder à mon précieux?

Oh, et au fait. Le fil mentionné ci-dessus parle d'ACL sur ces dossiers /media/user, indiqué par un + après les autorisations habituelles, comme drwxr-x---+ 3 root root. Mon système ne montre pas cela. Est-ce que ACL sur ces dossiers est standard pour Ubuntu ou l’utilisateur a-t-il des tâches spéciales à faire et devrais-je craindre que c’est de là que vient mon problème?

Merci d'avoir lu.

10
MicroParsec

Depuis les permissions et la propriété de /media/casper sont

drwxr-x---  root root 

Sans + pour les ACL ( Listes de contrôle d'accès ), il est clair que seul root peut ouvrir, entrer, lire ou écrire dans ce répertoire. Les utilisateurs modestes comme nous obtiennent les autorisations à la fin de la chaîne --- :(

Les personnes non privilégiées ont la permission d'accéder à cet emplacement avec des ACL. Je ne sais pas pourquoi vous ne les avez pas déjà, mais vous pouvez les configurer, ce qui peut être simple ou nécessiter un peu de bricolage:

  • le package aclest requis (cochez apt-cache policy acl)
  • le système de fichiers doit être monté avec l'option aclname__

Pour vérifier ce dernier (remplacez sdxYde manière appropriée pour votre partition racine):

Sudo tune2fs -l /dev/sdxY | grep "Default mount options:"

devrait retourner:

Default mount options:    user_xattr acl

Les options de montage par défaut sont définies dans /etc/mke2fs.conf

Ils peuvent être remplacés, alors vérifiez:

cat /proc/mounts | grep sdxY

ressemble à quelque chose comme:

/dev/sdxY / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

Ce qui précède convient, (acln'a pas besoin d'être mentionné), mais s'il indique noaclname__, vous devez le changer.

Vous pouvez ajouter l'option aux options de montage par défaut comme ceci:

Sudo tune2fs -o acl /dev/sdxY

Vous pouvez également ajouter aclaux options de la ligne de partition racine dans /etc/fstab, par exemple:

UUID=whatever /     ext4    errors=remount-ro,acl    0       1

Avec les ACL activés, utilisez setfaclpour ajouter des autorisations pour vous-même. Pour donner à usernamedes autorisations de lecture et d'exécution sur/media/casper (vous devez disposer d'une autorisation d'exécution pour entrer dans un répertoire ou effectuer une recherche dans son contenu):

Sudo setfacl -m u:username:rx /media/casper

Vous pouvez remplacer usernamepar uid (vous êtes probablement 1000 - vérifiez avec la commande idname__)

Sudo setfacl -m u:1000:rx /media/casper

pour voir les autorisations ACL que vous utilisez getfaclcomme Oli l'a fait dans sa réponse

getfacl /media/casper

Pour supprimer les autorisations ACL d'un utilisateur

Sudo setfacl -x u:username /media/casper

Pour effacer toutes les autorisations ACL

Sudo setfacl -b /media/casper

Remarque: j'ai triché et posé moi-même une question sur les raisons pour lesquelles il y a tant d'entrées dans /media. La réponse est ici

14
Zanna

Lorsque vous souhaitez accorder une autorisation d'accès à un lecteur Windows à partir d'Ubuntu

La commande normale chmod ne fonctionnera pas s'il s'agit d'un lecteur Windows NTFS.

Ce qui suit fonctionne pour moi.

Ouvrez le fichier /etc/mtab:

gedit /etc/mtab

Recherchez le nom du lecteur dans ce fichier (passez simplement la souris sur le lecteur pour lequel vous cherchez une solution, dans mon cas, l'interface graphique affiche un nom différent et sur celle-ci, /media/user-name/drive-name).

Maintenant dans /etc/mtab:

Recherchez le nom de lecteur dans le fichier et vérifiez à quel lecteur votre lecteur monté est affecté (dans mon cas, /dev/sda4)

Maintenant montez ce disque avec:

Sudo ntfs-3g /dev/sda4 /media/"$USER"

Maintenant, je peux exécuter mes exécutables, mais je ne pourrai pas voir le contenu de nom-lecteur, alors je démonte le lecteur et le monte à nouveau.

2
Hridaynath