【问题标题】:How to create directory in /mnt/resource on RHEL Azure VM如何在 RHEL Azure VM 上的 /mnt/resource 中创建目录
【发布时间】:2018-12-18 04:11:09
【问题描述】:

我想在 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

我已尝试关注。但这对我没有帮助。

  1. 一个。 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。重启虚拟机。

结果:

示例目录未在 /mnt/resource/ 中创建

  1. 一个。在 /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 daemon-reload

e。 systemctl enable mount.service

f。 systemctl start mount.service

停止和启动 Azure VM

结果:- 示例目录未在 /mnt/resource/ 中创建

【问题讨论】:

  • 我假设您想在 /mnt/resource 中创建一个目录并为其设置用户权限。我尝试了,它实现起来并不困难。那么你真正想要的是什么?
  • 只有我需要。但我想在 /mnt/resource 中创建一个目录,并在每次启动 Azure RHEL VM 时为其设置用户权限。你试过了吗?
  • @CharlesXu-MSFT 你有没有尝试在虚拟机启动时创建目录?
  • 我在运行时试了一下,然后重启虚拟机。为什么要在启动时这样做?
  • @CharlesXu-MSFT 我也在虚拟机运行时尝试过它,它对我有用。在我解除分配 vm 然后启动 vm 后,/mnt/resource/sample 目录不可用。所以我在启动时需要目录。我经常解除分配并启动虚拟机。

标签: linux azure service rhel init.d


【解决方案1】:

我点击了上面的聊天链接,发现@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 上下文。

【讨论】:

    猜你喜欢
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    相关资源
    最近更新 更多