【问题标题】:Script to change ownership of folders in Plesk vhosts更改 Plesk 虚拟主机中文件夹所有权的脚本
【发布时间】:2013-05-17 19:50:18
【问题描述】:

我正在寻求一些帮助,以便在 Linux 中创建一个 shell 脚本,以便在 owner:group 为 apache:apache 的 Plesk 环境中对某些文件夹执行批量所有权更改。

我想将 owner:group 更改为 :psacln。

可以通过查看 httpdocs 文件夹的所有者来确定 FTP 用户。 ^这是我遇到问题的部分。

如果我要将所有所有者设置为相同,我可以做一行:

find /var/www/vhosts/*/httpdocs -user apache -group apache -exec chown user:psacln {} \;

任何人都可以帮助将用户插入此命令吗?

谢谢

【问题讨论】:

    标签: batch-file permissions ownership


    【解决方案1】:

    想出来了......对于那些将来可能想要使用它的人:

        for dir in /var/www/vhosts/*
        do
            dir=${dir%*/}
            permissions=`stat -c '%U' ${dir##*/}/httpdocs`
            find ${dir##*/}/httpdocs -user apache -group apache -exec chown $permissions {} \;
        done
    

    【讨论】:

    • 好极了。我不得不针对稍微不同的场景进行轻微调整,但这将我的培根保存在几台服务器上,每台服务器上都有大量站点,其中许多站点都是从其他服务器迁移过来的,具有略微随机的权限!
    【解决方案2】:

    由于stat 不能以相同的方式在所有平台上工作,我想我会分享我的脚本来将所有网站的所有权设置给 Plesk 中的正确所有者(在 Plesk 11、11.5、12 和 12.5 上测试) ):

    cd /var/www/vhosts/
    for f in *; do
        if [[ -d "$f" && ! -L "$f" ]]; then
    
            # Get necessary variables
            FOLDERROOT="/var/www/vhosts/"
            FOLDERPATH="/var/www/vhosts/$f/"
            FTPUSER="$(ls -ld /var/www/vhosts/$f/ | awk '{print $3}')"
    
            # Set correct rights for current website, if website has hosting!
            cd $FOLDERPATH
            if [ -d "$FOLDERPATH/httpdocs" ]; then
                chown -R $FTPUSER:psacln httpdocs
                chmod -R g+w httpdocs
                find httpdocs -type d -exec chmod g+s {} \;
    
                # Print success message
                echo "Done... $FTPUSER is now correct owner of $FOLDERPATH."
            fi
    
            # Make sure we are back at the root, so we can continue looping
            cd $FOLDERROOT
        fi
    done
    

    \\\

    代码说明:

    1. 转到 vhosts 文件夹
    2. 循环浏览网站
    3. 存储虚拟主机路径,因为我们在循环中使用cd
    4. 如果当前网站存在httpdocsfolders,那么
    5. 设置正确的httpdocs权限和
    6. 所有底层文件夹
    7. 显示成功消息
    8. cd 回到 vhosts 文件夹,这样我们就可以继续循环了

    \\\

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 2017-09-24
      • 2012-03-16
      相关资源
      最近更新 更多