首页 > 系统相关 >Linux VM通过NFS3.0挂载Azure Blob Storage Container后访问共享文件夹Permission denied

Linux VM通过NFS3.0挂载Azure Blob Storage Container后访问共享文件夹Permission denied

时间:2023-06-25 17:56:25浏览次数:47  
标签:Container Permission squash cd denied root 目录

问题描述

如图所示,/root-squash是一个Blob Storage Container的挂载点。ls -al查看该目录的权限为:
drwxr-xr-- 2 root root 0 Jun 23 23:15 root-squash
当前用户身份为root,但在尝试进入该目录时失败,报错信息为:-bash: cd: root-squash: Permission denied
image

调查过程

猜测

NFS server和client是两套独立的用户身份和ACL控制,因此server可以通过配置root-squash选项来定义client上的用户身份如何映射到server。

  • no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
  • root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。
  • all_squash: 与上述root_squash差别不详,实测root在Container上映射为other。

通过NFS挂载的共享目录,实际的文件系统操作都是通过RPC完成。猜测该现象是由于root-squash配置导致,以下是验证过程。

验证过程

  1. root-squash选项值设置为root squash,ACL为754,此时访问该目录Permission denied。
    image
    image

  2. 在ACL配置中给other加上execute权限后,cd root-squash成功。
    image
    image

  3. 通过tcpdump抓取网络包进一步观察。
    可以观测到,ls、cd等操作都会被转换为对应的RPC,所有的状态都存储在服务器。
    image
    其中cd进入文件夹的操作被转换为Access Call,其中包含当前客户端及当前用户UID,GID。服务器根据root squash的配置,将client映射为对应other的身份,并查询相应ACL,最终返回Access Denied。client端接收到响应,将cd的执行结果置为Permission denied。
    image
    image

标签:Container,Permission,squash,cd,denied,root,目录
From: https://www.cnblogs.com/dereksworkshop/p/17503577.html

相关文章

  • Access denied for user 'root'@'121.28.69.73' (using password: YES)问题的解决
    问题描述发现是连接不上远程数据库,那就只能先转成本地运行了问题解决转成本地的相关步骤:好吧,耽误了大概一个小时的时间,就是远程连接失败,需要换成本地的;就是将数据库改成本地连接就行啦!......
  • [matplotlib] Artist中的container
    Artist对象分为primitives和containers两种。primitives对象主要是我们想在figure上画出的各类图形对象。containers对象主要用来放置primitives对象,有四种,即figure、axes、axis和tick。1.Figure创建figure:importmatplotlib.pyplotaspltfig=plt.figure()使用plt.......
  • Flutter 学习 之 权限管理 permission_handler 9.2.0
    官方文档地址permission_handler控制台打印提示信息的时候可能会有两种(我遇到的)Noandroidspecificpermissionsneededfor:9可能表示你当前申请的权限你的系统不支持就是备注里nothing的Noandroidspecificpermissionsneededfor:[]9可能表示你没在AndroidM......
  • permission denied while trying to connect to the Docker daemon socket at unix://
     001、问题[liujiaxin01@PC1~]$dockersearchomicsclasspermissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run/docker.sock:Get"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/search?term=omicsclass":dialunix......
  • 后台导出excel报错,java.io.IOException:Permission denied
    java使用poi导出excel,会创建并使用一个临时文件夹这个问题的原因就是临时文件夹的操作权限不够,使用chown修改文件夹权限即可。linux中临时目录是/tmp/poifileswindow是在AppData\Local\Temp\poifiles......
  • containerd服务相关
    一、Containerd概念在2016年12月14日,Docker公司宣布将containerd从Docker分离,由开源社区独立发展和运营。Containerd完全可以单独运行并管理容器,而Containerd的主要职责是镜像管理和容器执行。Containerd提供了containerd-shim接口封装层,向下继续对接runC项目,使得......
  • python--python脚本中保存处理后的音频文件到指定文件夹时报错permission denied 的问
    问题1:自己编写的python脚本中,将处理后的音频文件保存到指定的文件夹(用到了pydub库对音频文件进行处理),但保存处理后的文件到指定文件夹时,会报错permissiondenied的错误,如下截图解决思路:一开始网上查资料,基本上都是说文件夹没有读写权限,让设置文件夹权限等操作,但设置了之后还是......
  • How to enable auto restart of a docker container on system reboot ?
    Howtoenableautorestartofadockercontaineronsystemreboot ?https://amalgjose.com/2021/02/12/how-to-enable-auto-restart-of-a-docker-container-on-system-reboot/#:~:text=How%20to%20enable%20auto%20restart%20of%20a%20docker,Ensure%20the%20docker%20co......
  • Linux中-bash: /dev/null: Permission denied问题解决
    云上架构2021年08月06日09:19 ·  阅读682​今天在Centos7上运行如下命令 shell复制代码######添加hdfs用户#####useraddhdfs######切换至hdfs用户#####su-hdfs报如下错误 javascript复制代码-bash:/dev/null:Permissiondenied-bash......
  • container scale up/ down 原理 in kubernetes
    https://imroc.cc/kubernetes/best-practices/autoscaling/hpa-velocity.html 原理与误区HPA在进行扩缩容时,先是由固定的算法计算出期望副本数: 期望副本数=ceil[当前副本数*(当前指标/期望指标)]其中 当前指标/期望指标 的比例如果接近1(在容忍度范围内,默......