gpt4 book ai didi

svn - 如何以 root (sudo) 身份运行 shell 脚本?

转载 作者:行者123 更新时间:2023-12-04 10:29:12 30 4
gpt4 key购买 nike

我有一个在存储库用户下运行的 SVN 存储库服务器。我想在每次提交后操作后运行一个脚本。我编写了一个 shell 脚本,在每次提交后从钩子(Hook)中运行。它需要以root身份运行。这就是我在脚本中使用 sudo 的原因,但它不起作用。 有没有办法以root身份运行脚本?

sudo su
echo "password"
svn export --force file:///home/repository/trunk/ /home/memarexweb/public_html/devel/
chmod -R 777 /home/memarexweb/public_html/devel/

最佳答案

我四处寻找,发现了这个有用的解决方案:

编辑您的 sudoers文件以允许在没有密码的情况下运行某些命令。

最好拆分您的post-commit脚本分为两部分,其中一部分将通过 sudo 运行.

  • 进入 /etc/sudoers :
    loqman    ALL=(root) NOPASSWD: /usr/local/bin/svn-postcommit-export
  • 您的提交后 Hook :
    #!/bin/sh
    sudo /usr/local/bin/svn-postcommit-export
  • 脚本 /usr/local/bin/svn-postcommit-export :
    #!/bin/sh
    svn export --force file:///home/repository/trunk/ /home/memarexweb/public_html/devel/
    chmod -R 777 /home/memarexweb/public_html/devel/

    (您可以选择任何名称并将脚本放在任何位置;我只是建议以 svn-postcommit-export 为例,将 /usr/local/bin 作为常用位置。)
  • 关于svn - 如何以 root (sudo) 身份运行 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7499248/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com