小编tot*_*tti的帖子

如何从php文件中重启linux

我的linux系统上有一个用户brftv,我有运行nginx的www-data.

从终端我可以让我的brftv用户运行

sudo /sbin/reboot
Run Code Online (Sandbox Code Playgroud)

它工作正常,因为我将以下内容添加到我的/ etc/sudoers文件的"#user权限规范"部分:

brftv ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff
www-data ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff
Run Code Online (Sandbox Code Playgroud)

但是当我的php文件运行以下代码时,没有任何反应

exec('nohup sudo -u brftv /sbin/reboot');
Run Code Online (Sandbox Code Playgroud)

我在上面的etc/sudoers中添加了www-data行,以防在运行上面的exec()时需要它(尽管我将它作为-u brftv运行,但我不是linux专家,只是认为更好是安全的如果).

运行此exec()的php文件由www-data拥有,chmod为777,因此所有人都应具有从中执行的权限.

我试过通过浏览器运行php文件(将由我假设的用户www-data运行)和终端$ php myFile.php.

-------------------更新-----------------

我这样做了

sudo chmod u s /sbin/reboot
Run Code Online (Sandbox Code Playgroud)

这允许我系统上的所有用户在没有密码的情况下运行reboot cmd.它可以工作,但我宁愿不把它打开,所以使用/ etc/sudoers的其他解决方案会更好,如果有人会暗示我的问题是什么......

我跟着这个tut http://linux.byexamples.com/archives/315/how-to-shutdown-and-reboot-without-sudo-password/,第二个例子就是我上面的东西,它不起作用为了我..

php linux reboot nginx exec

5
推荐指数
2
解决办法
8556
查看次数

如果'var = 08',如何在bash中增加变量'var'

当我仅在变量值为08或09时显示变量后,才会显示变量

a=08; ((a++)); echo "$a"

产量

~$ a=08;  ((a++));  echo "$a"
bash: ((: 08: value too great for base (error token is "08")
08
Run Code Online (Sandbox Code Playgroud)

怎么了 ??
我想要结果09(不是9.我知道9可以实现bc <<< "08+01")

variables bash increment

1
推荐指数
1
解决办法
4557
查看次数

标签 统计

bash ×1

exec ×1

increment ×1

linux ×1

nginx ×1

php ×1

reboot ×1

variables ×1