为Azure提供的临时存储设置写入权限(基于Linux的VM)
发布时间:2020-12-14 02:34:27 所属栏目:Linux 来源:网络整理
导读:除了将它用于交换空间之外,我将使用Azure VM(Ubuntu 14.04 OS)中可用的临时存储来存储 Postgresql临时文件. 为了实现这一点,我将在/ $PGDATA / base / pgsql_tmp创建一个指向/ mnt / pgsql_tmp的符号链接.所以这应该是ln -s / mnt / pgsql_tmp $PGDATA / bas
除了将它用于交换空间之外,我将使用Azure VM(Ubuntu 14.04 OS)中可用的临时存储来存储
Postgresql临时文件.
为了实现这一点,我将在/ $PGDATA / base / pgsql_tmp创建一个指向/ mnt / pgsql_tmp的符号链接.所以这应该是ln -s / mnt / pgsql_tmp $PGDATA / base / pgsql_tmp. 这样可以合理地确保从基于SSD的临时存储中存储和读取所有临时文件.但是,有一个问题:用户postgres没有写入/ mnt的权限: drwxr-xr-x 4 root root 4.0K Mar 18 12:40 mnt 我如何确保postgres对/ mnt也有写权限?我应该只是做sudo chmod -R 777 / mnt并完成它吗? 我知道这是基本的,但由于它是一个生产服务器,我已经在/ mnt中设置了交换设置,我不想错误配置它并在明天遇到问题. 附:这就是临时存储目前的样子: Filesystem Size Used Avail Use% Mounted on /dev/sdb1 221G 9.9G 200G 5% /mnt 解决方法ln -sTf /mnt/pgsql_tmp $PGDATA/base/pgsql_tmp # did you get that correct? chown -R postgres /mnt/pgsql_tmp chmod o+x /mnt # note: no -R,this turns 750 to 751 for /mnt only 效果: su - postgres echo 1 > /mnt/file # fails ls /mnt # fails cat /mnt/anything # fails echo 1 > /mnt/pgsql_tmp/file # works ls /mnt/pgsql_tmp # works cat /mnt/pgsql_tmp/file # works chmod o x意味着给[o] thers e [x] ecute位,这使它们有权遍历/ mnt进入任何子目录.对于/ mnt / pgsql_tmp,/ mnt不需要其他权限 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |