Як змінити власника точки монтажу


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 DB.

Основна ідея полягає в тому, що файлову систему, що містить БД, потрібно змінити, а не точку монтування, якщо тільки в її шляху не libвиникнуть певні проблеми, наприклад, їх можна читати лише корінь.


32

також

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

якщо групу теж потрібно змінити


2
Там, де uid foo- ім’я користувача, якого ви хочете бути власником точки монтажу. І gid foo- це назва групи користувачів, загалом те саме, що ім'я користувача. У сумніві просто введіть ls -lдомашній каталог і перевірте імена та ім’я відповідно.
Зекес

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 - чи є рішення?
tofutim

Це допомогло мені з моїм приводом 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.