Tengo un script que necesito ejecutar en una partición NTFS. El permiso del script está establecido en 600.
Intenté modificar los permisos ejecutando chmod 755 script.sh, lo que no informa una falla ni nada, pero tampoco cambia los permisos en el archivo:
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ xxxxxx) Gid: ( 1000/ xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700
$ chmod 755 script.sh
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ xxxxxx) Gid: ( 1000/ xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700
Como puede ver, permanece sin cambios.
permissions
ntfs
chmod
Nathan Osman
fuente
fuente

Respuestas:
El modo está determinado por las opciones de montaje de la partición (no puede cambiarlo a través de chmod).
Para '755' en archivos y '777' en directorios, usaría algo como
fuente
/dev/whatevery/mnt/whateversi tengo que cambiar el permiso de mi partición de disco duro llamado/media/Prtnntfs-3g.usermap. Ver abajo ...Al contrario de lo que la mayoría de la gente cree, NTFS es un sistema de archivos compatible con POSIXIX, y es posible usar permisos en NTFS .
Para habilitar esto, necesita un "Archivo de mapeo de usuario" o simplemente dar la
permissionsopción al montar (cuando no se necesita compatibilidad con Windows). Esto asigna usuarios de Linux en su sistema con las ID de usuario como NTFS / Windows los usa internamente.Consulte la página de manual de ntfs-3g para obtener información y algunos ejemplos. Si necesita más información, consulte la documentación avanzada ntfs-3g sobre propiedad y permisos .
(Tenga en cuenta que esto no funciona en los sistemas de archivos FAT).
¹ Sí, también puede almacenar nombres de archivo que son válidos en Linux / Unix pero no en Windows, admite enlaces simbólicos y enlaces duros, etc.
fuente
sudo ntfs-3g.usermap /dev/disk/by-label/MY-NTFSy luegosudo mv UserMapping /media/MY-NTFS/.NTFS-3G/chmod 655 /some/fileen la partición NTFS montada en Linux? Estoy tratando de descubrir cómo fusionar mi partición de inicio de Linux en c: \ Users. ¿Usar el mapa de usuario me permitirá retener todos los permisos? Estaba planeando montar el directorio c: \ Users en / home en linux.ntfs-3g manpageenlace rotoPara particiones NTFS, use la
permissionsopción en fstab.Primero desmonte la partición ntfs.
Identifique su UUID de partición con
blkidLuego edita
/etc/fstabY agregue o edite una línea para la partición ntfs
Hacer un punto de montaje (si es necesario)
Ahora monte la partición
Las opciones que le di
auto, montarán automáticamente la partición cuando arranque y lesuserspermitirá a los usuarios montar y desmontar.Luego puede usar chown y chmod en la partición ntfs.
fuente
usersimplica noexec , nosuid y nodev . no es? ¿Cómo pueden los usuarios montar / desmontar con lanoexecconfiguración?Además de configurar fmask y / o dmask en la respuesta anterior de htorque, si desea ejecutar scripts en la unidad, también tuve que configurar la opción de montaje "exec".
Entonces el ejemplo sería:
fuente
Siempre puede invocar explícitamente al intérprete de script, en cuyo caso no se requieren permisos de ejecución. Si el script usa bash , como puede verificarse mirando la primera línea del script, simplemente ejecute
Tenga en cuenta que el script llama a otros scripts o binarios en la misma partición, esto no funcionará. Tenga en cuenta también que la estrategia no funciona con archivos binarios en lugar de archivos de script textuales escritos en Bash Script, Perl, Python o similares.
fuente
/lib64/ld-linux-x86-64.so.2 ./program.binpara programas de 64 bits y/lib/ld-linux.so.2 ./program.binpara programas de 32 bits.De acuerdo con la sección de Propiedad y Permisos de la documentación de NTFS-3G, podemos usar las opciones de montaje para controlar el acceso y la creación de archivos . Las combinaciones son muy complicadas (ver las dos tablas allí). Además, no leo y los entiendo todos. Por ejemplo, no sé si las ACL POSIX se seleccionan en tiempo de compilación o no del paquete binario NTFS-3G. Pero lo mejor que he obtenido es usar un archivo de mapeo de usuario combinado con algunas opciones de montaje para aproximar un mapeo plausible de la propiedad del archivo y los permisos entre Windows y Linux.
Advertencia : Esto es solo lo que funciona mejor para compartir una partición de datos NTFS (unidad
D:en Windows) entre Windows 8 de arranque dual y Kubuntu 14.04. Las instrucciones se registran en una cuidadosa retrospección pero no se prueban a fondo. Es demasiado agotador y tedioso repetir todo el procedimiento nuevamente. Así que sígalo bajo su propio riesgo. Pero si lo hace, comparta su experiencia. Si decide seguir las instrucciones, léalo completamente para tener una imagen completa antes de actuar. ¡Buena suerte!Muy bien, aquí tienes! Las instrucciones detalladas constan de tres partes. La Parte 1 debe llevarse a cabo en Windows, mientras que la Parte 2 en Linux. La parte 3 es para prueba.
Parte 1
La sección Asignación de usuarios de la documentación de NTFS-3G especifica dos versiones para configurar la asignación de usuarios entre Windows y Linux, una versión de Windows y una versión de Linux. Mi experiencia fue que la versión de Linux terminó con una falla . La cuenta de Linux no se asignó a mi cuenta de Windows, pero apareció una cuenta desconocida bajo un SID . El resultado fue un desastre ya que esta cuenta desconocida toma posesión de todos los archivos de mi cuenta de Windows. En esa situación, a menos que tenga un privilegio administrativo para recuperar su propiedad, los archivos de su cuenta de Windows quedarán inaccesibles. Pero incluso si usted sarna, todavía esUn mapeo incorrecto. Eso significa que, más tarde, los archivos que cree en Linux se asignarán a esa cuenta desconocida en Windows y los de Windows se asignarán a root en Linux (si no recuerdo mal). Entonces, en Windows, debe recuperar la propiedad nuevamente y en Linux cambiar la propiedad. Eso no es lo que esperamos que sea. Después de varios intentos desesperados por solucionar el problema, me di por vencido y recurrí a la versión de Windows. Ese funcionó. Las instrucciones detalladas extraídas de la sección relevante de la documentación de NTFS-3G son las siguientes:
Descargue la herramienta de mapa de usuario , extráigala en algún lugar (en mi caso, unidad
C:), mejor fuera de la partición NTFS (en mi caso, unidadD:) para compartir.Abra la línea de comando de Windows. Cambie al directorio extraído
tools(por defecto) de lausermapherramienta. Luego ejecute el siguiente comando:Esto genera una plantilla y la redirige a un archivo llamado
UserMapping. Abra el archivo con un editor de texto, diga Bloc de notas, debería ver las siguientes líneas:Presumiblemente, el primero
SIDdebe ser su SID de usuario, mientras que el segundo es su SID de grupo. Puede verificarlos respectivamente mediante comandoswhoami /userywhoami /groups.Después de asegurarse de que los SID sean correctos, siga las instrucciones en el comentario, es decir, cambie
userlauser::SIDlínea a su nombre de usuario ygroupla:group:SIDlínea a su nombre de grupo principal en Linux. En Ubuntu, son lo mismo. Además, agregue el nombre de su grupo Linux también después de los primeros dos puntos de lauser::SIDlínea. Entonces la línea debería verse algo asíuser:group:SID. Parece que si no lo hace, los archivos creados en Windows se asignarán auser:rootLinux.Guarda el archivo. Muévalo a un directorio llamado
.NTFS-3G(créelo si aún no existe) en la partición NTFS que se compartirá (en mi caso, unidadD:).Este paso es para la prueba en la Parte 3. En la partición NTFS compartida, cree un nuevo directorio y un nuevo archivo.
Parte 2
Ahora inicie en Linux.
sudoeditar el archivo/etc/fstab. Agregue o modifique la línea para la partición NTFS compartida a algo como lo siguiente:Lo esencial es establecer el
umask(dmaskyfmasktambién puede funcionar pero no probado). Escoja un valor paraumaskque te gusta, aunque escogí077. Parece que sin esta configuración, se otorgarán permisos completosopara los archivos recién creados.Guarda el archivo. Ahora
sudo mounto vuelva a montar (sudo umounty luegosudo mount) la partición NTFS compartida (en mi caso/data):Parte 3
Ahora (todavía en Linux)
cdal punto de montaje (en mi caso/data),ls -llos archivos allí. Compruebe si su propiedad y sus permisos coinciden respectivamente con los que especificó en elUserMappingarchivo y losumaskque configuró/etc/fstab(la coincidencia entre los permisos yumaskrequiere un cálculo complementario; consulte man (1) umask para obtener más información) Si lo hacen, felicidades, se logra la mitad del objetivo. De lo contrario, pobre de ti. Pregúntale a Ubuntu o Windows.Luego cree un nuevo directorio y un nuevo archivo.
ls -lpara verificar su propiedad y permisos. La propiedad debe ser su nombre de usuario y grupo primario como de costumbre. Los permisos deben coincidir con elumask. Ahora reinicie su computadora y arranque en Windows. Localice en la partición NTFS compartida el directorio y el archivo que acaba de crear en Linux. Verifique sus propiedades para ver si están asignadas a su cuenta de Windows. Si es así, felicidades, ya está todo hecho. De lo contrario, mala suerte. Pregúntale a Windows o Ubuntu.EOF
fuente
Tema antiguo, lo sé, pero sigue siendo relevante y falta un consejo de caso de uso particular, compuesto de diferentes sugerencias en varios otros foros / hilos y probado en Ubuntu GNOME 13.04 donde quería una unidad externa para contener una biblioteca Steam ...
Cuando la partición NTFS está en una unidad usb externa, por ejemplo, lo que significa que la partición se monta sobre la marcha al momento de la conexión, puede usar el siguiente método para hacer particiones udev mount ntfs con derechos de ejecución.
Abra una ventana de terminal y haga:
Luego pegue esta línea en lo que debería ser un archivo en blanco / nuevo (si no, salga de nano y vuelva a emitir el comando, pero comience el nombre del archivo con un número mayor como 91 -...):
Luego guardar y cerrar. Desenchufe el disco y luego en la terminal:
A continuación, vuelva a enchufar la unidad y disfrute :)
fuente
Todos los pasos:
Instalar
ntfs-3g:Desmontar la partición NTFS :
Use
ntfs-3g.usermappara generar suUserMappingarchivo:o
Vuelva a montar la partición NTFS para agregar el
UserMappingarchivo:Actualiza tu
fstabarchivo:Actualizar línea de montaje :
#al principio.UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0( opción de usontfs-3gy únicadefault)Debería verse más o menos así:
#UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0Finalmente, vuelva a montar usando su
fstab:¡Haga esto una vez por cada partición NTFS que tenga!
ADVERTENCIA CON WINDOWS OS!
¡Lo compruebo con Windows 7+ y los permisos afectan al sistema operativo Windows! ¡Cambié los permisos de mi Home Directory en la partición de Windows, y cuando volví a usar Windows pude ver que el usuario estaba roto!
fuente
Hay una pregunta relacionada para dispositivos USB. Esta respuesta proporciona un truco feo si desea montar cada dispositivo USB automáticamente con permisos de ejecución.
fuente
Monte la partición NTFS en una unidad USB con permisos personalizados y propietario
En Linux, el modo de NTFS (y FAT32) está determinado por las opciones de montaje de la partición . No puede cambiarlo a través de chmod.
Supuesto: la unidad USB es visto como
sdb1, modificar para que coincida con la letra de unidad y el número de particiones en su caso . La sintaxis general essdxn, dondexestá la letra de unidad ynes el número de partición como se ve por ejemplosudo lsblk -fPreparando
Desmontar la partición NTFS.
Cree un punto de montaje personalizado (solo si desea un nuevo punto de montaje), por ejemplo con
Verifique el
uidnúmero de su ID de usuario (generalmente es 1000, a veces 1001 o 1002 ...)y use ese número si desea obtener la propiedad (el valor predeterminado es
root).Montar la partición NTFS
Ejemplo 1 (sin permisos de ejecución para archivos, sin acceso para 'otros'),
en este caso puedes ejecutar el script
this-scriptconEjemplo 2 (con permisos de ejecución para archivos, sin acceso para 'otros'),
En este caso, puede ejecutar el script
this-scriptcony también puede ejecutar programas ejecutables desde esta ubicación (no es recomendable).
Ejemplo 3 (permisos completos para todos, lo cual es conveniente pero no seguro, cuando hay varios usuarios),
fuente
/media$ sudo mkdir -p sdb1/media$ sudo mount -o rw,users,umask=000,exec /dev/sdb1 ./sdb1/ mount: block device /dev/sdb1 is write-protected, mounting read-onlychkdsk /f X:acuerdo con este enlace ubuntuforums.org / ... - Si aún no tiene suerte, haga una