有关ubuntu实用工具系列的几个细节

前言

在Linux系统中,FTP服务器软件有很多,都已经成熟,像vsftpd, wu-ftp, Pure-FTPd等。但这些软件安装配置起来都比较麻烦,搭建个人的FTP服务器,还是Proftpd比较简单。

目录

1. Proftpd介绍

Proftpd是一款开放源码的FTP服务器软件,它是原来世界范围使用最广泛的wu-ftpd的改进版,它修正了wu-ftpd的许多缺陷,在许多方面进行了重大的改进,其中一个重要变化就是它学习了Apache 的配置方式,使proftpd的配置和管理更加简单易懂。

有两种运行方式,独立服务器与超级服务器的子服务器。无论从安全性和稳定性,还是可配置性来说都是非常好的选择。

官方网站:

2. Proftpd安装

系统环境

Linux Ubuntu 12.04.2 LTS 64bit server

安装Proftpd

~ sudo apt-get install proftpd

<h

选择“standalone”

查看proftpd状态

~ sudo /etc/init.d/proftpd statusProFTPD is started in standalone mode, currently running.~ ps -aux|grep ftpproftpd 6674 0.0 0.1 94648 2092 ?Ss 16:05 0:00 proftpd: (accepting connections)#启动端口21~ netstat -nltp|grep 21tcp600 :::21:::*LISTEN-3. Proftpd配置文件

配置文件:/etc/proftpd/proftpd.conf

#配置服务器名ServerName""blog.fens.me FTP Server" #设置服务器运行模式,独立服务,或者被监管ServerTypestandalone #设置为默认服务器DefaultServeron #设置服务器进程运行使用的用户Userproftpd#设置服务器进程运行使用的组Groupnogroup#设置关闭IPv6支持UseIPv6off#设置服务器接受请求的端口Port21 #设置被动模式使用的端口范围PassivePorts 60000 65535#设置用户上传文件的权限掩码Umask022#设置用户被chroot锁定到的各自的Home目录DefaultRoot/ftp#关闭欢迎信息显示DeferWelcomeoff #如果显示欢迎信息,则指定显示的文件DisplayLoginwelcome.msg #指定切换文件夹时,显示的欢迎信息DisplayChdir.message #设置日志SystemLog/var/log/proftp.logTransferLog/var/log/proftp-transfer.log

#限定操作

<Limit SITE_CHMOD>DenyAll</Limit>

#设置匿名用户资源

<Anonymous "/ftp/c">…</Anonymous>

#配置存储目录权限

<Directory "/ftp/a/" ><Limit ALL>AllowUser xAllowUser a1DenyAll</Limit><Limit CWD READ RETR DIRS>AllowAll</Limit></Directory>

Limit权限说明:

4. Proftpd使用场景

场景描述:某公司建立统一的FTP服务器(/ftp),公司有a部门(/ftp/a),b两个部门(/ftp/b),,有独立的存储空间。

a1为a部门经理有对(/ftp/a)操作权限,a2为a部门员工只能读文件。

b1为b部门经理有对(/ftp/b)操作权限,b2为b部门员工只能读文件。

x为公司总经理,有对(/ftp)操作权限。

操作权限:

/ftp — x所有操作/ftp/a — a1所有操作, a2只读/ftp/b — b1所有操作, b2只读

命令操作:

# 创建FTP目录sudo mkdir /ftpsudo mkdir /ftp/asudo mkdir /ftp/b# 创建用户组sudo groupadd asudo groupadd b

Ubuntu系统配置nologin,与其他Linux稍有不同

~ sudo vi /etc/shells# /etc/shells: valid login shells/bin/sh/bin/dash/bin/bash/bin/rbash/usr/bin/tmux/usr/bin/screen/usr/sbin/nologin

最后一行增加/usr/sbin/nologin

创建用户并设置nologin, 禁止FTP账户登陆

sudo useradd a1 -g a -s /usr/sbin/nologinsudo useradd a2 -g a -s /usr/sbin/nologinsudo useradd b1 -g b -s /usr/sbin/nologinsudo useradd b2 -g b -s /usr/sbin/nologinsudo useradd x -G a,b -s /usr/sbin/nologin#设置账户密码echo -e "a1:123" | sudo chpasswdecho -e "a2:123" | sudo chpasswdecho -e "b1:123" | sudo chpasswdecho -e "b1:123" | sudo chpasswdecho -e "x:123" | sudo chpasswd#设置目录权限sudo chown x /ftpsudo chown a1:a /ftp/asudo chmod 770 /ftp/asudo chmod g+s /ftp/asudo chown b1:b /ftp/bsudo chmod 770 /ftp/bsudo chmod g+s /ftp/b

修改配置文件:/etc/proftpd/proftpd.conf

~ sudo vi /etc/proftpd/proftpd.confServerName "blog.fens.me FTP Server"ServerType standaloneDefaultServer onPort 21Umask 022MaxInstances 30User proftpdGroup nogroupDefaultRoot /ftpAllowOverwrite onSystemLog /var/log/proftp.logTransferLog /var/log/proftp-transfer.log<Directory "/ftp/*"><Limit CWD READ>AllowAll</Limit></Directory><Directory "/ftp/a/" ><Limit ALL>AllowUser xAllowUser a1DenyAll</Limit><Limit CWD READ RETR DIRS>AllowAll</Limit></Directory><Directory "/ftp/b/" ><Limit ALL>AllowUser xAllowUser b1DenyAll</Limit><Limit CWD READ RETR DIRS>AllowAll</Limit></Directory><Limit SITE_CHMOD>DenyAll</Limit>

重新服务器

~ sudo /etc/init.d/proftpd restart * Stopping ftp server proftpd[ OK ] * Starting ftp server proftpd 5. 客户端访问

客户端命令行:Win7 64bit Command

模拟a1用户登陆:

~ ftp#建立连接ftp> open 192.168.1.201连接到 192.168.1.201。220 ProFTPD 1.3.4a Server (blog.fens.me FTP Server) [::ffff:192.168.1.201]用户(192.168.1.201:(none)): a1331 Password required for a1密码:230 User a1 logged in#查看目录 ftp> dir200 PORT command successful150 Opening ASCII mode data connection for file listdrwxrws— 2 a1a4096 Nov 3 12:59 adrwxrws— 2 b1b4096 Nov 3 12:25 b226 Transfer completeftp: 收到 116 字节,用时 0.00秒 58.00千字节/秒。ftp> cd a250 CWD command successfulftp> pwd257 "/a" is the current directoryftp> dir200 PORT command successful150 Opening ASCII mode data connection for file list-rw-r–r– 1 a2a55723 Nov 3 12:56 36kryunjiasu.docx-rw-r–r– 1 a1a4 Nov 3 12:24 test.txt226 Transfer completeftp: 收到 139 字节,用时 0.00秒 69.50千字节/秒。#上传文件ftp> put c:\22.log200 PORT command successful150 Opening ASCII mode data connection for 22.log226 Transfer completeftp: 发送 120 字节,用时 0.06秒 2.18千字节/秒。#下载文件ftp> get test.txt200 PORT command successful150 Opening ASCII mode data connection for test.txt (4 bytes)226 Transfer completeftp: 收到 5 字节,用时 0.00秒 5000.00千字节/秒。#尝试访问B目录,出错ftp> cd ../b550 ../b: No such file or directory#退出ftp> bye221 Goodbye.而更像是听见了天地间冥冥中的呼唤,

有关ubuntu实用工具系列的几个细节

相关文章:

你感兴趣的文章:

标签云: