Linux は、指定されたディレクトリにアクセスするように sftp ユーザーを構成します

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 ブログ

おすすめ

転載: blog.csdn.net/qq_39706515/article/details/130574774