SSHを使用できないsftpユーザーグループをサポートするために、この行を使用して/ etc / ssh / sshd_configを修正しました。
Subsystem sftp internal-sftp -l VERBOSE
Match Group sftpusers
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
ssh機能が次のように制限されているsftpusersグループにユーザーを作成します。
useradd -g sftpusers -s /sbin/nologin <username>
問題は、次のコマンドを使用してホームフォルダ内のすべてのユーザーとグループに再帰権限を付与しても、デフォルトのファイル権限がファイル構造に再帰的に設定されていないため、新しいファイルを作成するとすぐにアクセス権が失われることです。
chmod -R 777 /home/<username>/
ユーザーにファイル構造の所有権を付与しようとしましたが、これによりユーザーはsftpを実行できなくなりました(ホームディレクトリとすべてのサブコンポーネントをrootが所有する必要があるChrootDirectoryオプションが原因だと思います)。私は、ユーザーがsftp(sshなし)のみを許可し、特にアクセス権を付与または作成しない限り、ホームディレクトリ内のほとんどのファイルにアクセスできないようにするソリューションを本当に望んでいます。
ベストアンサー1
次の手順を実行すると、必要なものが得られます。
ユーザーディレクトリ内のすべてのファイルとフォルダに対してのみ所有者アクセス権を繰り返し付与します(ルートまたはファイル所有者のみがすべてのアイテムにアクセスできます)。
chmod -R 700 /home/<ユーザーディレクトリ>/
sftpを使用するときにファイルを一覧表示できるように、ユーザーとグループにchrootへのアクセスを許可します(このコマンドを実行した後、sftpユーザーはユーザーディレクトリの内容を一覧表示できます)。
chmod 755 /home/<ユーザーディレクトリ>/
ユーザーにフルアクセス権を付与するファイルの所有権またはディレクトリの再帰的な所有権を付与します。
chown /home/<ユーザーディレクトリ>/file
または
chown -R /home/<ユーザーディレクトリ>/dir
必要に応じて手順2と3を繰り返し、どこからでもアクセスできます。役に立ったことを願っています!