Bagaimana cara mengubah pemilik titik mount

44

Kami telah memindahkan direktori data mysql ke disk lain, jadi sekarang /var/lib/mysqlhanyalah titik mount ke partisi lain. Kami mengatur pemilik /var/lib/mysqldirektori ke mysql.mysql.

Tetapi setiap kali kita memasang partisi, kepemilikan berubah menjadi root.root. Karena itu, kami tidak dapat membuat database MySQL tambahan.

Entri fstab kami:

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

Bagaimana cara mengubah pemilik mount point ke pengguna selain root?

Arie K
sumber

Jawaban:

43

Anda perlu mengubah izin sistem file yang dipasang, bukan dari titik mount ketika sistem file tidak dipasang. Jadi mount /var/lib/mysqlkemudian chown mysql.mysql /var/lib/mysql. Ini akan mengubah izin root dari sistem file MySQL DB.

Ide dasarnya adalah bahwa sistem file yang memegang DB perlu diubah, bukan titik mount, kecuali pathnya memiliki beberapa masalah, misalnya libhanya dapat dibaca oleh root.

Cristian Ciupitu
sumber
32

juga

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

jika grup perlu diubah juga


sumber
2
Di mana uid fooadalah nama pengguna yang Anda ingin menjadi pemilik titik mount. Dan gid fooadalah nama grup pengguna, umumnya sama dengan nama pengguna. Dalam keraguan cukup ketik ls -ldirektori home Anda dan periksa nama depan dan belakang masing-masing.
Zequez
10

Tambahkan uid dan gid seperti ini:

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

Anda dapat menggunakan nama pengguna / grup yang sebenarnya (awas terhadap spasi) atau nilai numerik, nilai gid. Saya menambahkan rw dan exec yang selanjutnya dapat membantu Anda mencegah masalah akses (anggap Anda berada pada sistem pengembangan, bukan server produksi).

PS: Untuk akses lebih banyak lagi (jika diinginkan), tambahkan ", dir_mode = 0777, file_mode = 0777"

Frank Nocke
sumber
3
Bukan itu relatime. lwn.net/Articles/244829
endolith
7
-1 karena uiddan gidflags hanya bekerja pada filesystem yang tidak mendukung skema izin Linux - yaitu, FAT dan NTFS, antara lain. Lihat askubuntu.com/a/34068/329506
mgarciaisaia
2
ya, saya mengalami masalah uid / gid - apakah ada solusi?
tofutim
Ini membantu saya dengan drive FAT32 saya. Terima kasih.
Naeem Khan
3

Pastikan Anda mengubah izin ketika filesystem tidak di-mount - melakukannya saat di-mount tidak pernah bekerja untuk saya.

Selain itu, Anda dapat menambahkan opsi 'pengguna' ke fstab Anda, misalnya:

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

Ini juga harus berarti bahwa perintah mount (jika perlu dipanggil) tidak akan memerlukan hak root untuk me-mount volume itu. Tidak mengubah fstab Anda tidak akan menghentikan Anda memperbaiki masalah Anda!

Tom Werner
sumber
2

Saya biasanya melakukan ini pada direktori unmount kosong

chmod 777 <directory>

Lalu lakukan

chown -R mysql.mysql <directory>

Kemudian di / etc / fstab lakukan

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

Kemudian gunakan

mount -a

untuk memasang semua sistem file yang terdaftar di / etc / fstab.

Ini bekerja untuk saya. Cobalah

Saurabh Barjatiya
sumber
2

Jika Anda hanya ingin melakukannya sebagai bagian dari mountbaris perintah, Anda dapat menggunakan -osakelar dan melakukan:

mount device mount-point -o uid=foo

Itu akan mengubah pemilik mount point ke pengguna fooalih-alih root.

Nasko
sumber