Montaje de una carpeta de Windows con permisos de escritura en Ubuntu

17

Aparentemente, la respuesta está aquí: /superuser/251537/mount-specific-ntfs-directory-on-linux, sin embargo, no funciona como se esperaba.

Tengo un sistema de arranque dual con Windows 7 y Ubuntu 13.04 (actualizado desde 12.10), y quiero acceder a mis carpetas personales de Windows 7 para leer y escribir. Seguí las instrucciones de acuerdo con el enlace dado y mi /etc/fstabarchivo se ve así:

/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

Casi funciona como se esperaba. Mi partición de Windows está activada /media/windows/con permisos de solo lectura y mi carpeta personal de Windows está activada ~/Windows. Sin embargo, esta carpeta personal también es de solo lectura.

Tenga en cuenta que estoy configurando esto en un entorno multisesión, por lo que necesito que funcione para mi sesión y para las sesiones de otros usuarios. Necesito que cada usuario pueda acceder y poder escribir y leer sus carpetas de Windows desde Linux.

Carlos Eugenio Thompson Pinzón
fuente
¿Hay alguna manera de cambiar y probar las configuraciones sin tener que reiniciar todo el sistema? Hasta ahora he intentado cambiar umask (a 0002), agregando parámetros uid y gid, etc. sin resultados positivos, pero cada cambio requiere un apagado del sistema.
Carlos Eugenio Thompson Pinzón
Le había otorgado la recompensa de 100 a totti por la idea o montar la partición debajo /root/(que está funcionando). Mi solución actual utiliza los consejos proporcionados por falconer, ajThapa, totti y yilmi, ninguno de ellos funciona como se esperaba en la pregunta original (las protecciones no son suficientes), pero funciona (los usuarios tienen acceso a sus datos). Todas estas respuestas mencionadas fueron votadas.
Carlos Eugenio Thompson Pinzón

Respuestas:

6

La pregunta de superusuario vinculada anterior es para montar la partición y el subdirectorio en modo de solo lectura . Solo necesita el subdirectorio (carpeta personal) para leer y escribir.

Primero verifique que su sistema pueda montar la partición ntfs en modo lectura-escritura

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

Ahora pruebe si el fs montado es grabable. Si no, deténgase aquí y haga otra pregunta en este sitio.

El problema es que el subdirectorio de una partición montada en RO no puede estar en RW. Entonces, la solución es montar la partición de Windows en RW en un lugar oculto e inaccesible. Así que vamos a montarlo en / root / win, que es inaccesible para usuarios no root (sin sudo)

Como usuario root , siga los
pasos
1. Monte la partición de Windows en RW

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

2. Atarlo

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

3. Enlace una instancia de solo lectura de la partición de Windows

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

Ahora todo debería estar bien. Además, puede desmontar la partición de Windows, pero le advierto que en algunos sistemas hará que la carpeta (@home) sea inaccesible. El código esumount /root/win

Alternativamente, puede montar la partición de Windows en RW en / media / windows (en lugar de / root / win) e inmediatamente vincularlo en el mismo punto de montaje (/ media / windows) para que nadie (ni siquiera root) pueda escribir en el partición (pero en la carpeta del usuario).

totti
fuente
Funciona ? ¿Cuál es el problema?
totti
La primera parte, el montaje de rw en / media / windows parece funcionar, aunque no informa de los permisos de w, realmente puedo tocar y editar archivos.
Carlos Eugenio Thompson Pinzón
Al volver a montar me sale el siguiente error:Remounting is not supported at present. You have to umount volume and then mount it once again.
Carlos Eugenio Thompson Pinzón
Creo que es el problema de tu sistema. He probado esto con éxito en ubuntu 12.10. Nunca veo ese error incluso en Ubuntu 10.04. Puede probarlo en un sistema en vivo (ya que parecía haber actualizado el sistema operativo).
totti
Gracias +1 de mi parte, también, por una solución elegante y una explicación muy clara. Especialmente me gusta el truco para montar la carpeta de usuario para que uno (incluso root) pueda escribir en otra carpeta que no sea la de usuario. De hecho, esa es la mejor solución, ya que ninguna instancia de sistema operativo que no sea la instancia de Windows 8.1 a la que pertenecen los archivos del sistema tiene negocios que acceden a esos archivos del sistema. Sin embargo, los datos compartidos son una historia diferente.
Bill The Ape
5

Dudo que la respuesta del superusuario vinculado sea funcional. (Aunque no puedo probarlo.) De man mount:

Tenga en cuenta que las opciones de montaje del sistema de archivos seguirán siendo las mismas que en el punto de montaje original, y no se pueden cambiar pasando la opción -o junto con --bind / - rbind. Las opciones de montaje se pueden cambiar mediante un comando de montaje por separado, por ejemplo:

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

También dudo que sea posible --rbindformar parte de un sistema de archivos con un controlador de sistema de archivos diferente (ntfs vs ntfs-3g).

Cuando rbindel comando mount ignora todas las opciones, nada se convertirá en lectura-escritura. Y debido a que el controlador kernel ntfs no admite escrituras, obviamente la rwopción tampoco ayudará con eso. Use el controlador ntfs-3g.

Básicamente, lo que debe hacer es esto (en una 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

(Creo que eso --rbindtambién es innecesario, --binddebería ser suficiente).

Y con respecto al comentario bajo la pregunta: Por supuesto, no tiene que reiniciar el sistema para las pruebas, solo use el mountcomando como lo hice anteriormente. (Y desmontar con el umountcomando).

Después de confirmar que esto funciona según lo previsto, simplemente modifique el montaje y agregue las opciones que desee: uid, gid, umask, etc.

halconero
fuente
Bueno, puedo probar usando mount, sin embargo, cuando encuentre la configuración de trabajo, querré hacerlo automáticamente, ya sea /etc/fstabpor cualquier otro medio. (Con la pregunta Ob: ¿cómo traduzco los mountcomandos en fstabparámetros?)
Carlos Eugenio Thompson Pinzón
@ CarlosEugenioThompsonPinzón El fstabes solo un archivo que el mountcomando analiza secuencialmente al inicio. Pero creo que Ubuntu no usa mountsino mountallal inicio, lo que puede no ejecutar los comandos en fstab secuencialmente. Entonces, sí, poner estos parámetros de comando simplemente a fstabpodría no funcionar. Pero siempre puede poner simplemente los comandos de montaje de trabajo en un script de inicio (p /etc/rc.local. Ej. ) O hacer un trabajo inicial desde ellos. Lo más importante en su caso es encontrar un esquema de montaje que funcione, hacer que el montaje automático al inicio sea un trabajo fácil.
cetrero
@ CarlosEugenioThompsonPinzón Oops Me perdí la última pregunta de tu comentario. Entonces, ¿cómo se traducen los comandos de montaje a fstab? Puedes buscarlo aquíman mount o aquí . Historia corta: primer campo: dispositivo para montar, segundo campo: punto de montaje, tercer campo: tipo fs (más precisamente controlador fs), cuarto campo: opciones de montaje, el otro campo ahora es menos importante. Entonces, desde el comando de montaje, la cadena que escribimos detrás -tva en el tercer campo, la cadena que escribimos -ova al cuarto campo.
cetrero
3

A ver si esto ayuda ...

Si sda1ya está montado en /media/windows, puede desmontarlo con:

sudo umount /media/windows

Luego cree el directorio windowsen /media/:

sudo mkdir /media/windows

Edite el /etc/fstabsiguiente:

/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

( Nota : cambie los valores de uid y gid para el usuario. Para obtener el uid y gid de un usuario, puede usar el comando id -u usernamey la id -g usernamerespuesta).

Ahora puede montarlos con el comando:

sudo mount -a

Ahora vaya a los directorios reencauchados y vea si puede editar el archivo. Y deberías haber terminado.

preciso
fuente
De acuerdo, tengo permisos rw en /media/windows(no se informa ls, pero puedo editar archivos) como root, sin embargo, en los directorios locales que necesito sudopara modificar los archivos.
Carlos Eugenio Thompson Pinzón
... y ahora todos los directorios montados me pertenecen (usuario 1000), desde /media/windowshasta /home/someotheruser/Windows.
Carlos Eugenio Thompson Pinzón
Supongo que ahora usted y otros usuarios pueden hacer y guardar trabajos en el resp. puntos de montaje en $ HOME de los usuarios ... si el resto de los usuarios aún no pueden tener acceso RW, agréguelos a su grupo (probablemente con el gid 1000)
preciso
Actualmente tengo un grupo al que están conectados todos los usuarios locales, y estoy otorgando permisos de escritura a ese grupo. Esto resuelve que "cada usuario tiene acceso a sus propios datos" pero la partición completa y los datos de otros usuarios no están protegidos.
Carlos Eugenio Thompson Pinzón
3

Haga todas sus pruebas antes de editar su archivo de configuración fstab.

Bueno, probablemente sepa que el sistema de archivos ntfs se monta automáticamente en solo lectura si el sistema de archivos se marca como sucio. Lo que debe hacer primero antes de intentar cualquiera de las respuestas es montar el disco en Windows y ejecutar chkdsk antes de intentar montarlo nuevamente.

Además, si el montaje en rw sigue fallando, debe intentar montar con diferentes opciones de tipo de montaje, como sudo mount -t ntfsosudo mount -t ntfs-3g

Una vez que fs esté montado en rw, puede hacer lo siguiente:

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

o

sudo gksu nautiluso sudo gksu dolphinpara abrir un explorador con sus derechos

yilmi
fuente
Gracias por la que chkdsk. De hecho, hubo algunas corrupciones en la partición NTFS, y ahora puedo escribir en la unidad montada con sudo.
Carlos Eugenio Thompson Pinzón
2

¿Por qué no intentar montarlo con el atributo de lectura y escritura rw :?

/ dev / sda1 / media / windows ntfs rw , umask = 0222, valores predeterminados 0 0

usuario189541
fuente
Comprobaré, sin embargo, preferiría tener toda la partición de solo lectura y solo algunas carpetas específicas como lectura-escritura.
Carlos Eugenio Thompson Pinzón
No funcionó Tanto la partición como las carpetas siguen siendo de solo lectura. La única diferencia es que chmod y chown no fallan al informar un error de solo lectura: simplemente no funcionan.
Carlos Eugenio Thompson Pinzón
2

Sin embargo, no estoy muy seguro, ¿puedes probar esto por favor? Después de montar la unidad, dé el siguiente comando en el terminal

sudo gksu nautilus

ingrese su contraseña administrativa y en la ventana gráfica que se abre, debería poder hacer clic en la unidad y cambiar los permisos de lectura / escritura.

Hazme saber si esto funciona. Hay ayuda disponible para el uso de nautilus con interfaz gráfica con privilegios de root.

KSR
fuente
Esto permitiría el acceso a los archivos y que podrían ser copiado fuera así, pero los permisos de sólo lectura no puede ser cambiado, ya que los sistemas de ficheros que no es Unix se montan como de sólo lectura ...
Wilf
1

Yo recomendaría usar sudo chmod.666 ~ / Windows

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

usuario1553176
fuente
1
No puedo cambiar el permiso o el propietario (incluso con sudo). Rechaza el comando que dice que el sistema es de solo lectura. Ni siquiera en /media/windows/cuál es toda la partición (y cuál no sería el comportamiento esperado)
Carlos Eugenio Thompson Pinzón
Probablemente estoy equivocado, pero a veces sudo no tiene permisos que la raíz tendría. Intente ejecutar sudo su y luego chmod
virtualxtc
0

La forma más fácil de montar Windows como lectura-escritura es simplemente reiniciarlo o apagarlo por completo. La partición NTFS hiberna cuando se utiliza "apagado rápido". Este principio se trata con mayor detalle en este enlace.


fuente