> linux-ftp:(以下執行使用root管理員權限)
#### 安裝vsftpd服務:
~~~
sudo apt-get install vsftpd
安裝后查看vsftpd -v版本信息
啟動服務 service vsftpd start/restart/stop
/etc/init.d vsftpd start/restart/stop
在home下創建ftp用戶主目錄
mkdir home/uftp
新建ftp用戶并設置密碼
sudo useradd -d /home/uftp -s /bin/bash uftpd, 回車創建成功
passwd uftp, 回車設置密碼(兩次)
~~~
> [useradd -d /home/uftp -s /usr/sbin/nologin uftpd 表示創建用戶不能使用22端口登錄-即不能sftp和ssh登錄]
設置權限:
> 1、修改/etc/vsftpd.conf
> > (添加的前兩行意思:指定一個userlist,里面放的是允許ftp登錄的本地用戶)
> > (添加的第三行的意思:記錄允許本地登錄的用戶名文件)
> > (添加的第四行的意思:該行不配置可能會導致莫名其妙的530問題)
> > (修改的第一行的意思是:允許本地用戶登錄)
> > 添加:
> > userlist_deny=NO
> > userlist_enable=YES
> > userlist_file=/etc/allowed_users
> > seccomp_sandbox=NO
> > 修改
> > local_enable=YES
> > chroot_list_enable=YES
> > chroot_list_file=/etc/vsftpd.chroot_list
> 2、在/etc/下創建allowed_users文件(要看配置的位置)
>> 輸入uftp (每行一個用戶名)
> 3、查看/etc/ftpusers
> > 如果有utfp名字就刪除,沒有就直接退出
> > 此文件中記錄的是不能訪問FTP服務器的用戶清單
> 4、在/etc/下創建vsftpd.chroot_list文件(要看配置的位置)
>> 輸入uftp (每行一個用戶名)
切記重啟vsftp服務,然后使用ftp工具登錄就會發現只能訪問自己的主目錄了
此時由于創建目錄的是root用戶,使用ftp用戶登錄后無法執行寫入操作,
> 暫時解決方法:
> 1、超級用戶root提前上傳好項目內容到ftp用戶主目錄
> 2、超級用戶root設置主目錄下的所有文件夾及文件所屬用戶及用戶組為ftp用戶:chown -R ftpuser:ftpuser /home/ftpdir/*
> 3、這樣ftp用戶擁有主目錄下文件的替換與文件夾下子文件和子文件夾的讀寫執行權限
問題:修改ftp用戶主目錄所屬用戶為ftp后無法登陸ftp(顯示用戶身份認證失敗)
存在問題:使用ftp,在21端口下沒有問題,但是使用sftp,端口為22的時候登錄依舊可以訪問所有文件
于是需要禁止該ftp用戶ssh登錄,切斷22端口的通信。
> 打開/etc下的shells文件:vi /etc/shells
> 里面內容如下:
> ~~~
> /bin/sh
> /bin/bash
> /sbin/nologin
> /usr/bin/sh
> /usr/bin/bash
> /usr/sbin/nologin
> /bin/tcsh
> /bin/csh
> ~~~
> 如果里面缺少內容就補齊(主要是/sbin/nologin和/usr/sbin/nologin)
> 然后執行如下命令:
> usermod -s /usr/sbin/nologin username
> 這樣就限制用戶22端口登錄了
> 恢復用戶的ssh登錄,即22端口登錄
> usermod -s /bin/bash username
### ftp登錄不了的問題存在:
本人測試設置了共享目錄為ftp用戶主目錄結果登錄的時候發現總是提醒用戶身份驗證失敗
報錯:`500 OOPS: vsftpd: refusing to run with writable root inside chroot()`
所以設置用戶主目錄的時候要選擇合適的正確的目錄
#### 重要問題
> 登錄報錯:`500 OOPS: vsftpd: refusing to run with writable root inside chroot()`
> 這個錯誤,是由于vsftpd升級了的版本安全性驗證的緣故:
>` [- Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.]`
> **簡而言之,就是說如果開啟了chroot來控制用戶路徑,則用戶不能再具有 根目錄的寫的權限.
> `chroot_list_enable=YES`
>` # (default follows)`
> `chroot_list_file=/etc/vsftpd.chroot_list`
> 解決方案:
> 在vsftpd.conf中找到下面內容去掉注釋,開啟寫的權限
> `#write_enable=YES`
> `#local_umask=022`
> 把用戶根目錄的寫權限去掉就可以解決問題了。
> `chmod 511 /etc/home/path`
> 其實我覺得這樣有點不方便,因為這樣需要在用戶根目錄下建一個文件夾 然后給它賦予 寫 的權限, 然后用戶登陸進去會發現必須要再進一層目錄才能找到自己的文件。。。這樣有點不太方便,當然提高了安全性這一點不可否認。
>此時出現新問題,用戶不能對自己的主目錄進行寫入操作
- C語言模塊
- 基礎入門
- 各種變量類型
- 條件編譯
- 100例
- day1
- 1.c
- 2.c
- 3.c
- 4.c
- 5.c
- 6.c
- 7.c
- 8.c
- 9.c
- 10.c
- day2
- 1.c
- 2.c
- 3.c
- 4.c
- 5.c
- 6.c
- 7.c
- 8.c
- 9.c
- 10.c
- day3
- 1.c
- 2.c
- 3.c
- 4.c
- 5.c
- 6.c
- 7.c
- 8.c
- 9.c
- 10.c
- day4
- 1.c
- 2.c
- 3.c
- 4.c
- 5.c
- 6.c
- 7.c
- 8.c
- 9.c
- 10.c
- day5
- 1.c
- 2.c
- 3.c
- 4.c
- 5.c
- 6.c
- 7.c
- 8.c
- 9.c
- 10.c
- day6
- 1.c
- 2.c
- 3.c
- 4.c
- 5.c
- 6.c
- 7.c
- 8.c
- 9.c
- 10.c
- day7
- 1.c
- 2.c
- 3.c
- 4.c
- 5.c
- 6.c
- 7.c
- 8.c
- 9.c
- 10.c
- linux基礎知識
- 目錄
- 系統設置
- ftp管理
- ftp-auth
- 進程
- ssh登錄
- 權限屬性
- 用戶/用戶組
- 安裝命令
- 數據庫操作
- 虛擬機vmvare-tools安裝
- VI命令
- 上傳下載
- error
- 虛擬機mac