突发奇想的想把切换为www-data用户去看看会怎么样.然后做了一个尝试
由于我安装了lamp环境,所以有www-data用户,用它可以来执行web php ,以及安全放心的跑cli(避免权限过高执行危险命令)
所以先看看自己这个www-data用户情况
查看组
cat /etc/group|grep www
www-data:x:33:
查看用户
sudo cat /etc/shadow | grep www
www-data:*:18667:0:99999:7:::
好了,说明用户和组都存在.
然后想想怎么切换过去,直接su一下发现我没有密码啊,那得修改密码,先把自己切换为root,然后就可以 sudo passwd 这个用户,重置密码后切会正常用户
sudo su
# sudo passwd www-data
New password:
Retype new password:
passwd: password updated successfully
# su my_account(我正常用的帐号)
$ whomai
之后就尝试切换一下
su www-data
Password:
This account is currently not available.
看来我进不去哦,这个帐号被限制了,看看是什么情况,
cat /etc/passwd|grep www
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
好吧,不让我登录,那我改改
改成这样
cat /etc/passwd|grep www
www-data:x:33:33:www-data:/var/www:/bin/bash
然后再尝试
sudo vi /etc/passwd
$ su www-data
Password:
$ whoami
www-data
这回成功了,可以了
想切回来就 su 你的帐号 就行了
# su my_account(我正常用的帐号)
$ whomai
我觉得应该是将需要让php执行的代码改为www-data用户组,然后那些用hyperf 或者swoole或者你自己写的php cli命令行执行的脚本都改为这个www-data:www-data组,然后切换为这个www-data帐号去执行 php script.php 这样是比较安全的.
如果没有什么读写权限,你就把这个脚本文件的所有者改为www-data,这样就有权限了,比如读写缓存 创建文件等等.