script for adding, all data under one folder
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
|
data/
|
||||||
home/
|
home/
|
||||||
users/
|
users/
|
||||||
sshd_config/
|
sshd_config/
|
||||||
|
|||||||
21
Makefile
Normal file
21
Makefile
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
|
||||||
|
service-up:
|
||||||
|
docker-compose up --build -d -t 1
|
||||||
|
|
||||||
|
service-logs:
|
||||||
|
docker-compose logs -f -t
|
||||||
|
|
||||||
|
service-force-restart:
|
||||||
|
docker-compose build
|
||||||
|
docker-compose up -d --force-recreate -t 1
|
||||||
|
docker-compose logs -f -t
|
||||||
|
|
||||||
|
service-down:
|
||||||
|
docker-compose down -t 1
|
||||||
|
|
||||||
|
service-bash:
|
||||||
|
docker-compose exec ssh-ftp-server bash
|
||||||
|
|
||||||
|
update-users:
|
||||||
|
docker-compose exec ssh-ftp-server update_users.sh
|
||||||
18
build/run.sh
18
build/run.sh
@@ -1,7 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -exu
|
||||||
set -x
|
shopt -s nullglob
|
||||||
set -u
|
|
||||||
basedir=/var/ssh-box/
|
basedir=/var/ssh-box/
|
||||||
test -f "$basedir"/ssh-cache/ssh_host_rsa_key || {
|
test -f "$basedir"/ssh-cache/ssh_host_rsa_key || {
|
||||||
ssh-keygen -A
|
ssh-keygen -A
|
||||||
@@ -19,12 +18,15 @@ Subsystem sftp /usr/lib/ssh/sftp-server -u 002
|
|||||||
EOF
|
EOF
|
||||||
rsync -va /etc/ssh/ "$basedir"/ssh-cache/
|
rsync -va /etc/ssh/ "$basedir"/ssh-cache/
|
||||||
}
|
}
|
||||||
mkdir -p "$basedir"/users
|
mkdir -p "$basedir"/users "$basedir"/ssh-cache "$basedir"/home
|
||||||
rsync -va --del "$basedir"/ssh-cache/ /etc/ssh/
|
rsync -va --del "$basedir"/ssh-cache/ /etc/ssh/
|
||||||
chown -R $USR "$basedir"
|
chown -R $USR "$basedir"/users "$basedir"/ssh-cache
|
||||||
chown -R root:root /etc/ssh/
|
chown -R root:root /etc/ssh/
|
||||||
chmod 0644 /etc/ssh/*
|
chmod 0644 /etc/ssh/*
|
||||||
chmod 0600 /etc/ssh/*key
|
chmod 0600 /etc/ssh/*key
|
||||||
|
chmod 0700 "$basedir"/ssh-cache/ "$basedir"/users/
|
||||||
|
chmod 0600 "$basedir"/ssh-cache/*
|
||||||
|
chmod 0711 "$basedir"
|
||||||
|
|
||||||
if getent group box; then
|
if getent group box; then
|
||||||
echo Group already added
|
echo Group already added
|
||||||
@@ -32,8 +34,10 @@ else
|
|||||||
groupadd -g $GRP box
|
groupadd -g $GRP box
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chown root:root /home
|
rmdir /home
|
||||||
chmod 0755 /home
|
chown root:root "$basedir"/home
|
||||||
|
chmod 0711 "$basedir"/home
|
||||||
|
ln -sfT "$basedir"/home /home
|
||||||
|
|
||||||
touch /tmp/empty_keys
|
touch /tmp/empty_keys
|
||||||
chmod 0200 /tmp/empty_keys
|
chmod 0200 /tmp/empty_keys
|
||||||
|
|||||||
@@ -39,5 +39,7 @@ for file in *; do
|
|||||||
rm -f "/home/$user/.ssh/authorized_keys"
|
rm -f "/home/$user/.ssh/authorized_keys"
|
||||||
chown -R "$user":box "/home/$user/data"
|
chown -R "$user":box "/home/$user/data"
|
||||||
chmod -R u+rwX,g+rwX,o+X "/home/$user/data"
|
chmod -R u+rwX,g+rwX,o+X "/home/$user/data"
|
||||||
|
chmod 0600 "$file"
|
||||||
|
chown $USR "$file"
|
||||||
done
|
done
|
||||||
|
chmod 0700 /var/ssh-box/users
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "0.0.0.0:${EXPOSE}:22"
|
- "0.0.0.0:${EXPOSE}:22"
|
||||||
volumes:
|
volumes:
|
||||||
- ./home/:/home/
|
|
||||||
- ./data/:/var/ssh-box/
|
- ./data/:/var/ssh-box/
|
||||||
environment:
|
environment:
|
||||||
- USR=${USR}
|
- USR=${USR}
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
docker-compose build
|
|
||||||
docker-compose up -d --force-recreate -t 1
|
|
||||||
docker-compose logs -f -t
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
docker-compose exec ssh-ftp-server update_users.sh
|
|
||||||
28
user-add
Executable file
28
user-add
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -eu
|
||||||
|
echo Existing users
|
||||||
|
ls -1 data/users/
|
||||||
|
|
||||||
|
plusone=$( ls -1 data/users | sed 's/-.*//' | tail -n 1 )
|
||||||
|
if [[ -z "$plusone" ]]; then
|
||||||
|
plusone=2000
|
||||||
|
fi
|
||||||
|
plusone=$(( plusone + 1 ))
|
||||||
|
|
||||||
|
echo Add user, select UID
|
||||||
|
read -e -i $plusone new_uid
|
||||||
|
echo Type username
|
||||||
|
read -e new_user
|
||||||
|
|
||||||
|
echo data/users/"${new_uid}-${new_user}"
|
||||||
|
echo Edit authorized_keys, or break process
|
||||||
|
read foo
|
||||||
|
|
||||||
|
eval ${EDITOR:- vim} data/users/"${new_uid}-${new_user}"
|
||||||
|
|
||||||
|
|
||||||
|
if test -s data/users/"${new_uid}-${new_user}"; then
|
||||||
|
echo Running user update
|
||||||
|
make update-users
|
||||||
|
fi
|
||||||
|
|
||||||
Reference in New Issue
Block a user