【centos】【thinkphp】【laravel】指定其他用户身份执行 php think 或 php artisan 等命令
解决
创建一个shell文件,指定用户,然后要执行 php think xxx 或 php artisan xxx 等命令的时候,使用这个shell来执行
su root切换到root用户(非必要)cd ~进入家目录mkdir bin自定义一个bin目录cd bintouch tp233创建一个tp233的文件,不需要后缀vim tp233编辑这个文件,写入如下内容:#! /bin/bash su -s /bin/bash -c "$1" www- 保存退出编辑器
vim /etc/profile添加一个环境变量,使我们自定义的命令可以像php -v的方式全局调用- 打开这个文件后,切换成大写,按两次 G ,跳转到文件底部,添加如下内容:
export TP233=/root export PATH=$TP233/bin:$PATH - 保存退出编辑器
source /etc/profile刷新环境变量cd /www/wwwroot/my_blog进入到项目,假设我这个是thinkphp6的项目tp233 'php think make:model User'使用刚创建的shell执行命令- 进入
app/model目录下ll打印一下就可以看到,User.php的所有组和创建者都是www用户了
原理
- 最关键的是
su -s /bin/bash -c "$1" www这一句话,su -s是指定shell,-c "xxx"指定执行语句,再后面就是指定用户
参考

浙公网安备 33010602011771号