我想在虚拟机启动期间在RHEL Azure虚拟机上的/ mnt / resource文件夹中创建目录并提供用户权限。
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 32G 12G 20G 38% /
devtmpfs 56G 0 56G 0% /dev
tmpfs 56G 0 56G 0% /dev/shm
tmpfs 56G 8.4M 56G 1% /run
tmpfs 56G 0 56G 0% /sys/fs/cgroup
/dev/sda1 497M 103M 394M 21% /boot
/dev/sdb1 221G 2.3G 207G 2% /mnt/resource
tmpfs 12G 0 12G 0% /run/user/1000
我尝试了以下操作。但这对我没有帮助。
a。 chmod + x /etc/rc.d/rc.local
b。在/etc/rc.d/rc.local
中的文件末尾添加以下行sudo mkdir -p /mnt/resource/sample
sudo chown -R sshuser:sshuser /mnt/resource/sample
c。重新启动VM。
结果:
未在/ mnt / resource /
中创建的示例目录a。在/etc/systemd/system/mount.service
[Unit] Description=Description for sample script goes here Requires=network.target After=network.target [Service] Type=simple ExecStart=/home/sshuser/mount.sh TimeoutStartSec=0 User=root [Install] WantedBy=multi-user.target
b。在/home/sshuser/mount.sh
中添加以下内容sudo mkdir -p /mnt/resource/sample
sudo chown -R sshuser:sshuser /mnt/resource/sample
c。 chmod + x /home/sshuser/mount.sh
d。 systemctl守护程序重新加载e。 systemctl启用mount.service
f。 systemctl启动mount.service
停止并启动Azure VM
结果:- 未在/ mnt / resource /
中创建的示例目录答案 0 :(得分:0)
我点击了上面的聊天链接,发现@karan遇到了一个很好的答案。将其与我拥有的内容合并,这是所有需要此功能的人的完整代码:
#!/bin/bash
# set this to your /mnt/resource/______ directory name
MY_DIRECTORY=sample
#wait for /mnt/resource to be created
while [ `mount | grep /mnt/resource | wc -l` -lt 1 ];
do
logger "Waiting five more seconds for /mnt/resource to be created by waagent..."
sleep 5
done
# test if folder is missing. If so, create it, set SE context & ownership
if [ ! -d /mnt/resource/${MY_DIRECTORY} ]; then
mkdir --context=system_u:object_r:httpd_sys_rw_content_t:s0 /mnt/resource/${MY_DIRECTORY}
chown apache: /mnt/resource/${MY_DIRECTORY}
logger "/mnt/resource/${MY_DIRECTORY} created, SE context and owner & group set"
else
logger "/mnt/resource/${MY_DIRECTORY} already exists."
fi
如所示,该文件夹用于apache,但可以根据您的需要更改所有者,组和se上下文。