我可以编写一个任何人都可以执行的shell脚本,该脚本内部切换用户(或提升为root),然后运行那些命令,而不会将执行用户暴露给root特权吗?
某些背景:我有一个Shell脚本,该脚本从本地网络(使用smbclient)获取文件,然后将其转换并处理为csv,准备导入到我的MYSQL DB中。我可以自己运行该文件,但是当我尝试通过PHP exec()或shell_exec()执行该文件时,由于它的用户是www-data,因此出现了权限问题。
我花了整整一天时间尝试各种文件的更改,添加了路径环境,甚至阅读了授予www-data sudo权限的信息(但没有成功),但是我不能用任何方式创建任何人的文件(www-data )是否可以以我的用户或sudo的身份执行并安全地执行其中的命令(并且仅执行其中的命令?)?
答案 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