Home
Categories
WIKI
Topic
User
LANGUAGE:
中文
English
分享:给指定用户共享指定目录
Experiences and Insight
575
views ·
2
replies ·
To
floor
Go
zhangn1985
deepin
2020-10-15 00:55
Author
用samba很容易,但是也需要很多配置。比如添加samba用户,设置共享。 而且这在纯Linux环境下用samba总是有些别扭。
那么NFS行吗?
NFS不行,原因有2
1,NFS要配合Kerberos才可以实现认证,配置略复杂,如果共享到一个网段,那么全网段的用户都认证成功均可访问共享,所以不能实现用户和目录一一对应。
2,共享到单个IP+Kerberos,那么IP地址的获得也不是认证的,而且对于动态IP地址获得就不能指定用户了。
那么除samba外,唯一可行的就是sshfs了。
1, sshfs自带认证,2,sshfs可以提供chroot,限制共享。3,sshd可以为用户仅提供sftp功能,而不能登录
下面是实现步骤(仅sftp功能用户)
a,创建sftp用户组,
groupadd sftpusers
b,向这个组添加新用户,并设置密码:
useradd -g sftpusers -d /incoming -s /sbin/nologin guestuserpasswd guestuser
这里说明一下,/incoming为 guestuser的Home目录。
/etc/passwd会加一行类似与:
guestuser:x:500:500::/incoming:/sbin/nologin
c,编辑/etc/ssh/sshd_congfig
修改:
Subsystem sftp /usr/libexec/openssh/sftp-server
为
Subsystem sftp internal-sftp
如果没有则要直接添加。
d,在/etc/ssh/sshd_congfig添加配置
Match Group sftpusers ChrootDirectory /sftp/%u ForceCommand internal-sftp
e, 创建目录:
mkdir -p /sftp/guestuser/incomingchown guestuser:sftpusers /sftp/guestuser/incoming
说明:
/sftp/%u %u代表登录sftp的用户名,如果xiaoming登录这里就是/sftp/xiaoming
f:使用sshkey登录而不是密码
修改d步骤添加的配置,添加:
AuthorizedKeysFile /etc/ssh/authorized_keys/%u .ssh/authorized_keys
把你的用于登录的公钥记录到 /etc/ssh/authorized_keys/%u如果是用xiaoming登录则记录到 /etc/ssh/authorized_keys/xiaoming (文件不存在则新建,确保文件仅xiaoming能访问)
g:使用不同的sshkey登录sftp
新建sshkey
ssh-keygen (回车)
填写文件名,例如sftp-key
把sftp-key.pub内入填入 /etc/ssh/authorized_keys/%u
h:测试
sftp guestuser@HOST -i sftp-key
> ls /
incoming
可以看出,只能查到incoming目录,达成目的。
Reply
Like 0
Favorite
View the author
All Replies
jingle
deepin
2020-10-16 19:16
#1
谢谢分享
Reply
Like 0
View the author
zxx889
deepin
2021-11-19 00:23
#2
如果能配上图片就好多了
Reply
Like 0
View the author
Please
sign
in first
Featured Collection
Change
[Tutorial] deepin25 WSL Offline Installation Guide
UOS AI 2.8 Released! Three New Intelligent Agents & Major Evolution
Solid Q&A | deepin 25 Common Questions – The Immutable System Edition
New Thread
Popular Ranking
Change
simple
Popular Events
More
那么NFS行吗?
NFS不行,原因有2
1,NFS要配合Kerberos才可以实现认证,配置略复杂,如果共享到一个网段,那么全网段的用户都认证成功均可访问共享,所以不能实现用户和目录一一对应。
2,共享到单个IP+Kerberos,那么IP地址的获得也不是认证的,而且对于动态IP地址获得就不能指定用户了。
那么除samba外,唯一可行的就是sshfs了。
1, sshfs自带认证,2,sshfs可以提供chroot,限制共享。3,sshd可以为用户仅提供sftp功能,而不能登录
下面是实现步骤(仅sftp功能用户)
a,创建sftp用户组,
groupadd sftpusers
b,向这个组添加新用户,并设置密码:
useradd -g sftpusers -d /incoming -s /sbin/nologin guestuserpasswd guestuser
这里说明一下,/incoming为 guestuser的Home目录。
/etc/passwd会加一行类似与:
guestuser:x:500:500::/incoming:/sbin/nologin
c,编辑/etc/ssh/sshd_congfig
修改:
Subsystem sftp /usr/libexec/openssh/sftp-server
为
Subsystem sftp internal-sftp
如果没有则要直接添加。
d,在/etc/ssh/sshd_congfig添加配置
Match Group sftpusers ChrootDirectory /sftp/%u ForceCommand internal-sftp
e, 创建目录:
mkdir -p /sftp/guestuser/incomingchown guestuser:sftpusers /sftp/guestuser/incoming
说明:
/sftp/%u %u代表登录sftp的用户名,如果xiaoming登录这里就是/sftp/xiaoming
f:使用sshkey登录而不是密码
修改d步骤添加的配置,添加:
AuthorizedKeysFile /etc/ssh/authorized_keys/%u .ssh/authorized_keys
把你的用于登录的公钥记录到 /etc/ssh/authorized_keys/%u如果是用xiaoming登录则记录到 /etc/ssh/authorized_keys/xiaoming (文件不存在则新建,确保文件仅xiaoming能访问)
g:使用不同的sshkey登录sftp
新建sshkey
ssh-keygen (回车)
填写文件名,例如sftp-key
把sftp-key.pub内入填入 /etc/ssh/authorized_keys/%u
h:测试
sftp guestuser@HOST -i sftp-key
> ls /
incoming
可以看出,只能查到incoming目录,达成目的。