Come cambiare il proprietario del punto di montaggio


44

Abbiamo spostato la directory dei dati mysql su un altro disco, quindi ora /var/lib/mysqlè solo un punto di montaggio in un'altra partizione. Impostiamo il proprietario della /var/lib/mysqldirectory su mysql.mysql.

Ma ogni volta che montiamo la partizione, la proprietà cambia in root.root. Per questo motivo, non siamo riusciti a creare un database MySQL aggiuntivo.

La nostra voce fstab:

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

Come modificare il proprietario del punto di montaggio in un utente diverso da root?

Risposte:


43

È necessario modificare le autorizzazioni del filesystem montato, non del punto di montaggio quando il filesystem non è montato. Quindi mount /var/lib/mysqlallora chown mysql.mysql /var/lib/mysql. Ciò modificherà le autorizzazioni della radice del filesystem DB MySQL.

L'idea di base è che il filesystem che contiene il DB deve essere modificato, non il mount point, a meno che il suo percorso non abbia alcuni problemi, ad esempio libpuò essere letto solo da root.


32

anche

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

se anche il gruppo deve essere cambiato


2
Dove uid fooè il nome dell'utente che si desidera essere il proprietario del punto di montaggio. E gid fooè il nome del gruppo utenti, generalmente uguale al nome utente. Nel dubbio, digita semplicemente la ls -ltua home directory e controlla rispettivamente il nome e il secondo nome.
Zequez,

10

Aggiungi uid e gid come questi:

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

È possibile utilizzare i nomi utente / gruppo effettivi (attenzione agli spazi) o valori numerici uid, gid. Ho aggiunto rw ed exec che potrebbero aiutarti ulteriormente a prevenire problemi di accesso (presumendo che tu sia su un sistema di sviluppo, non su un server di produzione).

PS: per un accesso ancora maggiore (se lo si desidera), aggiungere ", dir_mode = 0777, file_mode = 0777"


3
No, lo è relatime. lwn.net/Articles/244829
endolith

7
-1 perché uide i gidflag funzionano solo su filesystem che non supportano lo schema delle autorizzazioni Linux, ad esempio FAT e NTFS, tra gli altri. Vedi askubuntu.com/a/34068/329506
mgarciaisaia l'

2
sì, ho riscontrato il problema uid / gid: esiste una soluzione?
Tofutim,

Questo mi ha aiutato con il mio disco FAT32. Grazie.
Naeem Khan,

3

Assicurati di cambiare i permessi quando il filesystem non è montato - farlo mentre montato non ha mai funzionato per me.

Inoltre, puoi aggiungere l'opzione 'user' al tuo fstab, ad esempio:

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

Ciò dovrebbe anche significare che il comando mount (se deve essere chiamato) non avrà bisogno dei privilegi di root per montare quel volume. Non cambiare il tuo fstab non ti impedirà di risolvere il problema!


2

Di solito lo faccio su una directory vuota non montata

chmod 777 <directory>

Quindi fa

chown -R mysql.mysql <directory>

Quindi in / etc / fstab do

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

Quindi utilizzare

mount -a

per montare tutti i filesystem elencati in / etc / fstab.

Questo funziona per me. Provaci


2

Se vuoi farlo solo come parte della mountriga di comando, puoi usare l' -oopzione e fare:

mount device mount-point -o uid=foo

Ciò cambierà il proprietario del punto di montaggio in utente fooanziché in root.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.