docker vieux/sshfs 权限被拒绝

标签 docker sshfs

  1. 我使用 vieux/sshfs 创建卷
docker plugin install --grant-all-permissions vieux/sshfs
docker volume create  -d vieux/sshfs   -o sshcmd=usfo@192.168.1.1:/swarm-study/web/data  -o password='123' sshvolume
  • 我在容器上创建一个用户:usfo

    Dockerfile:
  • FROM debian
    COPY sources.list /etc/apt/sources.list
    RUN apt-get update
    RUN apt-get install -y apache2
    RUN apt-get install -y php7.0 php7.0-mysql
    COPY apache2.conf /etc/apache2/apache2.conf
    
    RUN groupadd -g 1000 usfo
    RUN useradd  -u 1000 -g 1000 usfo
    
    COPY index.php /var/www/html/index.php
    RUN mkdir /autorun
    COPY autorun.sh /autorun/autorun.sh
    RUN chmod 755 /autorun/autorun.sh
    RUN mkdir /html-data
    CMD ./autorun/autorun.sh
    
  • 并使用usfo用户运行apache

    apache2.conf:
  • User usfo
    Group usfo
    
  • 使用此命令运行容器
  • docker run -itd -p 80:80 --mount type=volume,source=sshvolume,destination=/swarm-data debian2
    
  • 我遇到了麻烦,只有 root 用户可以访问,usfo 用户不能访问
  • root@e3ca660f3a8d:/# su root
    root@e3ca660f3a8d:/# ls -l /swarm-data
    total 8
    -rw-r--r-- 1 usfo usfo 1136 Dec 26 02:37 Desktop.rar
    -rw-r--r-- 1 usfo usfo    7 Dec 26 02:18 a.txt
    
    root@e3ca660f3a8d:/# ls -l / | grep swarm-data
    drwxr-x---   1 usfo usfo 4096 Dec 26 02:37 swarm-data
    
    root@e3ca660f3a8d:/# su usfo
    $ ls -l / |grep swarm-data
    ls: cannot access '/swarm-data': Permission denied
    d?????????   ? ?    ?       ?            ? swarm-data
    
  • 尝试不使用 vieux/sshfs ,可以! ,但我必须使用 vieux/sshfs !!
  • docker run -itd -p 80:80 -v  /swarm-study/web/data:/swarm-data debian2
    
    root@d678cdb273c8:/# su usfo
    $ ls -l / | grep swarm-data
    drwxr-x---   2 usfo usfo 4096 Dec 26 10:54 swarm-data
    

    docker版本:17.09.1-ce

    Debian 9

    最佳答案

    报价:https://github.com/vieux/docker-volume-sshfs/issues/17
    感谢@koenlek

    原来需要使用sshfs的-oallow_other选项。

    docker volume create  -d vieux/sshfs   -o sshcmd=usfo@192.168.1.1:/swarm-study/web/data  -o allow_other -o password='123' sshvolume
    root@f5132a8f4b84:/# su usfo
    $ ls -l / | grep swarm-data
    drwxr-x---   1 usfo usfo 4096 Dec 26 10:54 swarm-data
    

    关于docker vieux/sshfs 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47977732/

    相关文章:

    python - Gunicorn ImportError : No module named application

    java - Docker 中的 Spring Boot 静态文件夹

    尝试通过 sshfs 保存文件时 emacs 发出警告

    python - 如何使用 sshfs 和 Python 子进程挂载和卸载文件夹?

    docker - 如何使用Rexster Docker镜像和灯泡在TinkerPop/Rextser中创建图形数据库?

    docker - Kubernetes 中是否有部署模式 'global'?

    python - 使用 Fabric run 命令安装 sshfs 失败

    sshfs EBCDIC 转 ASCII

    apple-m1 - macFUSE 提供 mount_macfuse : mount point . .. 本身位于 macFUSE 卷上 - Apple M1 macOS 12.3

    docker - 标准_init_linux.go :219: exec user process caused: no such file or directory