以下を使用してデフォルトのSFTPサーバー設定があります。OpenSSH
。 SFTPサーバーを設定するために、次の手順を実行しました。
ステップ1:OpenSSHパッケージをインストールしました。
sudo apt-get install openssh-server -y
ステップ2:SFTPユーザー用に別々のグループを作成します。
sudo groupadd sftpaccess
ステップ3:ファイル/etc/ssh/sshd_config
を見つけてコメントに付けて編集しました。Subsystem sftp /usr/lib/openssh/sftp-server
その後、ファイルの一番下に行き、以下を追加しました。
Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ステップ4:sshdサービスを再起動します。
sudo /etc/init.d/ssh restart
ステップ5:sftpaccessグループによるユーザーの追加とパスワードの作成
useradd -s /bin/bash -m -U -G sftpaccess sftp-alex
passwd sftp-alex
ステップ6:ユーザーディレクトリを作成して変更します。
sudo mkdir -p /mnt/users/sftp-alex/www
sudo chown root:root /mnt/users/sftp-alex
sudo chown root:sftpaccess /mnt/users/sftp-alex/www
私の目標(私をいじめること):
/mnt/www
ここでは、ユーザー共有などのアイテムを保持するディレクトリ()を作成してからバインドして、次のように/mnt/users/sftp-alex/www
作成したいと思います。- ユーザーが共有できるようにする:
mkdir /mnt/www
- ユーザーに共有バインディング
mount --bind /mnt/www /mnt/users/sftp-alex/www
- ユーザーが共有できるようにする:
プロセスの次のステップは、共有システム/権限システムを作成することです。これを行う方法についての私の考えは、実行が非常に簡単です。 2つのグループを作りたいです。一つは
sftp_read_write
もう一つはsftp_read
さて、まだ私が何を言うのかわからない場合は説明します。setfacl
ファイルとフォルダにaclを追加するために使用します。私の考えはこんな感じですsetfacl -Rm g:sftp_read_write:rwX,g:sftp_read:rX /mnt/www
。今、これはすべて素晴らしいですが、うまくいきません。読むそして書くどこにいてもsftp_read_write
またはsftp_read
またはsftpaccess
この問題を解決するのに役立つ本当に必要です。以前は約1年前にこのような設定をしましたが、すべてのコマンド/権限を忘れてしまったので、この質問をしました。
getfaclの出力
# file: www
# owner: root
# group: sftpaccess
user::---
group::---
group:sftp_read:r-x
group:sftp_read_write:rwx
mask::rwx
other::---
ファイルを編集してみてください
# file: Test.txt
# owner: sftp-alex
# group: sftp-alex
user::rw-
group::rw-
other::r--
メモ:私はどこにいてもこのファイルを編集できます。sftp_read
またはsftp_read_write
こうしてはいけないのに、ここであれば読み書きするしかできないはずなのに。sftp_read_write
。
ありがとう、アレックス