## Question:
1.新建一个1大小的分区,文件系统为ext3 ,要求挂载到 /ftp下,以此分区作为 ftp服务器的数据存放空间。(略)
2.假设现在有两个部门:sxu_bm1,sxu_bm2(以下我们用部门1和部门2 描述),它们分别分配相应的目录 /ftp/sxu_bm1,/ftp/sxu_bm2
3.创建另一个公共目录 /ftp/public
4.假设现有两个用户:姓名_1,姓名_2(以下我们用用户1和用户2 来描述),用户1属于部门1,用户2属于部门2,他们分别只能访问自己所属部门的目录,但可访问public目录。
5.另外创建一个用户,用户名为admin,假设该用户为为管理员用户,即可以访问 ftp 服务器上的任何目录。
6.各个用户权限说明,用户1和用户2在其所能访问的目录中,能够上传和下载文件,但不能够删除文件、更改文件名。admin用户对所有目录都可以上传、下载、删除、等功能。
7.ftp服务不支持匿名用户访问。
## Answer:
使用本地用户模式
```
yum -y install vsftpd
groupadd depart1
groupadd depart2
groupadd ftppub
useradd -G depart1,ftppub name_1
useradd -G depart2,ftppub name_2
useradd -G depart1,depart2,ftppub admin
echo pass1 | passwd --stdin name_1
echo pass2 | passwd --stdin name_2
echo admin | passwd --stdin admin
mkdir /ftp
mkdir /ftp/sxu_bm1
mkdir /ftp/sxu_bm2
mkdir /ftp/pub
chown name_1:depart1 /ftp/depart1
chown name_2:depart2 /ftp/depart2
chown admin:ftppub /ftp/public
chmod -R 770 /ftp/*
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_root=/ftp
user_config_dir=/etc/vsftpd/local_user_config
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
touch /etc/vsftpd/chroot_list
mkdir /etc/vsftpd/local_user_config
cd /etc/vsftpd/local_user_config
vim name_1
cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RMD,SITE,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
vim name_2
cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RMD,SITE,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
vim admin
cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,DELE
```
## cmds_allowed
```
CWD - change working directory 更改目录
LIST - list remote files 列目录
MKD - make a remote directory 新建文件夹
NLST - name list of remote directory
PWD - print working directory 显示当前工作目录
RETR - retrieve a remote file 下载文件
STOR - store a file on the remote host 上传文件
DELE - delete a remote file 删除文件
RMD - remove a remote directory 删除目录
RNFR - rename from 重命名
RNTO - rename to 重命名
以上是常用的一些参数,大家对照学习一下!下面是列也的全部参数,供大家参考!
# ABOR - abort a file transfer 取消文件传输
# CWD - change working directory 更改目录
# DELE - delete a remote file 删除文件
# LIST - list remote files 列目录
# MDTM - return the modification time of a file 返回文件的更新时间
# MKD - make a remote directory 新建文件夹
# NLST - name list of remote directory
# PASS - send password
# PASV - enter passive mode
# PORT - open a data port 打开一个传输端口
# PWD - print working directory 显示当前工作目录
# QUIT - terminate the connection 退出
# RETR - retrieve a remote file 下载文件
# RMD - remove a remote directory
# RNFR - rename from
# RNTO - rename to
# SITE - site-specific commands
# SIZE - return the size of a file 返回文件大小
# STOR - store a file on the remote host 上传文件
# TYPE - set transfer type
# USER - send username
# less common commands:
# ACCT* - send account information
# APPE - append to a remote file
# CDUP - CWD to the parent of the current directory
# HELP - return help on using the server
# MODE - set transfer mode
# NOOP - do nothing
# REIN* - reinitialize the connection
# STAT - return server status
# STOU - store a file uniquely
# STRU - set file transfer structure
# SYST - return system type
```
- Linux Server
- 实用命令
- services
- Samba
- /etc/samba/smb.conf
- NFS
- Http
- httpd.conf
- lamp
- FTP
- /etc/vsftpd/vsftpd.conf
- ftp实例
- iSCSI
- SElinux
- DNS
- master
- slave
- subdomain
- 相关配置文件
- /etc/hosts
- /etc/resolv.conf
- /etc/named.conf
- /var/named/named.ca
- /var/named/named.localhost&named.loopback
- DHCP
- /etc/dhcp/dhcpd.conf
- mysql
- Redis
- Git
- HAProxy
- haproxy
- openssl
- nodejs