で挙げた
# cat authorized_keys command="ls /$SSH_ORIGINAL_COMMAND" ssh-rsa AAAAB.... $ ssh root@xxx.xxx.xxx.xxx -i ~/.ssh/com "tmp;hostname" ls: /tmp;hostname: No such file or directory
みたいなケースで$SSH_ORIGINAL_COMMANDに../とかを指定される問題の対策にrbashが使えないかと思って調べてみた。
$ echo $0 rbash $ /bin/sh rbash: /bin/sh: restricted: cannot specify `/' in command names $ ./sanitize1.sh rbash: ./sanitize1.sh: restricted: cannot specify `/' in command names $ ls ../ satob
rbashで制限できるのは「実行プログラムのパスに/が含まれるケース」だけで、引き数に/が含まれるケースは制限してくれない。そのため、ディレクトリトラバーサルの防止には使えない。