如何更改挂载点的所有者

如何更改挂载点的所有者

我们已经将 mysql 数据目录移至另一个磁盘,因此现在/var/lib/mysql只是另一个分区的挂载点。我们将目录的所有者设置/var/lib/mysqlmysql.mysql

但每次我们挂载分区时,所有权都会更改为root.root。因此,我们无法创建额外的 MySQL 数据库。

我们的 fstab 条目:

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

如何将挂载点的所有者更改为 root 以外的用户?

答案1

您需要更改已挂载文件系统的权限,而不是在文件系统未挂载时更改挂载点的权限。这样mount /var/lib/mysqlchown mysql.mysql /var/lib/mysql这将更改 MySQL DB 文件系统根目录的权限。

基本思想是需要更改保存数据库的文件系统,而不是挂载点,除非其路径存在一些问题,例如lib只能由 root 读取。

答案2

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

如果组也需要更改

答案3

重要免责声明(从评论中了解到):

uid 和 gid 标志仅适用于不支持 Linux 权限架构的文件系统 - 例如 FAT 和 NTFS 等

因此,这不是对 OP 的正确回答,但对其他人有帮助


像这样添加 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”

答案4

我通常在未挂载的空目录上执行此操作

chmod 777 <directory>

然后做

chown -R mysql.mysql <directory>

然后在 /etc/fstab 中执行

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

然后使用

mount -a

挂载 /etc/fstab 中列出的所有文件系统。

这对我来说很有效。试试看

相关内容