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/whatever
y/mnt/whatever
si tengo que cambiar el permiso de mi partición de disco duro llamado/media/Prtn
ntfs-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
permissions
opció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-NTFS
y luegosudo mv UserMapping /media/MY-NTFS/.NTFS-3G/
chmod 655 /some/file
en 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 manpage
enlace rotoPara particiones NTFS, use la
permissions
opción en fstab.Primero desmonte la partición ntfs.
Identifique su UUID de partición con
blkid
Luego edita
/etc/fstab
Y 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 lesusers
permitirá a los usuarios montar y desmontar.Luego puede usar chown y chmod en la partición ntfs.
fuente
users
implica noexec , nosuid y nodev . no es? ¿Cómo pueden los usuarios montar / desmontar con lanoexec
configuració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.bin
para programas de 64 bits y/lib/ld-linux.so.2 ./program.bin
para 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 lausermap
herramienta. 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
SID
debe ser su SID de usuario, mientras que el segundo es su SID de grupo. Puede verificarlos respectivamente mediante comandoswhoami /user
ywhoami /groups
.Después de asegurarse de que los SID sean correctos, siga las instrucciones en el comentario, es decir, cambie
user
lauser::SID
línea a su nombre de usuario ygroup
la:group:SID
lí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::SID
lí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:root
Linux.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.
sudo
editar 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
(dmask
yfmask
también puede funcionar pero no probado). Escoja un valor paraumask
que te gusta, aunque escogí077
. Parece que sin esta configuración, se otorgarán permisos completoso
para los archivos recién creados.Guarda el archivo. Ahora
sudo mount
o vuelva a montar (sudo umount
y luegosudo mount
) la partición NTFS compartida (en mi caso/data
):Parte 3
Ahora (todavía en Linux)
cd
al punto de montaje (en mi caso/data
),ls -l
los archivos allí. Compruebe si su propiedad y sus permisos coinciden respectivamente con los que especificó en elUserMapping
archivo y losumask
que configuró/etc/fstab
(la coincidencia entre los permisos yumask
requiere 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 -l
para 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.usermap
para generar suUserMapping
archivo:o
Vuelva a montar la partición NTFS para agregar el
UserMapping
archivo:Actualiza tu
fstab
archivo:Actualizar línea de montaje :
#
al principio.UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0
UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0
( opción de usontfs-3g
y únicadefault
)Debería verse más o menos así:
#UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0
UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0
Finalmente, 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
, dondex
está la letra de unidad yn
es el número de partición como se ve por ejemplosudo lsblk -f
Preparando
Desmontar la partición NTFS.
Cree un punto de montaje personalizado (solo si desea un nuevo punto de montaje), por ejemplo con
Verifique el
uid
nú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-script
conEjemplo 2 (con permisos de ejecución para archivos, sin acceso para 'otros'),
En este caso, puede ejecutar el script
this-script
cony 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-only
chkdsk /f X:
acuerdo con este enlace ubuntuforums.org / ... - Si aún no tiene suerte, haga una