为Azure提供的临时存储设置写入权限(基于Linux的VM)

前端之家收集整理的这篇文章主要介绍了为Azure提供的临时存储设置写入权限(基于Linux的VM)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
除了将它用于交换空间之外,我将使用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不需要其他权限

原文链接:https://www.f2er.com/linux/395871.html

猜你在找的Linux相关文章