首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以另一个用户的身份执行脚本仍然会导致一些权限问题。

以另一个用户的身份执行脚本仍然会导致一些权限问题。
EN

Ask Ubuntu用户
提问于 2013-08-24 14:47:17
回答 1查看 5.8K关注 0票数 1

我必须用PHP执行这个脚本。用户www-data做不到,所以我修改了sudoers文件:

代码语言:javascript
运行
复制
www-data ALL=(user2) NOPASSWD: /home/user2/bin/test.sh

脚本在php中使用以下命令执行:

代码语言:javascript
运行
复制
sudo -u user2 /home/user2/bin/test.sh

下面是test.sh脚本:

代码语言:javascript
运行
复制
#!/bin/bash
#Stopping previous server
screen -S minecraft -X stuff "stop^M"
#deleting the map file
rm -Rf /home/minecraft/Serveur/*/  
# deleting the properties file
rm -f /home/minecraft/Serveur/server.properties 
#new server properties
cp /home/minecraft/MapsEtServ.prop/Bloody/server.properties /home/minecraft/Serveur/server.properties
#new map
cp -R /home/minecraft/MapsEtServ.prop/Bloody/'Bloody Mess v1.0' /home/minecraft/Serveur/'Bloody Mess v1.0' 
#launching the game server
screen -dmS minecraft java -Xmx4096M -Xms4096M -jar  /home/minecraft/Serveur/minecraft_server.jar nogui 

/home/minecraft/Serveur/home/minecraft/MapsEtServ.prop权限设置为777。

当我通过SSH执行脚本时会发生什么:一切正常。

但是当我用php执行它时:屏幕被停止,文件被粘贴,屏幕被启动。但是有一个问题:游戏服务器没有运行。

编辑:问题解决了!我刚在脚本的开头添加了cd /home/Min克拉夫特/Serveur/,一切都很好:)

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2013-08-24 15:41:24

在终端中,使用sudo visudo命令编辑sudoers文件,并添加如下一行:

代码语言:javascript
运行
复制
www-data ALL=(ALL) NOPASSWD: /home/user2/bin/test.sh

从这个意义上看,https://help.ubuntu.com/community/RootSudo#Allowing_其他_用户_至_跑_数独

然后,在php中只使用sudo /home/user2/bin/test.sh命令。例如:

代码语言:javascript
运行
复制
<?php shell_exec('sudo /home/user2/bin/test.sh'); ?>
票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/336686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档