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

(ZT)install and config vsftpd on debian

2015-04-05 22:09 344 查看
original url from : http://www.wyxuan.com/140.html
debian安装vsftpd并配置FTP服务器

  

  安装

  apt-get install vsftpd

  

  配置

  

  安装好之后,配置文件应该在/etc/vsftpd.conf,编辑这个文件,修改如下几个地方:

  anonymous_enable=NO

  local_enable=YES

  write_enable=YES

  local_umask=022

  

  以上每行解释如下:

  1.禁止匿名用户访问ftp

  2.允许本地用户访问ftp

  3.允许本地用户上载文件

  4.上载文件的时候,使用的掩码是022

  

  然后重启vsftpd就可以了

  

  /etc/init.d/vsftpd restart

  #/etc/init.d/vsftpd start

  

  创建ftp用户并修改密码:

  adduser ftpuser

  passwd ftpuser

  

  限制用户访问目录:

  配置文件应该在/etc/vsftpd.conf

  chroot_local_user=NO

  

  chroot_list_file=/etc/vsftpd.chroot_list

  

  vsftpd.chroot_list文件里列出用户名称

  

  重启vsftpd,这样,用户ftp上去,只能访问自己的目录了

////////////////////////////////////////////////////////////////////////////////

用的vsftpd_2.3.5-3_amd64.deb

实验不出来怎样才能用户登录后,呆在自己的目录.

只是可以用ftp工具上传下载ftp上的文件了, 登录后的用户可以随意切换到别的目录,东西都被看光了, 可怕.只能先玩玩.

以后整明白了,再补上.

vsftpd.conf修改的内容为:

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022


chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list


/etc/vsftpd.chroot_list的内容:

# touch /etc/vsftpd.chroot_list
# vi /etc/vsftpd.chroot_list
ftp_upload
ftp_download
ftpuser


以下2种情况, ftp工具(FlashFXP)访问不到ftp.

* chroot_local_user=NO

* /etc/vsftpd.chroot_list 中不写入登录的ftp用户名.

如果规划将ftp数据放到单独的数据盘

将ftp目录放在另外的数据盘上
将 /media/data0/ftp/dir_ftp_upload/ 用chown和chmod改掉权限, 然后将ftp目录映射到数据盘目录.

mount --bind /media/data0/ftp/dir_ftp_upload/ /home/ftpuser/dir_ftp_upload
现在,除了ftp用户登录后,可以随便切换上级目录,没有其他问题了.

////////////////////////////////////////////////////////////////////////////////

实验中, 可能会用到的命令, 先贴上.

查看debian版本, show e.g. 7.8

lsb_release -a

install_and_cfg_vsftpd_on_debian
清屏
clear
移除 vsftpd
dpkg -r vsftpd

查看 vsftpd 安装后的目录信息
dpkg -L vsftpd

安装vsftpd
安装之前,先卸载vsftpd
dpkg -r vsftpd

安装前,已经将下载后的vsftpd安装文件拷贝到了本地

移除已经存在的配置文件
cd /etc/
rm vsftpd.conf

安装时,恢复丢失的配置文件
cd /home/debian-cd/
dpdg -i --force-confmiss vsftpd_2.3.5-3_amd64.deb

备份刚安装号的配置文件, 以后可以比较和恢复配置文件
cp vsftpd.conf ./vsftpd.conf.bk

重启网络
/etc/init.d/networking restart

比较配置文件的不同
diff vsftpd.conf vsftpd.conf.bk

安装 libcap2
apt-get intall libcap2

搜索字符串 
/obj_string
在搜索结果中转到下一个字符串 n

使vim显示行号
:set number

跳到指定行
:112<ENTER> ///< 跳到112行

编辑 /etc/vsftpd.conf
local_enable=YES 			///< 26 line
chroot_local_user=YES 			///< 112 line

添加ftp组用户
显示用户 : cut -d: -f1 /etc/passwd
查看用户所在的组信息 : id user_name

删除用户 userdel ftp_upload

添加用户
adduser --home /srv/ftp/ftp_upload --ingroup ftp --shell /sbin/nologin ftp_upload
adduser --home /srv/ftp/ftp_download --ingroup ftp --shell /sbin/nologin ftp_download

修改用户组到 ftp
usermod -g ftp ftp_upload

查看用户信息
Id ftp_upload

修改用户口令
passwd ftp_upload

修改chroot_list文件, 安装完是没有的
vi /etc/vsftpd.chroot_list

添加需要ftp操作的ftp组用户
每行一个用名

查看vsftpd的ftp目录
cat /etc/passwd | grep ftp

可以看到ftp根目录为 : /srv/ftp/

移除目录
rm -r /home/dir_to_remove

改变ftp用户在/home中的用户目录为可写
chmod a-w /home/ftp_upload

设置ftp目录权限
chmod -R 777 /home/ftp_upload

将ftp目录都设置到ftp组可访问
chgrp -R ftp /home/ftp_upload

查看ftp用户目录权限
Stat /home/ftp_upload

改变文件权限
chown ftpuser:ftpuser ./vsftpd*.*

在Debian本地测试ftp操作

ftp localhost
输入用户名和口令后, 进入ftp命令行操作.

* 还是用服务器之外的计算机上的ftp工具实验,真实些.


<2015-0412>

列出所有设备的UUID, 用于/etc/fstab 中的 auto mount

blkid


debian 中查看UUID有关的命令
https://wiki.debian.org/Part-UUID
还是没能开机就挂载数据盘, 以后再搞.

写了一个.sh, 在服务器启动后, 手工运行一下. 提示缺失的目录手工建立一下.

* 将数据盘挂上

* 将数据盘中的目录作为ftpuser的目录.

# @file mount_my_disk.sh
# mount my disk data0 and data1 to /media/data0 and /media/data1
mount /dev/sdb /media/data0
mount /dev/sdc /media/data1

# mount /media/data0/ftp_data0 to /home/ftpuser/ftp_data0
mount --bind /media/data0/ftp_data0 /home/ftpuser/ftp_data0


这样做,有个不好的地方,如果没有运行.sh, 直接运行FTP客户端,如果觉察不到该ftp数据目录不是数据盘上的目录, 后果就是 : 主硬盘满了之后,需要自己mv到数据盘中,浪费好多时间.

<2015-0418>

为了防止自己忘记需要手工执行的.sh, 将该.sh的执行放到/etc/rc.local中,开机启动.

这样,服务器开机后,就可以直接用ftp客户端去连接了. 也不用接外设(显示器,鼠标,键盘)了.

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/home/lostspeed/mount_my_disk.sh

exit 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: