FTP専用に作っていたユーザがあるのですが、そのユーザから「FTPにログインできない。パスワードが違うとかいわれる」というクレームが出たので調査してみました。
ここはちとプロっぽっくLinuxマシンからコマンドでログインしてみます。こうすることで、出回っているGUIソフトより詳しい情報がゲットできる場合があります。
[root@localhost etc]# ftp xxx.xxx.xxx.xxx Connected to xxx.xxx.xxx.xxx 220 (vsFTPd 2.0.5) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (192.168.0.101:root): eji 331 Please specify the password. Password: 500 OOPS: cannot change directory:/home/eji Login failed.
これを見ると、パスワード入力後にそのユーザのホームディレクトリ(/home/eji)に移動しようとして失敗しているみたいです。
ちなみにこのユーザはFTP専用なのでホームディレクトリは別の場所に指定しています。というより、指定してつもりでした。
どうやらユーザ作成時のホームディレクトリ設定ミスのようです。
(一応シェルスクリプトでユーザ登録は簡素化してるんですが、おそらく存在しないディレクトリを指定してしまったのでしょう。ftp用ユーザ生成スクリプトはいずれ公開する予定です)
ということで、ここから今日の本題です。
まずユーザ情報を確認します。
fingerコマンドを利用します。
[root@localhost etc]# finger eji Login: eji Name: (null) Directory: /home/eji Shell: /sbin/nologin Never logged in. No mail. No Plan.
やはり、ホームディレクトリが想定していたのと違う場所になっていたので、修正します。
ホームディレクトリの修正はusermodを使います。
[root@localhost etc]# usermod -d /var/ftp/ eji /sbin/restorecon: error while labeling files under /home/eji usermod: warning: unable to relabel the homedir /home/eji for eji.
変更後なにやらエラーやら警告やら出ましたが、fingerで確認すると変更されていたのでよしとします。
FTPクライアントからのログインも可能となりました。
参考: