我正在尝试在 Ubuntu 上为 OrientDB(数据库)工作的启动脚本。
这是当前导致问题的行:
ORIENTDB_DIR="/usr/local/orientdb"
ORIENTDB_USER="www-user"
sudo -u $ORIENTDB_USER sh -c "cd \"$ORIENTDB_DIR/bin\"; /usr/bin/nohup server.sh 1>../log/orientdb.log 2>../log/orientdb.err &"
如果我启动脚本,它会导致:
sh: 1: cannot create ../log/orientdb.log: Permission denied
这是设置:
www-user
在 sudoers 文件中server.sh
并且上面发布的任何 shell 脚本都具有 root 的执行权限。- 如果我将脚本更改为:
sudo -u $ORIENTDB_USER sh -c "cd \"$ORIENTDB_DIR/bin\"; /usr/bin/nohup pwd 1>/home/www-user/test.log &"
,则test.log
显示/usr/local/orientdb/bin/
为工作目录。 /usr/local/orientdb/log
存在但是一个空文件夹。
鉴于上述情况以及我sudo
用来提升用户的事实,为什么仍然拒绝许可?