GNU/Linux >> Linux の 問題 >  >> Linux

Chroot SFTP - ユーザーに現在の (chroot) ディレクトリへの書き込みを許可することが可能

解決策 1:

ねえ @emmdee シンプルで素敵なトリックがあることに気付くのに永遠にかかりました. root を sFTP したい場所の親フォルダーの所有者にし、force コマンドを使用して特定のユーザーに CHROOT ディレクトリ内の特定の DIR をロードするように指示するだけです。

00 が必要な場合に備えて 書き込み可能なディレクトリにするには、root にする必要があります 12 の所有者 ディレクトリに進み、Force Command he 29 そのユーザーまたはグループのランディング ディレクトリとして。

あなたの 39 次のようになります:

Match User sftpuser
    ChrootDirectory /home
    ForceCommand internal-sftp -d /sftpuser
    AllowTCPForwarding no
    X11Forwarding no

それが完了したら、前述のように適切なパーミッションを付与する必要があります。ルートは親 (chroot) ディレクトリ 47 を所有する必要があります。 ユーザーは final(-d) ディレクトリ 54 を所有する必要があります . sftpusers という名前の sFTP ユーザー グループがあると仮定します。 、そうでない場合;次のコマンドからグループを省略するか、代わりにユーザーに置き換えます (root 最初と sftpusers で 秒で)。継承のためにコマンド ラインで -R を使用しているため、次のようにユーザー所有権の前にルート所有権から始める必要があります。

sudo chown -R root:sftpusers /home

次に、ユーザーに対して次を実行できます:

sudo chown -R sftpuser:sftpusers /home/sftpuser

これが必要かどうかはわかりませんが、いつでも sshd サービスを再起動して、すべての設定が再度読み込まれるようにすることができます:

sudo systemctl restart sshd.service

うまくいけば、これは魔法のように機能するはずです.私は同様の問題を抱えていましたが、ほとんどの場合、解決策は私の目を見ていた.

乾杯!

解決策 2:

数年経ちましたが、この投稿で 98% 達成できました。長い間探した後。

ユーザーが chroot され、自動的に書き込み権限のある独自のディレクトリに移動できるようにするために、African Idiot が提案した方法を使用し、root ユーザーと ftp グループが所有する元の chroot ディレクトリも作成しました。

しかし、それらをそのフォルダーに保持し、他のユーザーのフォルダーを参照できないようにするための鍵は、フォルダーを 69 にすることでした ftp グループが internal-sftp -d /%u (つまり、ユーザーのサブディレクトリに cd を実行) を実行するようにします。 root 以外は読み取れないため、上位ディレクトリにコピーすると失敗します。

drwx--x---  6 root        sftpusers   uarch  6 Feb 19 15:34 ./
drwxr-xr-x  5 root        root        uarch  5 Feb  4 09:13 ../
drwxrwx---  3 anotheruser anotheruser uarch  3 Feb 24 15:34 anotheruser/
drwxrwx---  3 ftpuser     ftpuser     uarch 12 Feb 25 10:55 ftpuser/

これが他の誰かにも役立つことを願っています.


Linux
  1. Linuxの特定のディレクトリのユーザーに読み取り/書き込みアクセスを割り当てる

  2. Ssh – Ssh / scp / sftpユーザーをディレクトリに制限しますか?

  3. ルートユーザーからすべてのユーザーに権限を変更するにはどうすればよいですか?

  1. $ pwd? (vs現在の作業ディレクトリ)?

  2. chrootを使用した後、SFTPユーザーをバインドマウントします

  3. Linux でユーザーのホーム ディレクトリにあるファイルをデフォルトに復元する方法

  1. Linux で Chroot SFTP をセットアップする方法 (SSH ではなく SFTP のみを許可する)

  2. Kali デフォルトの非ルート ユーザー

  3. シェルスクリプトの現在のディレクトリ?