您的位置:首页 > 编程语言 > PHP开发

ubuntu server12.04配置sftp

2013-01-14 20:36 543 查看
设置SFTP的目标如下:

1. 用户只能通过sftp访问,不能登录SSH

2. 用户要被锁定在特定的目录下,没有读写其它目录的权限

下面开始:

1、首先修改sshd的配置文件:

$ sudo nano /etc/ssh/sshd_config

2、将该文件的末尾修改如下:

#Subsystem sftp /usr/lib/openssh/sftp-server #该行注释掉

Subsystem sftp internal-sftp

#UsePAM
yes #该行同样注释掉,或者移到Subsystem sftp internal-sftp的上面

Match Groupsftp-users #匹配sftp组,如为单个用户可用:Match
User test;

ChrootDirectory /sftphome/

X11Forwarding no

AllowTcpForwarding no

ForceCommand internal-sftp

#ChrootDirectory:指定用户被锁定到的目录,为了能够chroot成功,该目录必须属主是root,并且其他用户或组不能写

3、下面建立sftp-users组和一个测试用户test,并把该用户加到sftp-users组:

$ sudo groupadd sftp-users

$ sudo gpasswd -a testsftp-users

$ sudo passwd test

4、更改文件夹属性:

sudo chown root /sftphome/

sudo chmod 755 /sftphome/

sudo mkdir /sftphome/writeable

sudo chown -R test:sftp-users /home/bob/writeable
#更改文件夹及其子文件夹的属主

sudo chmod 755 /home/bob/writeable

5、重启SSH服务 sshd:

$
sudo /etc/init.d/ssh reload

参考:http://yhf8377.blog.163.com/blog/static/176860177201210217219800/
http://askubuntu.com/questions/134425/how-can-i-chroot-sftp-only-ssh-users-into-their-homes

linux权限

Linux权限分为 r=4,w=2,x=1,即读,写,执行,权限一共有7(4+2+1),每个文件都有权限,比如:



以share文件夹为例说明, 每个文件夹前面有对应的权限列表( ls -all ),
三个一组: rwx rwx r-x
拥有者 拥有者所在用户组 其他人
拥有者是test,所在的组是sftp-users ,test的权限是可读可写可执行,他所在用户组的所有成员也拥有这些权限,需要如下设置:

1. 更改文件拥有者
sudo chown test:sftp-users
-R share # -R 代表递归整个目录
2.提升用户及其用户组的权限
sudo chmod 775 share
第一个7 代表zq的权限,第二个7代表test所在用户组的权限,第三个5代表其他人的权限(5=4+1,即可读可执行,不可写)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: