允許FTP使用者登入並禁止Shell登入的方法

2021-09-26 02:40:33 字數 919 閱讀 1356

最近安裝了vsftpd做ftp服務,發現系統使用者的登入shell設定為/sbin/nologin,就無法使用ftp服務。網上資料說,vsftpd會為每個ftp登入使用者去在/etc/shells中檢查對應的登入shell,因此需要增加一行/sbin/nologin。但是我/etc/shells檔案明明有/sbin/nologin。

[plain]view plain

copy

[root@localhost ~]# vsftpd -v  

vsftpd: version 2.2.2  

[root@localhost ~]# cat /etc/shells   

/bin/sh  

/bin/bash  

/sbin/nologin  

/bin/tcsh  

/bin/csh  

但是使用者設定/sbin/nologin後,就登入不了,報錯如下

[plain]view plain

copy

500 oops: cannot change directory:/home/***  

500 oops: priv_sock_get_cmd  

遠端主機關閉連線。  

於是看看vsftpd產生的ftp使用者的配置,也是/sbin/nologin,為什麼他能登入呢?(我允許匿名使用者登入),如下

[plain]view plain

copy

[root@localhost ~]# cat /etc/passwd | grep ftp  

ftp:x:14:50:ftp user:/var/ftp/pub/:/sbin/nologin  

發現唯一區別就是指定的主目錄不一樣,於是我把該使用者的主目錄/home/***換成/var/ftp/pub/,果然可以成功登入了!

禁止ftp使用者ssh登入,允許ftp登入

專案部分外包,需要限制ftp使用者在自己的目錄,在21埠下沒有問題,但當ftp使用者用sftp登入時,還是可以訪問上級目錄,於是禁止該ftp使用者ssh登入,切斷22埠的通訊。首先,執行如下命令,找到nologin的shell vi etc shells結果如下 可以看到禁止登入的shell檔案為 ...

linux允許root使用者登入ftp

預設情況下,ftp不允許root使用者登入,使用filezilla會出現以下反饋 狀態 正在連線 21.狀態 連線建立,等待歡迎訊息.狀態 不安全的伺服器,不支援 ftp over tls。命令 user root 響應 530 permission denied.錯誤 無法連線到伺服器 狀態 正在...

centos新增ftp使用者並禁止外切目錄

在linux中新增ftp使用者,並設定相應的許可權,操作步驟如下 1 環境 ftp為vsftp。被限制使用者名為ftpuser。被限制路徑為 home ftpuser 2 建使用者,命令列狀態下,在root使用者下 執行命令 useradd d home ftpuser ftpuser 增加使用者f...