我是一名 Windows 管理员,老板要求我建立一个 sftp 和 samba 服务器。sftp 和 samba 服务器都使用 Windows AD 进行身份验证。外部客户只需使用 sftp 并且必须被限制在他们的目录中。内部用户必须能够打开所有文件和文件夹才能将文档上传/下载给外部客户。
- 我已经配置了一个 CentOS sftp 服务器,并将用户关进监狱(当他们直接连接到 sftp 服务器时)
- 我已经配置了 CentOS samba 服务器并且内部用户能够读/写/遍历共享。
我遇到的问题是将 sftp 服务器连接到 samba 服务器。用户可以下载文件,但无法上传。
# mount -t cifs //10.x.x.x/share /mnt -o username=xxxxxxxxxxi,workgroup=DOMAIN
如果我输入
# mount -t cifs //10.x.x.x/sftp /mnt -o username=xxxxxxxx
权限是0755。
我尝试通过 fstab 挂载:
//10.x.x.x/share /mnt cifs nofail,iocharset=utf8,username=xxxxxxxx,file_mode=0775,dir_mode=0775 0 0
当我尝试上传文件时,/var/log/secure 中出现错误。
pam_krb5[19725]: error reading ccache's default principal name from "KEYRING:persistent:573216638", not reading externally-provided creds
答案1
正如 Michael Hampton 所建议的,一个可行的解决方案是让 SFTP 服务器通过 NFS 挂载 Samba 服务器的数据卷(或者更确切地说,使用 Samba 和 SFTP 作为通过 NFS 挂载在两个盒子上的共享存储的前端)并同步他们的用户 ID(例如使用 SSSD)。