创建一个shell.sh,任何人都可以执行,并在内部以root身份运行

时间:2018-12-22 16:14:49

标签: php linux root

我可以编写一个任何人都可以执行的shell脚本,该脚本内部切换用户(或提升为root),然后运行那些命令,而不会将执行用户暴露给root特权吗?

某些背景:我有一个Shell脚本,该脚本从本地网络(使用smbclient)获取文件,然后将其转换并处理为csv,准备导入到我的MYSQL DB中。我可以自己运行该文件,但是当我尝试通过PHP exec()或shell_exec()执行该文件时,由于它的用户是www-data,因此出现了权限问题。

我花了整整一天时间尝试各种文件的更改,添加了路径环境,甚至阅读了授予www-data sudo权限的信息(但没有成功),但是我不能用任何方式创建任何人的文件(www-data )是否可以以我的用户或sudo的身份执行并安全地执行其中的命令(并且仅执行其中的命令?)?

1 个答案:

答案 0 :(得分:1)

您可以通过编辑/ etc / sudoers

来做到这一点
sudoedit /etc/sudoers

添加此行

Cmnd_Alias YOUR_CMD_ALIAS= /path/yourShellScript

[User's name] ALL=(ALL) NOPASSWD: YOUR_CMD_ALIAS

然后使用sudo执行代码

sudo /path/yourShellScript