ubuntu 16 搭建只能上傳不可下載刪除ftp服務

安裝 VSFTPD,(建議使用FileZill測試,報錯能看到緣由)

若是使用window文件管理鏈接,要注意下圖的設置
html

使用 apt-get 安裝 vsftpdvim

sudo apt-get install vsftpd -y

安裝完成後 VSFTPD 會自動啓動,經過 netstat 命令能夠看到系統已經監聽了 21 端口bash

sudo netstat -nltp | grep 21

若是沒有啓動,能夠手動開啓 VSFTPD 服務:服務器

sudo systemctl start vsftpd.service

配置用戶訪問目錄,新建用戶主目錄

sudo mkdir /home/she

執行完後,在這裏 /home/she就能看到新建的文件夾 she了。app

建立登陸歡迎文件測試

sudo touch /home/she/welcome.txt

新建用戶 she 並設置密碼,建立一個用戶 she

sudo useradd -d /home/she -s /bin/bash she

爲用戶 she 設置密碼編碼

sudo passwd she

刪除掉 pam.d 中 vsftpd,由於該配置文件會致使使用用戶名登陸 ftp 失敗3d

sudo rm /etc/pam.d/vsftpd

限制用戶 she只能經過 FTP 訪問服務器,而不能直接登陸服務器:

sudo usermod -s /sbin/nologin she

修改 vsftpd 配置

sudo chmod a+w /etc/vsftpd.conf
sudo vim /etc/vsftpd.conf

修改 /etc/vsftpd.conf 文件中的配置(直接將以下配置添加到配置文件最下方):rest

# 限制用戶對主目錄之外目錄訪問
chroot_local_user=YES

# 指定一個 userlist 存放容許訪問 ftp 的用戶列表
userlist_deny=NO
userlist_enable=YES

# 記錄容許訪問 ftp 用戶列表
userlist_file=/etc/vsftpd.user_list

# 不配置可能致使莫名的530問題
seccomp_sandbox=NO

# 容許文件上傳
write_enable=YES
#不容許下載
download_enable=NO

#修改用戶上傳文件的所屬主
chown_uploads=YES
chown_username=root

# 使用utf8編碼
utf8_filesystem=YES

#限制用戶權限的目錄
user_config_dir=/etc/vsftpd/vsftpd_user_conf

新建文件 /etc/vsftpd.user_list,用於存放容許訪問 ftp 的用戶

sudo touch /etc/vsftpd.user_list
sudo chmod a+w /etc/vsftpd.user_list

想了解沒有配置的意思,請參考前面鏈接
https://security.appspot.com/vsftpd/vsftpd_conf.htmlcode

修改 /etc/vsftpd.user_list ,加入剛剛建立的用戶,一行一個用戶

設置訪問權限

因爲咱們she用戶登陸ftp須要打開目錄和上傳文件,
讀權限:對文件具備讀取文件內容的權限、對文件目錄具備瀏覽目錄信息的權限
寫權限:對文件具備修改文件內容的權限、對文件目錄具備移動刪除目錄信息的權限
執行權限:對文件具備執行文件的權限、對文件目錄具備進入目錄的權限
所以,防止用戶下載能夠經過如下兩個途徑

  1. 在vsftpd.conf中後面添加download_enable=NO
  2. 修改local_umask=477,默認是=700,他會自動把上傳的文件修改權限爲:
----r---w- 1 she  she   616448 Mar  8 15:04 第1次實驗_201*****419_麥*文.doc
  1. 這樣she就沒有權限了,

禁止she用戶具備刪除文件的權利

首先執行

mkdir -p /etc/vsftpd/vsftpd_user_conf

而後執行

vim /etc/vsftpd/vsftpd_user_conf/she

(注意後面的 she)對應本身要限制權限的帳戶,我限制的 是she 帳戶對應的命令就變成

vim /etc/vsftpd/vsftpd_user_conf/she

在裏面 寫入

cmds_denied=DELE

這句話的意思是 禁止使用 刪除命令。更多命令

https://blog.51cto.com/dreamway/1045610

從新打開配置文件

vim /etc/vsftpd/vsftpd.conf

在尾部 寫一句

user_config_dir=/etc/vsftpd/vsftpd_user_conf

重啓vsftpd 服務:

sudo systemctl restart vsftpd.service
相關文章
相關標籤/搜索