特定のディレクトリを除いて、SFTPユーザーへの "/opt/"アクセスを拒否します。

特定のディレクトリを除いて、SFTPユーザーへの "/opt/"アクセスを拒否します。

私のWebサーバー(Debian)をSFTPサーバーとして使用して、特定の従業員にアクセスを提供したいと思います。ルートの下の dir 構造は次のとおりです。

/FTPUSERS/UserName_1、… /FTPUSERS/UserName_N

私のウェブサイトはいつものように下にあります/opt/lampp/htdocs/SiteName。私は、従業員が/FTPUSERSどの手段を使用しても、コンソールSSH / GUI-FTPClientsを介してのみこのディレクトリにアクセスできることを願っています。chrootそれらを防ぐ正しい方法ではありませんか?航海別のディレクトリに?それともそれらを防ぐための別の方法がありますか?教えてください。

情報LAMPP。 /opt/lampp/htdocs/以下の現在のユーザーとグループはですroot and rootphp.netディレクトリが存在する必要があると言われていますnobody and nobody。これが権限を設定する正しい方法ですか?

編集する:

私のオペレーティングシステムはDebian Lenny 3です。現在実行中のデーモンは、openssh-sftpserverftpアクセスでポート21をブロックしました。ただし、sftpはまだポート22で実行されています。従業員はsftp and ssh端末からログインできます。特定のユーザーのコンソールモード操作を回避するには、Webサイト管理者とrootアカウントのみがすべてのアクセス権を持っている必要があります。また、ユーザーが/FTPUSERSGUI FTPクライアント(WinSCPなど)を使用してディレクトリ外を閲覧するのを防ぎたいと思います。

答え1

sshd_configを確認してください。

SFTP内部のchrootを設定したいかもしれません。

/ TFTPROOTはchroot-dirになります。

これはtftpよりも安全です。

以下は良いチュートリアルです:

http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/

答え2

-dオプションを指定してuseraddコマンドを使用すると、次のようにユーザー(ftpuserなど)とそのホームディレクトリ(/ homedir)を追加できます。

useradd ftpuser -d /homedir
passwd ftpuser

新しいパスワードを入力するように求められます。

Changing password for user <username>
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
  • /etc/passwd で、このユーザーのシェルを /sbin/nologin として編集します。

    vi /etc/passwd
    ftpuser:x:506:508::/homedir:/sbin/nologin
    
  • chroot_listを有効にする:

    vi /etc/vsftpd/vsftpd.conf
    chroot_list_enable=YES
    (default follows)
    chroot_list_file=/etc/vsftpd.chroot_list
    
  • ftpuserその後、ファイルにユーザーを追加する必要があります。/etc/vsftpd.chroot_list

    vi /etc/vsftpd.chroot_list 
    ftpuser
    
  • vsftpdを再起動します。

    /etc/init.d/vsftpd restart
    

関連情報