Duplicate possible:
buntu a retiré les autorisations de ma partition de données
J'ai reformaté une partition NTFS sur mon système avec ext4 parce que je veux l'utiliser sur mon installation Ubuntu actuelle, et non sur Windows. J'ai ajouté une entrée à /etc/fstab
pour la monter au démarrage. Le point de montage est /home/username/bin
. J'ai changé le propriétaire de /home/username/bin
et tous ses sous-répertoires en mon compte habituel et son groupe d'utilisateurs. Enfin, j'ai défini toutes les autorisations sur 755.
Mon /etc/fstab
se présente comme suit:
proc /proc proc nodev,noexec,nosuid 0 0
UUID=[uuid] / ext4 errors=remount-ro 0 1
UUID=[uuid] /data vfat utf8,umask=007,gid=46 0 1
UUID=[uuid] /home ext4 defaults 0 2
UUID=[uuid] /home/username/bin ext4 rw,suid,dev,exec,auto,user,async 0 2
UUID=[uuid] none swap sw 0 0
Mon problème est maintenant que, bien que je sois capable de lire et d'écrire des fichiers sur cette nouvelle partition, je ne peux pas exécuter d'applications/programmes situés sur cette partition. En tant qu'utilisateur régulier, je reçois toujours une erreur "autorisation refusée". En tant que root (avec Sudo
), rien ne se passe, ce qui signifie que je suis immédiatement renvoyé à l'invite du shell. Les applications doivent produire une sortie textuelle ou des fenêtres ouvertes. Certaines de ces applications sont des binaires, d'autres des scripts. J'essaie de les lancer avec ./program
. Si je les recopie dans mon dossier personnel, je peux les exécuter sans problèmes.
En fait, j'ai gardé ces applications pendant des mois dans un autre sous-répertoire /home/username/apps
de mon dossier personnel et les ai exécutées à partir de là, sans aucun problème.
Comment puis-je réparer cela? Qu'est-ce que je fais mal? :)
Je l'ai résolu. Le problème était les options de montage dans /etc/fstab
. Les changer en defaults
(ce qui revient à changer user
en nouser
) résout le problème, tout fonctionne maintenant comme prévu.
Vous pouvez accéder aux fichiers de la partition ext4 que vous venez de créer, mais vous ne pouvez pas exécuter de programmes. Lorsque vous le faites, vous obtenez une erreur "autorisation refusée". Ceci suggère deux possibilités, car reverendj1 a suggéré :
Les fichiers peuvent ne pas avoir exécuter permissions . Pour donner à un fichier des autorisations d'exécution à partir de la ligne de commande, exécutez:
chmod +x filename
Si vous souhaitez simplement donner des autorisations d'exécution au propriétaire du fichier:
chmod u+x filename
Pour accorder à un fichier des autorisations d'exécution dans Nautilus (le navigateur de fichiers), cliquez avec le bouton droit de la souris sur le fichier, puis cliquez sur Propriétés . Cliquez sur l'onglet Autorisations . Cochez la case Autoriser l'exécution du fichier en tant que programme , puis cliquez sur Fermer .
La partition peut être montée avec noexec
. Pour vérifier cela, exécutez mount
et voyez si noexec
est répertorié à côté de l'entrée correspondante. Comme vous montez depuis /etc/fstab
, vous pouvez supprimer noexec
ici.
De plus, veuillez noter que:
Habituellement, mais pas toujours, les exécutables doivent être stockés aux endroits habituels: /bin
, /sbin
, /usr/bin
, /usr/sbin
/usr/local/bin
, /usr/local/sbin
, /opt/bin
, ~/bin
. Êtes-vous sûr de vouloir vraiment des exécutables sur ce lecteur? Vous voudrez peut-être modifier votre question pour fournir davantage d'informations sur ce que vous souhaitez accomplir.
Pour exécuter un programme à partir de la ligne de commande située dans le répertoire actuel en spécifiant son chemin relatif, vous devez le faire précéder de ./
:
./program
Si vous lancez un fichier .desktop
plutôt qu'une application, alors:
Vous ne devriez pas essayer de l'exécuter comme s'il s'agissait d'un script ou d'un programme, mais plutôt comme ceci :
xdg-open application.desktop
Si ce sont des exécutables Windows que vous exécutez avec Wine, il n'est pas nécessaire de définir le bit exécutable. Si ce n'est pas le cas, vous pouvez cliquer dessus avec le bouton droit de la souris et cliquer sur les ouvrir avec le Chargeur de programme Windows Wine ou les lancer à partir de la ligne de commande, comme suit:
wine program.exe
(Je vois que cela donne des conseils très similaires à ceux d'une réponse précédente, alors j'ai décidé de faire ceci community-wiki .)
Ignore this - La publication d'origine impliquait NTFS, mais ce n'est pas le cas.
Lorsque vous montez une partition NTFS, contrairement à ext3 ou ext4, elle est montée avec des autorisations définies uniquement pour l'utilisateur, où groupe et autre n'ont aucune autorisation (rwx ------). Définir les autorisations avec chmod ou le propriétaire avec chown changera uniquement les autorisations pour le répertoire, rien de ce qu'il y a dans le répertoire.
La solution consiste à spécifier les paramètres corrects dans /etc/fstab/
. Celles que j’utilise avec succès pour me rendre propriétaire sont les suivantes (remplacez 00500000000000 par l’UUID correct et remplacez LOGIN_NAME par votre nom de connexion):
UUID=0000000000000000 /home/LOGIN_NAME/bin ntfs-3g auto,users,uid=LOGIN_NAME,gid=LOGIN_NAME,utf8,dmask=002,fmask=113 0 0
Cela devrait tous être sur une seule ligne dans fstab.
La raison en est que les autorisations NTFS sont effectuées différemment des autorisations natives Linux, de sorte que certaines traductions doivent être spécifiées pour être utilisées par Linux.
Fin d'ignorer ceci -------------
EDIT:
Désolé pour la mauvaise direction.
Je pense que vous pouvez résoudre ce problème en changeant le propriétaire du répertoire ~/bin after le monter pour la première fois. Dans un shell bash, entrez la commande Sudo chown LOGIN_NAME:LOGIN_NAME /home/LOGIN_NAME/bin
, en remplaçant LOGIN_NAME par votre nom, bien entendu.
J'ai testé cela en utilisant un lecteur USB, et il s'est bien monté dans mon répertoire bin. La seule différence était que je n'utilisais que l'option "auto" dans fstab.
Je rencontrais des problèmes similaires: je ne parvenais pas à exécuter les scripts Shell stockés sur NTFS, même avec Sudo, même après avoir modifié fstab, comme décrit ci-dessus.
Il s’avère que je n’ai jamais créé le répertoire des points de montage. J'ai démonté la partition, créé le répertoire des points de montage pour la partition:
mkdir /media/Windoze7
puis monté à nouveau.
Sudo mount -a
Vous devez définir l'autorisation d'exécution. Dans Nautilus (le navigateur de fichiers), cliquez avec le bouton droit de la souris sur le fichier du programme, puis sélectionnez l'onglet Autorisations. Cochez la case "Autoriser l'exécution du fichier en tant que programme". Depuis le terminal, vous pouvez aussi faire:
Sudo chmod +x /path/to/myfile
Assurez-vous également que vous ne spécifiez pas noexec
pour la partition dans fstab, car cela désactivera l'exécution pour toute la partition.
Avez-vous essayé de monter cette partition ext4 quelque part en dehors de votre répertoire personnel? Par exemple, configurez son entrée dans/etc/fstab de la manière suivante:
UUID=[uuid] /ext4bins ext4 rw,suid,dev,exec,auto,user,async 0 2
Si vous parvenez à le monter ailleurs et à exécuter des fichiers et des applications, vous pouvez procéder à une deuxième étape pour obtenir le comportement souhaité, à savoir pouvoir exécuter des applications à partir de ~/bin, en créant un lien symbolique, comme suit:
ln -s /ext4bins /home/[username]/bin
Remplacez [nom d'utilisateur] par votre propre nom d'utilisateur, évidemment. Cela fera apparaître la partition montée dans/ext4bins dans/home/[nom d'utilisateur]/bin, et tant que les fichiers sont exécutables dans/ext4bins, vous pourrez également les exécuter via ~/bin. Par exemple.
/ext4bins/myscript.sh
se déroulera comme
~/bin/myscript.sh