请帮帮我!我已经为此挣扎了几天了.
我试图以非root用户的身份写入Kubernetes pod中的挂载,但被拒绝访问。
在Kubernetes清单中,我挂载了一个windows共享文件夹,如下所示:
kind: Deployment
apiVersion: apps/v1
metadata:
name: centos-deployment
spec:
template:
spec:
volumes:
- name: windows-mount
flexVolume:
driver: microsoft.com/smb
secretRef:
name: centos-credentials
options:
mountOptions: 'cifs,dir_mode=0777,file_mode=0777'
source: //100.200.300.400/windows-share
containers:
- name: centos-pod
image: 'centos:latest'
command:
- sh
- '-c'
- sleep 1000000
volumeMounts:
- name: windows-mount
mountPath: /var/windows-share在Dockerfile中,我更改为应用程序用户,如下所示:
# Drop from 'root' user to 'nobody' (user with no privileges).
USER nobody:nobody但是现在,挂载的所有者是"root“。"root“用户可以写入该路径,但用户"nobody”不能。
我尝试初始化容器以在文件夹上运行chmod -R 775,但看起来根用户无法更改装载的权限或所有权。(umask命令返回022)
如果我exec进入pod,我可以看到挂载被设置为755权限,而不是777 "file_mode=0755,dir_mode=0755“
[root@centos-deployment-5d46bd8b89-tzghs /]# mount | grep windows-share
//100.200.300.400/windows-share on /var/windows-share type cifs (rw,relatime,vers=default,cache=strict,username=*******,domain=,uid=0,noforceuid,gid=0,noforcegid,addr=100.200.300.400,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)您知道如何挂载Windows共享以使其可由非root用户写入吗?
谢谢!如有任何帮助,将不胜感激
发布于 2021-10-24 17:27:49
完整参考:https://linux.die.net/man/8/mount.cifs
试试玩mountOptions吧。例如:
uid=arg -当服务器不提供所有权信息时,设置将拥有已装载文件系统上所有文件或目录的uid。它可以指定为用户名或数字uid。如果未指定,则默认值为uid 0。mount.cifs帮助器的版本必须为1.10或更高版本,才能支持以非数字形式指定uid。有关详细信息,请参阅下面关于文件和目录所有权和权限的部分。
volumes:
- name: windows-mount
...
options:
mountOptions: 'cifs,uid=<YOUR_USERNAME>,dir_mode=0777,file_mode=0777'如果这不起作用,您还可以尝试添加noperm挂载选项。
noperm -客户端不执行权限检查。这可以公开此装载上的文件,以供本地客户端系统上的其他用户访问。通常仅当服务器支持CIFS Unix扩展,但客户端和服务器系统上的UID/GID不完全匹配,无法允许执行装载的用户进行访问时,才需要它。请注意,这不会影响由服务器软件在目标计算机上执行的正常ACL检查(服务器ACL对装载时提供的用户名的检查)。
volumes:
- name: windows-mount
...
options:
mountOptions: 'cifs,dir_mode=0777,file_mode=0777,noperm'关于在通用文件系统上使用chmod/chown
核心通用directories文件系统协议
不提供文件和目录的unix所有权信息或模式。因此,无论设置uid=或gid=选项的值是什么,文件和目录通常看起来都归它们所有,并将权限设置为装载的默认file_mode和dir_mode。尝试通过chmod/chown更改这些值将返回成功,但没有效果。
https://stackoverflow.com/questions/69698588
复制相似问题