web-dev-qa-db-fra.com

Monter un dossier Windows avec des autorisations d'écriture dans Ubuntu

Apparemment, la réponse est la suivante: https://superuser.com/questions/251537/mount-specific-ntfs-directory-on-linux mais cela ne fonctionne pas comme prévu.

J'ai un système à double démarrage avec Windows 7 et Ubuntu 13.04 (mis à niveau à partir de la version 12.10) et je souhaite accéder à mes dossiers personnels Windows 7 à la fois en lecture et en écriture. J'ai suivi les instructions en fonction du lien donné et mon fichier /etc/fstab ressemble à ceci:

/dev/sda1 /media/windows ntfs ro,umask=0222,defaults 0 0
/media/windows/Users/MyUser/    /home/myuser/Windows    ntfs-3g rbind,user,umask=0222,defaults 0 0
/media/windows/Users/OtherUser/ /home/otheruser/Windows ntfs-3g rbind,user,umask=0222,defaults 0 0

Cela fonctionne presque comme prévu. Ma partition Windows est sur /media/windows/ avec des autorisations en lecture seule et mon dossier personnel Windows est dans ~/Windows. Toutefois, ce dossier personnel est également en lecture seule.

Remarque Je configure ceci dans un environnement multisession. J'ai donc besoin que cela fonctionne pour ma session et pour les sessions d'autres utilisateurs. J'ai besoin que chaque utilisateur puisse accéder et pouvoir écrire et lire ses dossiers Windows à partir de Linux.

La question superutilisateur liée ci-dessus concerne le montage de la partition et du sous-répertoire en mode en lecture seule . Il suffit que le sous-répertoire (dossier personnel) soit en lecture-écriture.

Commencez par vérifier que votre système peut monter ntfs partition en mode lecture-écriture.

mount -t ntfs-3g  -o rw /dev/sda1 /media/windows

Maintenant, testez si le fs monté est accessible en écriture. Sinon, arrêtez-vous ici et posez une autre question sur ce site.

Le problème est que le sous-répertoire d'une partition montée RO ne peut pas être en RW. La solution est donc de monter la partition Windows en RW dans un endroit caché et inaccessible. Montons-le donc sur /root/win inaccessible par les utilisateurs non root (sans Sudo)

En tant que root utilisateur, procédez comme suit.
Pas
1. Monter la partition Windows en RW

mount -t ntfs-3g -o rw /dev/sda1 /root/win  

2. Liez-le

mount --bind /root/win/Users/MyUser/  /home/myuser/Windows  

3. Lier une instance en lecture seule de la partition Windows

mount --bind /root/win /media/windows  
mount -o remount,ro /media/windows

Maintenant tout devrait bien se passer. De plus, vous pouvez démonter la partition Windows mais je vous préviens que dans certains systèmes, la partition liée (@home) sera inaccessible. Le code est umount /root/win

Sinon, vous pouvez monter la partition Windows en RW à l’adresse /media/windows (au lieu de/root/win) et la lier immédiatement au même point de montage. (/ media/windows) afin que personne (même racine) ne puisse écrire sur la partition (mais sur le dossier de l'utilisateur).

6
totti

Je doute que la réponse liée au super-utilisateur soit fonctionnelle. (Bien que je ne puisse pas l'essayer.) De man mount:

Notez que les options de montage du système de fichiers resteront les mêmes que celles du point de montage d'origine et ne peuvent pas être modifiées en passant l'option -o avec --bind/- rbind. Les options de montage peuvent être modifiées par une commande séparée de remontage, par exemple:

mount --bind olddir newdir
mount -o remount,ro newdir

Je doute également qu'il soit possible de --rbind une partie d'un système de fichiers avec un pilote de système de fichiers différent (ntfs vs ntfs-3g).

Lorsque vous rbind, la commande mount ignore toutes les options, ainsi rien ne deviendra en lecture-écriture. Et comme le pilote ntfs du noyau ne prend pas en charge les écritures, l’option rw ne l’aidera pas non plus. Utilisez le pilote ntfs-3g.

En gros, voici ce que vous devriez faire (dans un terminal):

mount -t ntfs-3g -o ro /dev/sda1 /media/windows
mount --bind /media/windows/Users/MyUser/    /home/myuser/Windows
mount -o remount,rw /home/myuser/Windows

(Je pense que --rbind est également inutile, --bind devrait suffire.)

Et en ce qui concerne le commentaire sous la question: Bien sûr, vous n'avez pas besoin de redémarrer le système pour effectuer des tests, utilisez simplement la commande mount comme je l'ai fait ci-dessus. (Et démontez-le avec la commande umount.)

Après avoir confirmé que cela fonctionne comme prévu, il vous suffit de modifier le montage et d'ajouter les options souhaitées: uid, gid, umask, etc.

5
falconer

Voyez si cela aide ...

Si sda1 est déjà monté sur /media/windows, vous pouvez le démonter avec:

Sudo umount /media/windows

Créez ensuite le répertoire windowsin /media/:

Sudo mkdir /media/windows

Editez le /etc/fstab comme ci-dessous:

/dev/sda1  /media/windows ntfs-3g  rw,nodev,noexec,auto,nouser,async,locale=en_US.utf8,uid=1000,gid=1000,umask=0002 0 0

/media/windows/Users/MyUser/  /home/myuser/Windows  ntfs-3g rbind,user,rw,nodev,noexec,auto,async,uid=1000,gid=1000,umask=0002 0 0

/media/windows/Users/OtherUser/  /home/otheruser/Windows  rbind,user,rw,nodev,noexec,auto,async,uid=1001,gid=1001,umask=0002 0 0

(Note: changer uid et gid valeurs comme pour l'utilisateur. Pour obtenir l'ID utilisateur et le gid d'un utilisateur, vous pouvez utiliser la commande id -u username et id -g username respectivement.

Maintenant, vous pouvez les monter avec la commande:

Sudo mount -a

Maintenant, allez dans les répertoires reliés et voyez si vous pouvez éditer le fichier. Et vous devriez avoir fini.

3
precise

Faites tous vos tests avant d’éditer votre fichier de configuration fstab.

Eh bien, vous savez probablement que le système de fichiers ntfs est automatiquement monté en lecture seule si filessystem est signalé comme étant sale. Ce que vous devez faire d’abord avant d’essayer une des réponses est de monter le disque dans Windows et d’exécuter chkdsk avant de tenter de le remonter.

De plus, si le montage dans rw échoue toujours, vous devriez essayer de monter avec différentes options de type de montage telles que Sudo mount -t ntfs ou Sudo mount -t ntfs-3g

ne fois que fs est monté dans rw, vous pouvez effectuer les opérations suivantes:

mount --bind /media/MOUNTPOINT/TARGETFOLDER /home/SHAREDDIRECTORY/mount -o remount,ro /home/SHAREDDIRECTORY/

ou

Sudo gksu nautilus ou Sudo gksu dolphin pour ouvrir un explorateur avec des droits su

3
yilmi

Pourquoi ne pas essayer de le monter avec les attributs read et write: rw?

/ dev/sda1/media/windows ntfs rw, umask = 0222, par défaut 0 0

2
user189541

Je ne suis pas tout à fait sûr cependant, pouvez-vous essayer ceci s'il vous plaît. Une fois le lecteur monté, exécutez la commande suivante sur le terminal.

Sudo gksu nautilus

entrez votre mot de passe administratif et dans la fenêtre graphique qui s’ouvre, vous devriez pouvoir cliquer sur le lecteur et modifier les autorisations de lecture/écriture.

Laissez-moi savoir si cela fonctionne. Une aide est disponible pour l’utilisation de Nautilus avec une interface graphique avec les privilèges root.

2
KSR

Je recommanderais d'utiliser Sudo chmod.666 ~/Windows

https://help.ubuntu.com/community/FilePermissions

1
user1553176

Le moyen le plus simple de monter Windows en lecture-écriture consiste simplement à le redémarrer ou à le fermer complètement. La partition NTFS est en veille prolongée lorsque "fermeture rapide" est utilisé. Ce principe est couvert plus en détail à ce lien.

0
user728899