我想在VM启动期间在RHEL Azure VM上的/ 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
我试过以下。但它对我没有帮助。
湾在/etc/rc.d/rc.local中的文件末尾添加以下行
sudo mkdir -p /mnt/resource/sample
sudo chown -R sshuser:sshuser /mnt/resource/sample
C。重启虚拟机
结果:
示例目录未在/ mnt / resource /中创建
[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
湾在/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 daemon-reload
即systemctl enable mount.service
F。 systemctl start mount.service
停止并启动Azure VM
结果: - 未在/ mnt / resource /中创建样本目录
我按照上面的聊天链接发现@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上下文。