forked from evolix/evobackup
Set IP support for bkctl
This commit is contained in:
parent
d663f4591d
commit
283d1b3c6c
43
bkctl
43
bkctl
|
@ -27,6 +27,7 @@ sub_help(){
|
||||||
echo " status [<jailname>]"
|
echo " status [<jailname>]"
|
||||||
echo " key <jailname> [<keyfile>]"
|
echo " key <jailname> [<keyfile>]"
|
||||||
echo " port <jailname> [<ssh_port>]"
|
echo " port <jailname> [<ssh_port>]"
|
||||||
|
echo " ip <jailname> [<ip>]"
|
||||||
echo " inc"
|
echo " inc"
|
||||||
echo " rm"
|
echo " rm"
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -173,6 +174,20 @@ sub_port() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub_ip() {
|
||||||
|
set -e
|
||||||
|
jail=$1
|
||||||
|
ip=$2
|
||||||
|
check_jail $jail
|
||||||
|
pre_ip=$(get_ip $jail)
|
||||||
|
if [ -z $ip ]; then
|
||||||
|
echo "$pre_ip"
|
||||||
|
else
|
||||||
|
set_ip $jail $ip
|
||||||
|
$0 reload $jail
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
sub_status() {
|
sub_status() {
|
||||||
set -e
|
set -e
|
||||||
jail=$1
|
jail=$1
|
||||||
|
@ -180,7 +195,8 @@ sub_status() {
|
||||||
inc=$(check_inc $jail)
|
inc=$(check_inc $jail)
|
||||||
status=$(check_jail_on $jail)
|
status=$(check_jail_on $jail)
|
||||||
port=$(get_port $jail)
|
port=$(get_port $jail)
|
||||||
echo "$jail : $status ($port) -> $inc"
|
ip=$(get_ip $jail|xargs)
|
||||||
|
echo "$jail $status $port $inc $ip"
|
||||||
}
|
}
|
||||||
|
|
||||||
sub_inc() {
|
sub_inc() {
|
||||||
|
@ -295,6 +311,29 @@ set_key() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_ip() {
|
||||||
|
jail=$1
|
||||||
|
for allow in $(grep -E "^AllowUsers" ${JAILDIR}/$jail/${SSHD_CONFIG}|grep -Eo "root@[^ ]+"); do
|
||||||
|
echo $allow|cut -d'@' -f2
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
set_ip() {
|
||||||
|
jail=$1
|
||||||
|
ip=$2
|
||||||
|
if [ $ip = "all" ]; then
|
||||||
|
ips="0.0.0.0/0"
|
||||||
|
else
|
||||||
|
ips=$(get_ip $jail)
|
||||||
|
ips=$(echo $ips $ip|xargs -n1|grep -v "0.0.0.0/0"|sort|uniq)
|
||||||
|
fi
|
||||||
|
allow="AllowUsers"
|
||||||
|
for ip in $ips; do
|
||||||
|
allow="$allow root@${ip}"
|
||||||
|
done
|
||||||
|
sed -i "s~^AllowUsers .*~${allow}~" ${JAILDIR}/$jail/${SSHD_CONFIG}
|
||||||
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
mkdir -p $CONFDIR $JAILDIR $INCDIR
|
mkdir -p $CONFDIR $JAILDIR $INCDIR
|
||||||
subcommand=$1
|
subcommand=$1
|
||||||
|
@ -310,7 +349,7 @@ main() {
|
||||||
sub_${subcommand} $jail &
|
sub_${subcommand} $jail &
|
||||||
echo $! > /run/bkctl.pid
|
echo $! > /run/bkctl.pid
|
||||||
;;
|
;;
|
||||||
"init" | "key" | "port")
|
"init" | "key" | "port" | "ip")
|
||||||
if [ -z $jail ]; then
|
if [ -z $jail ]; then
|
||||||
sub_help
|
sub_help
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -32,5 +32,4 @@ UseLogin no
|
||||||
|
|
||||||
Subsystem sftp /usr/lib/openssh/sftp-server
|
Subsystem sftp /usr/lib/openssh/sftp-server
|
||||||
|
|
||||||
AllowUsers root
|
AllowUsers root@0.0.0.0/0
|
||||||
#AllowUsers root@IP root@::ffff:IP
|
|
||||||
|
|
Loading…
Reference in a new issue