ルートが所有するサブフォルダーにSSHアクセスを許可します


0

サブフォルダーのパンチがあるフォルダー/ srv / jarvisがあり、その上にcarl(/ srv / jarvis / carl)と呼ばれます

jarvis Dirにはこれらの権利があります

drwxrwxrwx 12 root root    4096 Jun  9 11:34 jarvis

カールにはこれらの権利があります

drwxr-xr-x  4 carl carl 4096 Jun  9 13:02 carl

/ etc / ssh / sshd_configにこれらの行を追加しました

Match user carl
    ChrootDirectory /srv/jarvis/carl
    ForceCommand internal-sftp
    AllowTCPForwarding no
    X11Forwarding no

しかし、私はそれらの行を追加し、サービスのSSH再起動を行う場合

その後、ユーザーはそのサーバーにログインできません書き込みが失敗します:パイプが壊れています。そして、sshd_configからtose行を削除すると、彼は再びログインできますが、私はそれをしたくない

私は、使用が/ srv / jarvis / carl /にのみアクセスでき、彼が望むことを何でもできるようにしたいと思っています。

どうすれば問題を解決できますか


私は同じ一般的な設定で同様のセットアップを持っています-私の場合、ユーザー名の周りに二重引用符があります(つまりMatch User "carl")が、見つけることができるドキュメントはこれが不要かもしれないことを示しているようです。あなたのSubsystem sftp internal-sftpどこかに線がありますsshd_configか?
rocketman10404

はい、私は持っているサブシステムSFTPの/ usr / libに/のopenssh / SFTPサーバ
Infira

私の設定では、あなたが言及した行がコメントアウトされておりSubsystem sftp internal-sftp、外部のsftp-serverの代わりに具体的に使用しています。internal-sftp声明については、ドキュメントに記載されていAlternately the name 'internal-sftp' implements an in-process 'sftp' server. This may simplify configurations using ChrootDirectory to force a different filesystem root on clients.ます。私はあなたのSubsystem声明をコメントアウトして、Subsystem sftp internal-sftp代わりに試してみます。
rocketman10404 14年

私はその行をコメントアウトし、sftpの内部-SFTPをサブシステムへ切り替えることも試したが、何の助け
Infira

フォルダーをルート()が所有する必要があることを示す他の便利なメモを見つけました。そこにあるあなたの現在の許可はうまく見えます。の書き込みアクセスは許可されません。そのため、コンテンツを書き込むために、彼が所有するサブフォルダーをそこに置く必要があります。それでも運が足りない場合は、で役立つ情報を見つけられるかどうかを確認してください。carlchown root /srv/jarvis/carlcarl/var/log/auth.log
rocketman10404 14年

回答:


0

auth.logのメモから、これは権限の問題であるようです。具体的に言うログ行

21:10:18 localhost sshd[16609]: fatal: bad ownership or modes for chroot directory component "/srv/"

sshd_config行をChrootDirectory /srv/jarvis/carl現在のままにしておく場合、このパスのすべてのディレクトリには次の特性が必要です。

  • ルートユーザーが所有している必要があります(グループは重要ではありません)
  • グループまたは世界の書き込み可能にすることはできません(つまり、必要になりますchmod 755

ここでも、これらはに適用される/srv/srv/jarvis/srv/jarvis/carl。残念なことに、この結果は、このユーザーcarlが(chrootが有効になった後)最上位ディレクトリに書き込むことができなくなることです。これを回避する1つの方法は、そこにサブディレクトリを準備し、彼にその所有権を与えることです。そのため、彼はファイルとフォルダを作成する場所があります。


私はそれを自分でテストしていませんが、ウェブ全体でのこのトピックのいくつかの議論は、あなたがあなたのChrootDirectory指示を読むように変更した場合、私を信じさせました:

ChrootDirectory /srv/jarvis/%u

(これは、あなたの場合、/srv/jarvis/carl一致するのは彼だけでsshdあるため、常に意味します)、ワイルドカード一致フォルダーを異なる方法で処理する場合があります。carlこの方法でフォルダーを所有しているユーザーcarlを回避できる場合があります。繰り返しますが、保証はありません。そうでない場合は、最初に説明した方法が機能するはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.