Как сменить владельца точки монтирования

44

Мы переместили каталог данных mysql на другой диск, поэтому теперь /var/lib/mysqlэто просто точка монтирования в другой раздел. Мы устанавливаем владельца /var/lib/mysqlкаталога на mysql.mysql.

Но каждый раз, когда мы монтируем раздел, владелец меняется на root.root. Из-за этого мы не смогли создать дополнительную базу данных MySQL.

Наша запись в fstab:

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

Как изменить владельца точки монтирования на пользователя, отличного от root?

Арье К
источник

Ответы:

43

Вам необходимо изменить разрешения смонтированной файловой системы, а не точки монтирования, когда файловая система не смонтирована. Итак, mount /var/lib/mysqlтогда chown mysql.mysql /var/lib/mysql. Это изменит права доступа к корню файловой системы БД MySQL.

Основная идея заключается в том, что файловая система, содержащая БД, должна быть изменена, а не точка монтирования, если только у ее пути нет проблем, например, она libможет быть прочитана только пользователем root.

Кристиан Чиупиту
источник
32

также

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

если нужно изменить группу


источник
2
Где uid foo- это имя пользователя, которому вы хотите стать владельцем точки монтирования. И gid foo- это имя группы пользователей, обычно совпадающее с именем пользователя. В случае сомнений просто введите ls -lсвой домашний каталог и проверьте имя и фамилию соответственно.
Zequez
10

Добавьте uid и gid так:

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

Вы можете использовать фактические имена пользователей / групп (остерегаясь пробелов) или числовые значения uid, gid. Я добавил rw и exec, которые могут помочь вам предотвратить проблемы с доступом (если вы работаете в системе разработки, а не на рабочем сервере).

PS: для еще большего доступа (при желании) добавьте ", dir_mode = 0777, file_mode = 0777"

Фрэнк Нок
источник
3
Нет, это так relatime. lwn.net/Articles/244829
эндолиты
7
-1, поскольку флаги uidи gidработают только с файловыми системами, которые не поддерживают схему разрешений Linux - например, FAT и NTFS. См. Askubuntu.com/a/34068/329506
mgarciaisaia
2
да, я столкнулся с проблемой UID / GID - есть ли решение?
тофутим
Это помогло мне с моим приводом FAT32. Спасибо.
Наим Хан
3

Удостоверьтесь, что вы изменили разрешения, когда файловая система не смонтирована - делать это при монтировании никогда не получалось.

Кроме того, вы можете добавить опцию 'user' в ваш fstab, например:

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

Это также должно означать, что команде mount (если она должна быть вызвана) не понадобятся привилегии root для монтирования этого тома. Если вы не измените свой fstab, это не помешает вам решить проблему!

Том Вернер
источник
2

Я обычно делаю это в пустой размонтированной директории

chmod 777 <directory>

Тогда делай

chown -R mysql.mysql <directory>

Тогда в / etc / fstab сделай

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

Тогда используйте

mount -a

смонтировать все файловые системы, перечисленные в / etc / fstab.

Это работает для меня. Попробуй

Саураб Баржатия
источник
2

Если вы хотите сделать это только как часть mountкомандной строки, вы можете использовать -oпереключатель и сделать:

mount device mount-point -o uid=foo

Это изменит владельца точки монтирования на пользователя fooвместо root.

Наско
источник