- 本文地址: https://www.yangdx.com/2021/07/196.html
- 转载请注明出处
想在 php 容器中想切换至 www-data 去执行一些低权限的操作,但执行 su www-data
的时候提示账号不可用:
$ su www-data
This account is currently not available.
这是因为,在 php 容器中 www-data 账号默认是被禁止登录的。查看 /etc/passwd
确认被禁止登录:
$ cat /etc/passwd
...
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
...
有的教程会告诉你,把 /etc/passwd
中的这个 /usr/sbin/nologin
改成 /bin/bash
可解除这个限制。确实可行,不过呢,还有另一种不修改文件的方法,如下。
在执行 su www-data
的时候可以通过 -s
参数改变目标账号默认的 shell
,如执行 su www-data -s /bin/bash
,这样就可以登录 www-data 账号了。
如果只是想执行某条指令后就退出,可以使用 -c
参数,如:
$ su www-data -s /bin/bash -c 'touch hello'
快来评论一下吧!
发表评论