1. 環境
開発環境:Win 10 -- 64-bit
サービス環境:centos7
SSH:OpenSSH_7.4p1
2. 新しい SFTP ユーザーを作成します。
実行するにはroot 権限が必要です------------------------
1. 新しいユーザーグループを作成する
後でユーザーを追加する際の便宜のため
groupadd sftp
2. ユーザーの追加
useradd -g sftp -s /usr/sbin/nologin fileuser
注:
-g: ユーザーが属するユーザー グループを指定します。
-s: シェル、/usr/sbin/nologin は、ユーザーが SSH でのログインを禁止され、SFTP ログインにのみ使用できることを意味します。 fileuser: ユーザー
名
設定パスワード
passwd fileuser
3. 指定したFTPフォルダーを作成します
1. 指定したユーザーへのアクセスを制限するパスを作成する
mkdir -p /data/ftp/
注: ここでのディレクトリの所有者とグループは root:root である必要があり、権限は 755 です。理由は後述します。
2. フォルダーのアクセス許可を設定する
chown root:root /data/ftp/
chmod 755 /data/ftp/
4番目に、構成ファイルを変更します
vim /etc/ssh/sshd_config
注:Subsystem sftp /usr/lib/openssh/sftp-server
次の構成を構成ファイルに追加します。
Subsystem sftp internal-sftp
Match Group sftp
ForceCommand internal-sftp
ChrootDirectory /data/ftp/%u
#AllowTcpForwarding no
#X11Forwarding no
サブシステム sftp Internal-sftp は、sftp サービスが
システムに付属の external-sftp 一致グループを使用することを意味します。sftp は、指定されたグループが設定されていることを意味します。設定されたユーザーを指定するには
、 Match User fileuser と記述することもできます。 sftp は、システムの内部 sftp
ChrootDirectory が強制的に使用されることを意味します。 /data/sftp/%u は、指定されたユーザーのルート ディレクトリを示します。 %u は、現在のユーザー、ChrootDirectory で指定されたディレクトリ、およびシステム ルート ディレクトリまでのディレクトリを示します。ディレクトリの所有者は root のみです。
AllowTcpForwarding no TCP 転送を禁止します
X11Forwarding no X11 転送を禁止します
後の 2 つの項目は、実際の状況に応じて追加できます。
注: 上記の構成クラスについては、https://www.cnblogs.com/convict/p/16411632.html を参照してください。より詳細な説明については、原文を読むことができます。
5. SSHサービスを再起動します。
systemctl restart sshd
また
service ssh restart
起動に成功したら、sftp ツールを使用して接続します。
図に示すように、ユーザーが sftp にログインすると、設定されたディレクトリのみが表示されます。ここに示されているルート ディレクトリは、実際にはChrootDirectory /data/sftp/%u
構成で指定されたディレクトリです。
このディレクトリ内に、次のような fileuser ユーザーに属する操作ディレクトリを作成できます。
mkdir -p /data/ftp/fileuser/work/
許可を与える
chown fileuser:sftp /data/ftp/fileuser/work/
終わりました、花を散らしてください!!!!!!!
元の参照: Linux は、指定されたディレクトリにアクセスするように sftp ユーザーを構成します_指定されたディレクトリへの sftp ログイン_プログラム - Ape のブログ - CSDN ブログ