私は友人に私のマシンで、SCP専用のローカルアカウントを許可しています。/bin/true
SCPを許可したまま、アカウントのシェルをとして指定したり、他の方法でアカウントを制限したりできますか?
私は友人に私のマシンで、SCP専用のローカルアカウントを許可しています。/bin/true
SCPを許可したまま、アカウントのシェルをとして指定したり、他の方法でアカウントを制限したりできますか?
回答:
そのユーザーのシェルをrssh
またはscponly
に設定できます。これらは、その目的のために正確に設計されています。
rsshは、OpenSSHで使用するための制限付きシェルであり、scpまたはsftpのみを許可します。また、rdist、rsync、cvsのサポートも含まれています。
scponlyは、リモート実行権限を提供せずにローカルファイルの読み取りと書き込みの両方にリモートユーザーにアクセスを提供したいシステム管理者向けの(一種の)代替シェルです。
scpを実行すると、OpenSSHデーモンscp
は-f
オプションを使用してプロセスを起動します。sftpを実行すると、OpenSSHデーモンがsftp-server
プロセスを起動します。いずれの場合も、サブプロセスはユーザーのシェルを介して実行されるため、シェルは少なくともこれらのコマンドをBourneのような構文でサポートする必要があります。cshと同様に、Bourneスタイルのシェルはすべてsshd
使用できます(その引用規則は、使用目的に対して十分に互換性があると思います)。Rsshおよびscponlyは、これらのコマンドのみを許可します。/bin/true
これらのコマンドも実行しません。
/bin/false
か、他のプログラムが何もしない場合、scpもsftpも機能しません。両方のコマンドについて、SSHデーモンは専用サーバープロセス(scp -f
またはsftp-server
)を実行するシェルコマンドを起動します。Bourneスタイルのシェル、または少なくとも十分に近い近似(rssh
これらの少数のコマンドのみを許可するなど)が必要です。
いいえ、そうではありません。Gillesが指摘したように、rsshはscponlyと同様に、この目的のために非常にうまく機能します。この関連する質問の議論も参照してください。
/bin/false
ように、それらはまだシェルであり、chmod 644 kshも機能しません。