## 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