【发布时间】:2019-05-22 23:11:24
【问题描述】:
我在我的 Ubuntu 16.04 LTS 虚拟机上将 Azure 文件共享挂载到 /elasticdata/azshare。我使用以下脚本安装驱动器:
sudo mkdir /elasticdata/fileshare
if [ ! -d "/etc/smbcredentials" ]; then
sudo mkdir /etc/smbcredentials
fi
if [ ! -f "/etc/smbcredentials/fileshare.cred" ]; then
sudo bash -c 'echo "username=fileshare" >> /etc/smbcredentials/fileshare.cred'
sudo bash -c 'echo "password=password" >> /etc/smbcredentials/fileshare.cred'
fi
sudo chmod 600 /etc/smbcredentials/fileshare.cred
sudo bash -c 'echo "//fileshare.file.core.windows.net/analysis /elasticdata/fileshare cifs nofail,vers=3.0,credentials=/etc/smbcredentials/fileshare.cred,dir_mode=0777,file_mode=0777,serverino" >> /etc/fstab'
sudo mount -t cifs //fileshare.file.core.windows.net/analysis /elasticdata/fileshare -o vers=3.0,credentials=/etc/smbcredentials/fileshare.cred,dir_mode=0777,file_mode=0777,serverino,uid=$(id -u elasticsearch),gid=$(id -g elasticsearch)
在我的最后一行中,我将安装位置的所有者和组设置为用户elasticsearch 的所有者和组。安装驱动器后,我可以验证这是真的。
然后我像这样创建一个符号链接:
ln -s /elasticdata/fileshare/analysis /etc/elasticsearch
在/etc/elasticsearch/analysis 中,我可以看到所有者和组是elasticsearch 用户的所有者和组。
当我重新启动我的 VM 时,我设置的所有者和组权限恢复为 root 用户的权限,并且我的 elasticsearch 集群由于以下错误而无法启动:
[HTTP/1.1 500 Internal Server Error]{"error":{"root_cause":[{"type":"access_control_exception","reason":"access denied (\"java.io.FilePermission\" \"/etc/elasticsearch/analysis/charmapping.txt\" \"read\")"}],"type":"access_control_exception","reason":"access denied (\"java.io.FilePermission\" \"/etc/elasticsearch/analysis/charmapping.txt\" \"read\")"},"status":500}`.
如何防止权限恢复?或者,我怎样才能让 elasticsearch 以不同的方式访问文件?
【问题讨论】:
标签: azure ubuntu elasticsearch smb mount-point