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



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

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

我花了一天时间进行各种文件性能更改,等待路径环境,甚至阅读授予 www-data sudo 权限(没有成功),但是,我不能创建一个文件,任何人都可以(www-data)作为我的用户或 sudo 执行其中的命令(并且只有其中的命令)?

你可以

通过编辑/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

最新更新