su:删除读取后拒绝权限,从其他位置执行位

时间:2018-11-15 23:20:45

标签: docker dockerfile permission-denied alpine su

我想将 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 

1 个答案:

答案 0 :(得分:0)

我不好,我想通了自己。由于我的dockerfile以USER deploy:nobody身份运行,因此无论我在哪里运行docker exec -it alpine sh,容器都以组nobody身份运行,但是/ bin / su仅允许root:deploy。 :)