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?

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.


32

además

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

si el grupo necesita ser cambiado también


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"


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!


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


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.

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.