Linux

  
でchroot SFTPを設定する方法いくつかのシナリオでは、システム管理者がほんの少数のユーザにだけファイルをsshではなくLinuxボックスに転送することを許可するようにします。 SFTPをchroot環境に設定することで、これを実現できます。 chroot:
SFTPはSSHファイル転送プロトコルまたはセキュアファイル転送プロトコルの略です。 SFTPは、信頼できるデータストリームを介したファイルアクセス、ファイル転送、およびファイル管理機能を提供します。 chroot環境でSFTPを設定すると、許可されたユーザのみが自分のホームディレクトリに制限されるか、許可されたユーザが自分のディレクトリを変更することさえできない環境のように刑務所に入れられると言えます。
RHEL 6.XのChroot SFTP CentOS 6.X 1人のユーザーがいます& Jack’このユーザーはLinuxボックスでファイルを転送できますがsshアクセスはできません。
ステップ:1グループを作成します。
[root @ localhost〜]#groupadd sftp_users
ステップ:2セカンダリグループを割り当てます(sftp_users)。
ユーザーがシステムに存在しない場合は、次のコマンドを使用します。[root @ localhost〜]#useradd -G sftp_users -s /sbin /nologin jack [root @ localhost〜]#passwd jack
既存のユーザーの場合は、以下のusermodコマンドを使用します。[root @ localhost〜]#usermod– G sftp_users -s /sbin /nologin jack
注:ユーザーのデフォルトのホームディレクトリを変更する場合は、次にを使用します。 ‘ -d’ useraddおよびusermodコマンドのオプションを変更して、正しいアクセス権を設定してください。
手順3設定ファイルを編集します。/etc /ssh /sshd_config'
#vi /etc /ssh /sshd_config#下の行をコメントアウトし、次のような行を追加します。#Subsystem sftp /usr /libexec /openssh /sftp-serverSubsystem sftp internal-sftp
#add最後の行に下の行を追加of fileMatch Group sftp_usersX11Forwarding noAllowTcpForwarding noChrootDirectory%hForceCommand internal-sftp
ここで、Match Group sftp_users–これは、次の行がグループsftp_usersChrootDirectory%h–に属するユーザーに対してのみ一致することを示します。これは、ユーザーが認証された後にchrootに使用されるパス(デフォルトのユーザーのホームディレクトリ)です。したがって、Jackの場合、これは/home/jack.ForceCommand internal-sftp–になります。これによりinternal-sftpが強制的に実行され、〜/.ssh /rcファイルに記載されているコマンドはすべて無視されます。
sshサービスを再起動します。#service sshd restart
ステップ4アクセス権を設定します。
[root @ localhost〜]#chmod 755 /home /jack [root @ localhost〜]#chown root /home /jack [root @ localhost〜]#chgrp -R sftp_users /home /jack
そのjackユーザーが欲しい場合ファイルのアップロードを許可してから、以下の権限でアップロードフォルダを作成してください。
[root @ localhost jack]#mkdir /home /jack /upload [root @ localhost jack]#chown jack /home /jack upload /
Step:5システムにアクセスしてみてください。 do testing
ssh経由でシステムにアクセスしよう

下記のように、jackユーザーはSFTP経由でログインしており、chroot環境のためディレクトリを変更することはできません。

アップロードとダウンロードのテストは以下のとおりです。

上記のとおり、アップロードとダウンロードの両方が可能です。 jackユーザーのためのうまく働くダウンロード
Copyright © Windowsの知識 All Rights Reserved