如果我ls -alt
在任何文件夹中执行此操作,我会得到以下内容。即使是我用 root 创建的文件或文件夹。命令如stat filename
return Operation not permitted
。知道是什么原因造成的吗?
[root@011319292d9c ~]# pwd
/root
[root@011319292d9c ~]# ls -alt
ls: cannot access '.': Operation not permitted
ls: cannot access '..': Operation not permitted
ls: cannot access '.bash_profile': Operation not permitted
ls: cannot access '.tcshrc': Operation not permitted
ls: cannot access '.bashrc': Operation not permitted
ls: cannot access '.bash_logout': Operation not permitted
ls: cannot access 'test-file-i-created-as-root': Operation not permitted
total 0
d????????? ? ? ? ? ? .
d????????? ? ? ? ? ? ..
-????????? ? ? ? ? ? .bash_logout
-????????? ? ? ? ? ? .bash_profile
-????????? ? ? ? ? ? .bashrc
-????????? ? ? ? ? ? .cshrc
-????????? ? ? ? ? ? .tcshrc
-????????? ? ? ? ? ? test-file-i-created-as-root
PS 这发生在 docker 容器内,为了调试目的,我使用 Redhat 8.5 的 docker 镜像中的 bash 启动了它,如下所示:
docker run --rm -ti --entrypoint /bin/bash <Image-ID>
重要的是要提到的是,当我附加以以下方式启动的运行容器时,我没有遇到问题docker run
docker exec -ti <Image-ID> /bin/bash
容器的宿主操作系统:
cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.5 (Ootpa)"
-------------
uname -a
Linux 3985430895d8 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Dockerfile
FROM custom-docker-image:tag
RUN microdnf update
RUN install-custom-server-modules.sh
CMD ['start-script.sh']
(!)一旦我RUN microdnf update
从 Dockerfile 中删除该行,我就不再遇到问题了。