切换自己为www-data用户

突发奇想的想把切换为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,这样就有权限了,比如读写缓存 创建文件等等.

原文地址:https://www.cnblogs.com/lizhaoyao/p/14989940.html