Monte la partición NTFS al inicio, con el usuario no root como propietario


28

Actualmente estoy montando una partición NTFS al inicio usando la siguiente línea en / etc / fstab:

/dev/sda3        /media/data           ntfs      nls=iso8859-1,umask=000

Para mi instalación de Ubuntu 11.10, parece que todos los archivos y carpetas son propiedad de root, y dado que NTFS realmente no admite el mismo sistema de administración de derechos, no hay forma de que pueda cambiarlo una vez que se complete el montaje. No importa lo que haga, en ls -lcualquier lugar de la partición NTFS se enumerarán todos los archivos y carpetas que sean de su propiedad root:root.

Sin embargo, esto me causa algunos problemas. En particular, algunas aplicaciones que se ejecutan en mi cuenta (llamada tomas) se quejan de los derechos de acceso. Además, cada vez que intento copiar ( cp) o mover ( mv) archivos de una de mis particiones ext3 a la partición NTFS, recibo mensajes de error que dicen

mv: preserving times for `[path to new file]`: Operation not permitted

o, de manera similar

mv: preserving permissions for ...

¿Montar la partición en mi nombre en lugar de la ayuda de root? Si es así, ¿cómo lo logro en fstab?


Actualizar:

Ahora he cambiado las opciones de acuerdo con las sugerencias, y llegué a esto:

nls=iso8859-1,permissions,users,umask=000,uid=tomas,gid=tomas

ls -lahora muestra todos los archivos que poseo en lugar de root, y parece que algunos de los problemas que tenía antes están resueltos. Sin embargo, no todos ellos.

Cuando inicio Eclipse, aparece el error de que no se puede ejecutar un archivo relacionado con Android-SDK: permiso denegado. ls -lme dice lo siguiente sobre el archivo:

-rwxrwxrwx 1 tomas tomas 159620 2011-11-29 14:50 adb*

Esto se ve como yo quiero. Pero si trato de ejecutarlo ( ./adben un terminal) también obtengo errores de permiso denegado. Pero si lo ejecuto sudo, funciona (creo, al menos no me da un mensaje de error, pero no me da ningún resultado, lo que creo que no debería ...)

¿Por qué el archivo anterior, con permisos de ejecución para cualquier persona , aún no es ejecutable por nadie más que root? ¿Cómo cambio la forma en que monto el sistema de archivos?


Actualización 2:

Bien, ahora he llegado un poco más lejos. Al montar con estas opciones

nls=iso8859-1,permissions,users,auto

Obtuve todos los permisos configurados de la manera que espero, chowny chmodrealmente cambié la configuración de los archivos (al menos según ls -l) = D

PERO mi sistema todavía se comporta de una manera extraña. Los permisos para el adbarchivo de script aparecen como arriba, pero ni yo ni Eclipse podemos ejecutarlo sin errores de "Permiso denegado". Pero por lo que puedo ver, el archivo tiene todas las banderas requeridas establecidas ( o=rwxdebería ser suficiente, ¿verdad?). ¿Por qué no funciona?


Actualización 3

OK, tengo todo funcionando en el lado de Ubuntu, con las siguientes opciones:

nls=iso8859-1,permissions,users,auto,exec

Sin embargo, cuando intento acceder a los archivos en la partición desde Windows, la configuración de seguridad está en mal estado. En todos los archivos (de los pocos que he examinado), Account Unknown(long GUID)se ha agregado una nueva cuenta llamada a la lista de usuarios, y tiene todos los derechos. Los derechos para la mayoría de los demás usuarios se reducen, por lo que no tengo derechos para hacer las cosas que espero. En particular, "Todos" ya no parece tener derecho a "Recorrer carpeta / ejecutar".

Esto podría resolverse simplemente seleccionando la partición y permitiendo a Todos hacer cualquier cosa en la carpeta raíz, y luego decirle que lo haga de forma recursiva, pero prefiero no hacerlo, ya que me temo que llevará días completarlo ...


2
A partir de montaje (8) : users Allow every user to mount and unmount the filesystem. This option implies the options noexec, ... unless overridden by subsequent options, as in the option line users,exec,dev,suid). Por lo tanto, agregue execa sus opciones y creo que el problema de permiso denegado para la ejecución debe resolverse.
benwh

¿Alguna vez resolvió esto después de la Actualización 3? ... En un momento intenté hacer una copia de seguridad rsync de mi sistema Linux en una unidad ntfs adicional que tenía, pero después de una gran búsqueda, llegué a la conclusión de que nunca podría poner toda la información del sistema de archivos de Linux en un ntfs fs. (Bueno, tal vez podría acercarme como lo ha hecho anteriormente, pero al final Linux no se asigna muy bien a NTFS.)
Vista elíptica

@Elipticalview: Esto fue hace mucho tiempo, y ya no tengo la misma computadora. ¿Intentaste la respuesta aceptada?
Tomas Aschan

Respuestas:


25

En la columna de opciones, agregue permissionsy auto(y probablemente usero users)

nls=iso8859-1,permissions,users,auto
  • permissions: (Opción NTFS-3G) Establezca permisos estándar en archivos creados y use control de acceso estándar.
  • auto: Se montará en el arranque y desde mount -a
  • user: Permitir que un usuario normal monte el sistema de archivos
  • users: Permitir que cada usuario monte y desmonte el sistema de archivos

Luego cambie la propiedad del sistema de archivos:

sudo chown -R thomas:thomas /media/data 

Mi linea en /etc/fstab

/dev/sda5 /media/ntfs ntfs-3g users,permissions,auto 0 0

Montar y enumerar permisos

sudo mount /media/ntfs
Using default user mapping

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 root root 4096 2012-01-04 17:08 ntfs

Cambiar la propiedad y enumerar nuevos permisos

bodhi@ufbt:~$ sudo chown bodhi:bodhi /media/ntfs

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 bodhi bodhi 4096 2012-01-04 17:10 ntfs

Por defecto, ntfs-3g monta la partición noexec, nosuid y nodev.

  • noexec: No permita la ejecución directa de ningún binario en el sistema de archivos montado.
  • nosuid: No permita que los bits set-user-identifier o set-group-identifier tengan efecto.
  • nodev: No interprete caracteres ni bloquee dispositivos especiales en el sistema de archivos.

Para anular esto y permitir la ejecución de archivos, use exec

/dev/sda5 /media/ntfs ntfs-3g exec,permissions,auto 0 0

Ahora tenemos

bodhi@ufbt:~$ ls -l /media/ntfs

-rwx------ 1 bodhi bodhi 28 2012-01-04 17:16 file

bodhi@ufbt:~$ /media/ntfs/file
It works

Hm ... después de agregar eso a fstab (haciendo que la columna de opciones hte sea la siguiente nls=iso8859-1,permissions,users,umask=000:) y reiniciar, ahora puedo mover y copiar archivos sin mensajes de error. Sin embargo, todos los archivos siguen apareciendo como propiedad root:root, incluso después sudo chown -R tomas:tomas /media/data. No parece ser un problema por ahora, pero por curiosidad: ¿por qué es eso?
Tomas Aschan

Creo que debido a tuumask=000
Panther

No, umask=000es equivalente a chmod 777- umask define todos los indicadores que no desea establecer en los archivos. Estoy de acuerdo en que es contraintuitivo, pero todo está aquí: ubuntuforums.org/showpost.php?p=9092899&postcount=4
Tomas Aschan

He actualizado mi pregunta con más información sobre lo que he probado y los resultados.
Tomas Aschan

1
Hm ... tendré que desmarcar esto por el momento: resulta que esto estropeó los permisos al leer los archivos de Windows ...
Tomas Aschan

2

Use las opciones uidy gid(o use la función de mapeo de usuario) de mount.ntfs (8)


1
En otras palabras, agregue uid =
whoever

uidy gidtrabajo, pero los permisos ahora son compatibles con ntfs-3g, y esas opciones anulan la permissionsopción. Ver: b.andre.pagesperso-orange.fr/permissions.html
Panther

He actualizado mi pregunta con más información sobre lo que he probado y los resultados que obtuve. Por favor, eche un vistazo =)
Tomas Aschan

¿Puede actualizar su entrada fstab y eliminar su uid, gid y umask, simplemente nls=iso8859-1,permissions,users, desmonte y vuelva a montar la partición?
Panther

@ bodhi.zazen: Entonces volvemos al punto de partida. Los archivos aparecen como propiedad root:rooty Eclipse se queja de los permisos.
Tomas Aschan

2

El mío funciona ahora perfectamente cuando cambio la línea de fstab a

UUID=761C84B31C846FC3 /media/d        ntfs    defaults,umask=022,uid=1000 0       0

1

¿Qué hay de usar udisks? Puede montar fácilmente particiones NTFS con su usuario como propietario.

Ejemplo (escríbalo en la línea de comando):

/usr/bin/udisks --mount /dev/sda3

También puede agregar ese comando a las aplicaciones de inicio y se montará automáticamente cuando inicie sesión.

Referencia: AutomaticallyMountPartitions

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.