我有一个提供通过 SSH 访问的域名托管商。
我的平台是:
- Gentoo 2.6.36-r5
- Windows(XP/Vista/7)
我在 Windows 上工作,我使用 Gentoo 来完成 Windows 无法完成的所有神奇的事情。
因此我使用 sshfs 将我的域的远程公共目录挂载到 /mnt/mydomain.com。身份验证是通过密钥完成的,这样懒惰的我就不必时不时地输入密码了。
因为我是在 Windows 上进行编码,并且我不想一直上传/下载更改的文件,所以我想通过 samba 共享访问这个 /mnt/mydomain.com。
因此我在 samba 中共享了 /mnt,除 mydomain.com 之外的所有挂载都列在我的 Windows 资源管理器中。
我的理论是:
- SSHFS没有将挂载点 uid/gid 设置为桑巴期望
- 桑巴不知道它必须包含 uid/gid/mnt/mydomain.com已经设置好了。
- 以上都是错的,我不知道。
这是控制台的配置和输出,需要其他信息请告诉我。此外,我没有注意到与此问题相关的错误或警告,但我可能是错的。
gentoo ~ # ls -lah /mnt
total 20K
drwxr-xr-x 9 root root 4.0K Mar 26 16:15 .
drwxr-xr-x 18 root root 4.0K Mar 26 2011 ..
-rw-r--r-- 1 root root 0 Feb 1 16:12 .keep
drwxr-xr-x 1 root root 0 Mar 18 12:09 buffer
drwxr-s--x 1 68591 68591 4.0K Feb 16 15:43 mydomain.com
drwx------ 2 root root 4.0K Feb 1 16:12 cdrom
drwx------ 2 root root 4.0K Feb 1 16:12 floppy
drwxr-xr-x 1 root root 0 Sep 1 2009 services
drwxr-xr-x 1 root root 0 Feb 10 15:08 www
/etc/samba/smb.conf
[mnt]
comment = Mount points
writable = yes
writeable = yes
browseable = yes
browsable = yes
path = /mnt
/etc/fstab
sshfs#[email protected]:/home/to/pub/dir/ /mnt/mydomain.com/ fuse comment=sshfs,noauto,users,exec,uid=0,gid=0,allow_other,reconnect,follow_symlinks,transform_symlinks,idmap=none,SSHOPT=HostBasedAuthentication 0 0
为了更容易阅读:
- [电子邮件保护]
- /主页/到/pub/dir/
- /mnt/mydomain.com/
选项:
- 评论=sshfs
- 禁止自动
- 用户
- 执行
- uid=0
- gid=0
- 允许其他
- 重新连接
- follow_symlinks
- 变换符号链接
- idmap=无
- SSHOPT=基于主机的身份验证
帮助!
答案1
sshfs
是基于 FUSE 的文件系统,出于安全考虑,默认情况下 FUSE 层不允许其他用户访问其挂载。您有allow_other
选项,但它将被忽略,直到您也编辑/etc/fuse.conf
以包含user_allow_other
。
答案2
答案3
由于您的普通 smb 共享正在运行,因此我不会错过有关 Samba 配置的任何信息,因为您可以像共享普通文件夹一样使用 sshfs 挂载。但与仅本地计算机访问相比,通过 sshfs 挂载 SSH 共享是特殊的。
要通过 fstab 安装共享,您可以将此行放入 /etc/fstab 并按要求安装共享。这比 c&p 命令行命令更方便。
通用 etc/fstab 行:
**<USERNAME>**@<SERVER>:<REMOTE_PATH> /MOUNT/POINT fuse.sshfs noauto,users,idmap=user,IdentityFile=/path/to/.ssh/id_rsa,allow_other,reconnect,port=22,uid=<UID>,gid=<GID> 0 0
禁止自动:您需要通过mount /MOUNT/POINT
/etc/fstab 中的这一行获取所有其他信息来挂载它
用户: 允许普通用户挂载此挂载条目
重新连接:待机后重新连接/重新挂载 ahre 等
uid=/gid=:将远程 uid/gid 映射到本地 uid/gid
例子:
[email protected]:/home/foo/music ~/foos_music fuse.sshfs noauto,users,idmap=user,IdentityFile=/home/foo/.ssh/id_rsa,allow_other,reconnect,port=22,uid=foo,gid=users 0 0
关于 sshfs 挂载你需要知道的一切 [https://wiki.archlinux.org/index.php/Sshfs]