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

<p>мы переместили каталог данных mysql на другой диск, поэтому теперь <code>/var/lib/mysql</code> это просто точка монтирования другого раздела. мы устанавливаем владельца <code>/var/lib/mysql</code> каталог в <code>mysql.mysql</code>.</p><p>но каждый раз, когда мы монтируем раздел, владелец меняется на <code>root.root</code>. из-за этого мы не смогли создать дополнительную базу данных mysql.</p><p>наша запись в fstab:</p><pre><code>/dev/mapper/db-db /var/lib/mysql ext3 relatime 0 2 </code></pre><p>как изменить владельца точки монтирования на пользователя, отличного от root?</p>

<p>вам необходимо изменить разрешения смонтированной файловой системы, а не точки монтирования, когда файловая система не смонтирована. так <code>mount /var/lib/mysql</code> тогда <code>chown mysql.mysql /var/lib/mysql</code>. это изменит разрешения корня файловой системы бд mysql.</p><p>основная идея заключается в том, что файловая система, содержащая бд, должна быть изменена, а не точка монтирования, если только у ее пути нет проблем, например, <code>lib</code> может быть прочитано только пользователем root.</p>

<p>также</p><pre><code>mount device mount-point -o uid=foo -o gid=foo </code></pre><p>если нужно изменить группу</p>

<p>добавьте uid и gid так:</p><pre><code>/dev/mapper/db-db /var/lib/mysql ext3 relatime,rw,exec,uid=frank,gid=www-group 0 2 </code></pre><p>вы можете использовать реальные имена пользователей/групп (остерегайтесь пробелов) или числовые значения uid, gid. я добавил rw и exec, которые могут помочь вам предотвратить проблемы с доступом (если вы работаете в системе разработки, а не на рабочем сервере).</p><p>ps: для еще большего доступа (при желании) добавьте ", dir\_mode = 0777, file\_mode = 0777"</p>

<p>удостоверьтесь, что вы изменили разрешения, когда файловая система не смонтирована - делать это при монтировании никогда не получалось.</p><p>кроме того, вы можете добавить опцию 'user' в ваш fstab, например:</p><pre><code>/dev/mapper/db-db /var/lib/mysql ext3 relatime,user 0 2 </code></pre><p>это также должно означать, что команде mount (если она должна быть вызвана) не понадобятся привилегии root для монтирования этого тома. если вы не измените свой fstab, это не помешает вам решить проблему!</p>

<p>я обычно делаю это в пустой размонтированной директории</p><pre><code>chmod 777 <directory> </code></pre><p>тогда делай</p><pre><code>chown -r mysql.mysql <directory> </code></pre><p>тогда в/etc/fstab сделай</p><pre><code><device> <directory> ext3 user,defaults 0 2 </code></pre><p>тогда используйте</p><pre><code>mount -a </code></pre><p>смонтировать все файловые системы, перечисленные в/etc/fstab.</p><p>это работает для меня. попробуй</p>

<p>если вы хотите сделать это только как часть командной строки <code>mount</code>, вы можете использовать <code>-o</code> переключайтесь и делайте:</p><pre><code>mount device mount-point -o uid=foo </code></pre><p>это изменит владельца точки монтирования на пользователя <code>foo</code> вместо root.</p>