| #!/bin/sh |
| |
| if [ $# -gt 0 ]; then |
| printf "[%s] %s %s [%s %s] (#=%s)\\n" "`date +%F.%T.%Z`" "$USER" "$SSH_CLIENT" "$0" "$*" "$#" >> /var/log/shd.log 2> /dev/null |
| fi |
| |
| SFTP_SERVER_PROGRAM=/usr/lib/openssh/sftp-server |
| MAX_PROCESSES= |
| #MAX_PROCESSES=64 |
| |
| if [ "$1" = -c ]; then case "$2" in |
| "scp "*) |
| exec $2 |
| ;; |
| "$SFTP_SERVER_PROGRAM") |
| exec $SFTP_SERVER_PROGRAM -l DEBUG1 |
| ;; |
| esac fi |
| |
| if [ -n "$MAX_PROCESSES" ]; then |
| if [ -n "$BASH" ]; then |
| ulimit -u "$MAX_PROCESSES" |
| else |
| ulimit -p "$MAX_PROCESSES" |
| fi > /dev/null 2>&1 |
| fi |
| |
| export SHELL=/bin/sh |
| LOG_FILE="/var/log/noshell/$USER.`date -u +%F.%H-%M-%S`" |
| exec script -c " export SHELL=/bin/bash; exec /bin/bash $*" -fqt $LOG_FILE 2> $LOG_FILE.time |