假设我有以下 yaml:
spec:
securityContext:
fsGroup: 5678
serviceAccountName: some-account
volumes:
- name: secrets
secret:
secretName: data-secrets
- name: secrets-sftp-passwd-key
secret:
secretName: sftp-passwd-key
containers:
- name: sftp
securityContext:
runAsUser: 1234
runAsGroup: 5678
image: "some/some"
imagePullPolicy: always
ports:
- name: tcp-sftp
containerPort: 22
volumeMounts:
- name: secrets-sftp-passwd-key
mountPath: /etc/sftp/secret/
- name: data
mountPath: "/var/data"
env:
- name: "SFTP_USER"
value: "some_user"
- name: "SFTP_PASSWD"
value: "password-1"
我正在尝试sftp
使用runAsUser
and运行容器runAsGroup
。图像的入口点脚本应该采用 SFTP_USER、SFTP_PASSWD 并使用此输入创建某些密码和组文件。这些文件应该在 /var/data 文件夹中创建。在此之后,应该以 1234 用户身份使用这些密码和组文件启动一个 proftpd 进程。容器以 1234 用户身份启动。但是这些文件的权限是root:5678。我收到以下错误:
unable to set UID to 0, current UID: 1234
镜像的入口点脚本如下:
echo "Starting to create password file"
PASSWORD=123456
echo $PASSWORD | /usr/bin/ftpasswd --passwd --file=/var/data/ftpd.passwd --name=virtual --uid=1234 --gid=5678 --home=/var/data/ --shell=/bin/bash --stdin
echo "Password file created"
/usr/bin/ftpasswd --group --name=--group --name=virtual --file=/var/data/ftpd.group --gid=5678 --member=1234
proftpd -n -4 -c /var/data/proftpd.conf --> This line is throwing the above error.
这里出了什么问题?为什么它试图将 UID 设置为 0?我的印象是给runAsUser
,runAsGroup
并将fsGroup
确保 /var/data 文件夹具有 1234 的正确所有权。