我想将 su 的访问权限限制为其他人,而不是我的部署用户。所以我遵循以下步骤。如您所见,su已由deploy拥有,但仍然无法访问它。 我的docker文件如下:
FROM alpine:3.8
RUN set -ex \
&& addgroup -g 1000 deploy \
&& adduser -D -u 1000 -G deploy -s /bin/sh deploy \
&& chown root:deploy /bin/su \
&& chmod u+rws,g+rws,o-rwx /bin/su
USER deploy:nobody
当我执行以下命令时,在容器内部:
/var/www/ $ ls -al /bin/su
-rwsrws--- 1 root deploy 36560 May 19 11:19 /bin/su
/var/www/ $ su -h
sh: su: Permission denied
注意:当我从root切换到部署时,如下所示。
docker exec -it --user root alpine sh
/var/www/ # su deploy
/var/www/ $ su -h
答案 0 :(得分:0)
我不好,我想通了自己。由于我的dockerfile以USER deploy:nobody
身份运行,因此无论我在哪里运行docker exec -it alpine sh
,容器都以组nobody
身份运行,但是/ bin / su仅允许root:deploy。 :)