JenkinsからSSHしてリモートサーバーでコマンド実行したりしているのですが、ユーザー権限で使えるコマンドは自由に実行できてしまうので、一応安全のために利用できるコマンド制限しておこうと思います。
Linuxでコマンドを制限する場合は rbash が使えるようです。
bash にシンボリックリンクをはって rbash をシェルとして使えるようにする。
# ln -s /bin/bash /bin/rbash
# echo /bin/rbash >> /etc/shells
Jenkinsユーザーのシェルを rbash に変更。
# usermod -s /bin/rbash jenkins
利用できるコマンドはホームディレクトリの bin ディレクトリのみのコマンドに制限。
# echo "PATH=\$HOME/bin" > /home/jenkins/.bash_profile
# echo "PATH=\$HOME/bin" > /home/jenkins/.bashrc
利用できるコマンドを設定。(例えば git だけにする)
# mkdir /home/jenkins/bin
# ln -s /bin/git /home/jenkins/bin/
ユーザー自身で設定を変えられないようにパーミッション変更。
# chown root:root /home/jenkins/.bash_profile
# chown root:root /home/jenkins/.bashrc
# chown -R root:root /home/jenkins/bin
設定は以上です。
Jenkinsから余計なコマンドが実行できないことを確認しておきましょう。