質問: ■やりたいこと(サーバー:AWS centOS7) 既存のユーザーとは別に、客先用のユーザーを追加して、 その客先ユーザーでログインした場合、一部のディレクトリしかアクセスできないようにしたいです。 var/www/html/プロジェクト名/webroot/csv_data/data(すべて所有者centos) 。 →最後のdataディレクトリだけを客先用のユーザーに公開したいです。 【問題1】 客先用のユーザーを追加したのですが、そもそもFTPサーバーに接続できないです。 使用ツールはWinSCPを使っています。 デフォルトユーザーのcentosは通常通り接続できます。 その際情報としては、SFTP/ホスト/ユーザー名/パスワード/秘密鍵を入力しています。 客先用のユーザーの場合も、同じく SFTP/ホスト/ユーザー名/パスワード/秘密鍵(centosと同じ)を入力しています。 客先用のユーザーでログインしようとすると下記メッセージが表示されます。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 認証ログ (詳細はセッションログを見て下さい): ユーザ名"dfhonbu" を使用中 サーバが鍵を拒否しました 認証に失敗 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ユーザーを追加する際のコマンドは、 useradd -d var/www/html/kyakusaki -s /sbin/nologin userkyakusaki さらにパスワードを設定し、グループをデフォルトユーザーのcentosと一緒にしました。 Q:以上をふまえて客先用のユーザーuserkyakusakiでWinSCPを使って接続するにはさらに何か設定が必要か教えていただきたいです。 【問題2】 その客先ユーザーでログインした場合、一部のディレクトリしかアクセスできないようにするために下記サイトを参考にし、SSH接続して設定してみました。 リンク内容 サイト内ではvsftpdの話をされてます。 このサイトを見てからvsftpdをサーバー内にインストールしました。 つまり今まではvsftpdは使ってなかったです。 ここでもう一つ関連するといいますか、よく出てくるのがsftpだと思います。 上記でも記載したように、WinSCPではプロトコルをsftpに設定し接続していました。 このことも大きくかかわるのでしょうか。 Q:以上をふまえて、最終目的である、客先用のユーザーuserkyakusakiには一部のディレクトリしかアクセスできないようにするための設定としては、上記サイトのやりかたであってますか? sftpで接続しているならこの方法がいいよ!などあれば教えていただきたいです。 恐れ入りますが、ご教授いただければ幸いです。 ----------------------------追記20180606----------------------- 【問題1】は解決いたしました!ありがとうございます。 【問題2】について追記いたします。 var/www/html/プロジェクト名/webroot/csv_data/data(すべて所有者centos) 。 →最後のdataディレクトリだけを客先用のユーザーに公開したいです。 パーミッションをあれこれいじっていたのですが、うまくいかず、下記URLを参照にディレクトリ制限を行いました。 リンク内容 しかし、先程まで客先用のユーザーuserkyakusakiでFTPサーバーに接続できていたのが、下記エラーが表示されます。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 「認証ログ (詳細はセッションログを見て下さい): ユーザ名"dfhonbu" を使用中 サーバが鍵を拒否しました 認証に失敗」 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 下記/etc/ssh/sshd_configの変更内容となります。 ``` # override default of no subsystems #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match group sftponly ChrootDirectory /var/www/html/プロジェクト/webroot/csv_data/data X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp AuthorizedKeysFile /home/userkyakusaki/.ssh/authorized_keys ``` パーミッションは下記。 /var/www/html/プロジェクト/webroot/csv_data(root:root rwxr-xr-x)/data(userkyakusaki:userkyakusaki rwxr-xr-x) 恐れ入りますがどうかアドバイスお願いいたします。
回答: やるべきは2点です。 * 客先用ユーザーでのSSHログイン * ディレクトリの権限を**適切に**行う ログインのメッセージを見ると `ユーザ名"dfhonbu" を使用中` とありますが、なぜ客先用のユーザー名ではないのですか? また、鍵認証をしたい場合はサーバー側に公開鍵の設定が必要になりますが、そちらは完了しているでしょうか? (そもそも鍵認証が通っていればパスワードは不要なのですが...) ディレクトリの権限設定は所有者と所有グループ、その他のユーザーについて適切に行なってください。 例えば `var/www/html/プロジェクト名` の権限が `0755` となっている場合は客先用ユーザーからも参照できてしまいます。 詳しくはご自身で調べてみてください。 y_waiwaiさんからの回答にもありますが、 vsftpd は不要だと思います。