gpt4 book ai didi

linux - 在没有 super 用户的情况下重新启动apache

转载 作者:太空狗 更新时间:2023-10-29 11:27:46 29 4
gpt4 key购买 nike

是否有可能在没有 root 或没有 root 权限的情况下执行正常重启并检查 apache 配置语法?

我已经尝试将 suid 位设置为执行重启的脚本。这是脚本本身:

#!/bin/bash

FILENAME=$1
DATE=`date +%Y%m%d`
DIRECTORY='bckp/'
if [ ! -d "$DIRECTORY" ]; then
echo "Backup directory doesn't exist. Creating one."
mkdir $DIRECTORY
fi

if [ -z "$FILENAME" -a ! -f "$FILENAME" ]; then
FILENAME="webdav.conf"
echo "No file specified. Backing up webdav.conf"
fi

REV=0
BACKUP="$FILENAME.$DATE.$REV"

while [ -f $BACKUP ]; do
let REV+=1
BACKUP="$DIRECTORY$FILENAME.$DATE.$REV"
done

cp $FILENAME $BACKUP

echo $OUTPUT
OUTPUT=$(apache2ctl configtest 2>&1)
if [ "$OUTPUT" == "Syntax OK" ]; then
echo "Syntax OK"
echo "Performing restart"
apachectl -k graceful 2>&1
fi

exit $?

这是此文件的 ls -l:

-rwsrwxr-x 1 root user  645 2012-04-26 18:05 graceful-restart

当我尝试运行这个脚本时,我得到以下输出:

No file specified. Backing up webdav.conf
ulimit: 88: error setting limit (Operation not permitted) Syntax OK

我对是否可以执行我所描述的内容感兴趣。

最佳答案

Linux 不会接受 shell 脚本上的 suid 位。阅读this获取更多信息。

一个常见的解决方案是 sudo 命令。在 /etc/sudoers 中有这样的条目:

yourname ALL = NOPASSWD:/path/to/graceful-restart

你可以运行:

sudo /path/to/graceful-restart

这将以 root 权限运行,而不会提示您输入密码。有关 sudoers 文件语法的更多信息,请参阅 sudoers 手册页。

关于linux - 在没有 super 用户的情况下重新启动apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10336307/

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