Chrootされたディレクトリを使用して、複数のグループに対して動作するsftpサーバーを設定するにはどうすればよいですか?
OPの元の質問から次のように再投稿:
私は最終的に私のために働いたものを共有することにしました。私はUbuntuに慣れていない2か月なので、まだ私を撃たないでください:)これは新しいことではありませんが、私のような初心者がそれを達成する方法を説明する完全な記事を見つけるのに苦労しました。
Sudo vi /etc/ssh/sshd_config
そして追加
Subsystem sftp internal-sftp
Match group Group-A
ChrootDirectory /Group-A
ForceCommand internal-sftp
AllowTcpForwarding no
Match group Broup-B
ChrootDirectory /Group-B
ForceCommand internal-sftp
AllowTcpForwarding no
保存して終了し、ユーザーとグループのディレクトリの作成を開始します。
Sudo useradd Group-A-Users
Sudo useradd Group-B-Users
Sudo passwd Username
Sudo usermod -G Group-A Group-A-Users= All users that belong to this group
Sudo usermod -G Group-B Group-B-Users= All users that belong to this group
Sudo mkdir /Group-A
Sudo mkdir /Group-B
Sudo mkdir /Group-A/Upload
Sudo mkdir /Group-B/Upload
次に、ディレクトリに権限を設定します。メインフォルダーはrootが所有する必要があり、他のユーザーまたはグループによるメインフォルダーへの書き込みアクセス権があってはなりません。そうしないと、再起動後にsshがクラッシュします。
Sudo chown root /Group-A
Sudo chown root /Group-B
Sudo chmod go-w /Group-A
Sudo chmod go-w /Group-B
Sudo chgrp GroupName /Group-A/Upload
Sudo chgrp GroupName /Broup-B/Upload
Sudo chmod ug+rwX /Group-A/Upload
Sudo chmod ug+rwX /Group-B/Upload
これは、Ubuntuが初めてで、仕事や友達のために安全なsftpサーバーをセットアップしたい、私のようなダミーのユーザー向けのガイドです。
これは1つの方法で機能しますが、グループを1つだけ作成し、特定のグループにユーザーを追加して、ユーザーがSFTPサーバーにログインすると、その特定のディレクトリにchrootできるようにします。
次に、フォルダの所有権を取得します(たとえば、フォルダ名はA、B、Cなど)。フォルダAをルートからユーザーxに制限し、フォルダBは所有権をルートからユーザーyに制限します。私たちは設定ファイルをジャンクアップしません。
どちらの方法も正しく、私たちが作業する環境と要件に基づいて、すべての方法を実行します。