Cómo cambiar el propietario del punto de montaje

44

Hemos movido el directorio de datos mysql a otro disco, por lo que ahora /var/lib/mysqles solo un punto de montaje a otra partición. Establecemos el propietario del /var/lib/mysqldirectorio en mysql.mysql.

Pero cada vez que montamos la partición, la propiedad cambia a root.root. Debido a esto, no pudimos crear una base de datos MySQL adicional.

Nuestra entrada fstab:

/dev/mapper/db-db   /var/lib/mysql    ext3    relatime        0       2

¿Cómo cambiar el propietario del punto de montaje a un usuario que no sea root?

Arie K
fuente

Respuestas:

43

Debe cambiar los permisos del sistema de archivos montado, no del punto de montaje cuando el sistema de archivos no está montado. Entonces mount /var/lib/mysqlentonces chown mysql.mysql /var/lib/mysql. Esto cambiará los permisos de la raíz del sistema de archivos MySQL DB.

La idea básica es que el sistema de archivos que contiene la base de datos debe cambiarse, no el punto de montaje, a menos que su ruta tenga algunos problemas, por ejemplo, libsolo puede leerse de raíz.

Cristian Ciupitu
fuente
32

además

mount device mount-point -o uid=foo -o gid=foo

si el grupo necesita ser cambiado también


fuente
2
Donde uid fooes el nombre del usuario que desea que sea el propietario del punto de montaje. Y gid fooes el nombre del grupo de usuarios, generalmente el mismo que el nombre de usuario. En caso de duda, simplemente escriba ls -lsu directorio personal y verifique el nombre y el segundo nombre respectivamente.
Zequez
10

Agregue uid y gid como estos:

/dev/mapper/db-db  /var/lib/mysql ext3  relatime,rw,exec,uid=frank,gid=www-group        0       2

Puede usar nombres de usuario / grupo reales (cuidado con los espacios) o valores numéricos uid, gid. Agregué rw y exec que podrían ayudarte a prevenir problemas de acceso (suponiendo que estés en un sistema de desarrollo, no en un servidor de producción).

PD: para obtener aún más acceso (si lo desea), agregue ", dir_mode = 0777, file_mode = 0777"

Frank Nocke
fuente
3
No, no es relatime. lwn.net/Articles/244829
endolith
77
-1 porque uidy gidflags solo funcionan en sistemas de archivos que no admiten el esquema de permisos de Linux, es decir, FAT y NTFS, entre otros. Ver askubuntu.com/a/34068/329506
mgarciaisaia
2
Sí, me encontré con el problema de UID / GID. ¿Hay alguna solución?
tofutim
Esto me ayudó con mi unidad FAT32. Gracias.
Naeem Khan
3

Asegúrese de cambiar los permisos cuando el sistema de archivos no está montado; hacerlo mientras está montado nunca me ha funcionado.

Además, puede agregar la opción 'usuario' a su fstab, por ejemplo:

/dev/mapper/db-db   /var/lib/mysql    ext3    relatime,user        0       2

Esto también debería significar que el comando de montaje (si es necesario llamarlo) no necesitará privilegios de root para montar ese volumen. ¡Sin embargo, no cambiar su fstab no le impedirá solucionar su problema!

Tom Werner
fuente
2

Normalmente hago esto en un directorio vacío desmontado

chmod 777 <directory>

Entonces hazlo

chown -R mysql.mysql <directory>

Luego en / etc / fstab do

<device>    <directory>  ext3   user,defaults 0 2

Luego usa

mount -a

para montar todos los sistemas de archivos listados en / etc / fstab.

Esto funciona para mi. Darle una oportunidad

Saurabh Barjatiya
fuente
2

Si solo desea hacerlo como parte de la mountlínea de comando, puede usar el -ointerruptor y hacer:

mount device mount-point -o uid=foo

Eso cambiará el propietario del punto de montaje a usuario en foolugar de root.

Nasko
fuente