ユーザーを単一のコマンドに制限するときは、ssh
ユーザーにどのデフォルトシェルを使用する必要がありますか?フォローアップです。SSHでShellshockを活用する方法は?SSHサーバーを実行しているコンピューターがあり、仮想ユーザーがいます。command
ファイルにオプションを指定して、この仮想ユーザーがsshを介して単一のコマンドを実行するように制限しましたauthorized_keys
。私は仮想ユーザーとしてネイティブシェルを使用してきましたがbash
、シェルショックバグ以降、もう少し安全なシェルがあるかもしれないという考えをしてきました。仮想ユーザーは1つのrsync
コマンドしか実行できないため、ほとんどのシェルで機能すると思います。具体的には、ユーザーが実行できるコマンドは次のとおりです。
rsync --server --sender -lHogDtpre.iLs . //home/dummyuser/data/"
私はサーバー管理者ではありませんが、いくつかの簡単な変更を要求する可能性があるため、ファイルにchroot刑務所のようなものを設定することは/etc/sshd/sshd_config
不可能です。理想的には、無制限のキーを使用して仮想ユーザーとしてログインしてコマンドを制限できます。
答え1
次のシェルを作成できます。
cat >/tmp/rsyncshell.c <<EOF
#include <unistd.h>
char *argv[] = (char *[]) {
"/usr/bin/rsync", "--server", "--sender",
"-lHogDtpre.iLs", ".", "//home/dummyuser/data/" };
int main () { execv(argv[0], argv); }
EOF
新しいシェルをコンパイルします。
gcc -o /bin/rsyncshell /tmp/rsyncshell.c
次に dummyuser インタプリタを次に設定します。/bin/rsyncshell