最近安裝了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...