mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-08-19 12:06:25 +00:00
adduser -> ssh-adduser
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
---
|
||||
title: Adduser
|
||||
homepage: https://webinstall.dev/adduser
|
||||
tagline: |
|
||||
Because friends don't let friends run as root
|
||||
linux: true
|
||||
description: |
|
||||
Adds user `bob` with the same **`~/.ssh/authorized_keys`** as the root user, exiting early if run by a non-root user.
|
||||
---
|
||||
|
||||
Check that `bob` exists
|
||||
|
||||
```bash
|
||||
ls /home/
|
||||
```
|
||||
@@ -1,35 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
# TODO: a more complete VPS setup
|
||||
|
||||
# TODO would $EUID be better?
|
||||
if [ "root" != "$(whoami)" ]; then
|
||||
echo "webi adduser: running user is already a non-root user"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#apt-get -y update
|
||||
#apt-get -y install curl wget rsync git
|
||||
|
||||
# Add User
|
||||
adduser --disabled-password --gecos "" bob
|
||||
my_password=$(openssl rand -hex 16)
|
||||
printf "$my_password"'\n'"$my_password" | passwd bob
|
||||
adduser bob sudo
|
||||
echo "bob ALL=(ALL:ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/bob
|
||||
sudo -i -u bob bash -c 'ssh-keygen -b 2048 -t rsa -f /home/bob/.ssh/id_rsa -q -N ""'
|
||||
mkdir -p /home/bob/.ssh/
|
||||
cp -r $HOME/.ssh/authorized_keys /home/bob/.ssh/
|
||||
chmod 0600 bob:bob /home/bob/.ssh/authorized_keys
|
||||
chown -R bob:bob /home/bob/.ssh/
|
||||
|
||||
# Install webi for the new user
|
||||
sudo -i -u bob bash -c 'curl -fsSL https://webinstall.dev/webi | bash' \
|
||||
|| sudo -i -u bob bash -c 'wget -q -O - https://webinstall.dev/webi | bash'
|
||||
|
||||
# TODO ensure that ssh-password login is off
|
||||
|
||||
echo "Created user 'bob' with password '$my_password'"
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: SSH adduser
|
||||
homepage: https://webinstall.dev/ssh-adduser
|
||||
tagline: |
|
||||
SSH adduser: Because friends don't let friends login or run stuff as root
|
||||
linux: true
|
||||
description: |
|
||||
Many modern web programs (`npm` and `postgres`, for example) will not function correctly if run as root. `ssh-adduser` adds user `me` with the same **`~/.ssh/authorized_keys`** as the `root` user, with a long random password, and gives `me` `sudo` privileges.
|
||||
---
|
||||
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
# TODO: a more complete VPS setup
|
||||
|
||||
# TODO would $EUID be better?
|
||||
if [ "root" != "$(whoami)" ]; then
|
||||
echo "webi adduser: running user is already a non-root user"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#apt-get -y update
|
||||
#apt-get -y install curl wget rsync git
|
||||
|
||||
# Add User
|
||||
# TODO: might there be a better name?
|
||||
# me, this, user, self, person, i, who, do, tron
|
||||
adduser --disabled-password --gecos "" me
|
||||
my_password=$(openssl rand -hex 16)
|
||||
printf "$my_password"'\n'"$my_password" | passwd me
|
||||
adduser me sudo
|
||||
echo "me ALL=(ALL:ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/me
|
||||
sudo -i -u me bash -c 'ssh-keygen -b 2048 -t rsa -f /home/me/.ssh/id_rsa -q -N ""'
|
||||
mkdir -p /home/me/.ssh/
|
||||
cp -r $HOME/.ssh/authorized_keys /home/me/.ssh/
|
||||
chmod 0600 me:me /home/me/.ssh/authorized_keys
|
||||
chown -R me:me /home/me/.ssh/
|
||||
|
||||
# Install webi for the new user
|
||||
sudo -i -u me bash -c 'curl -fsSL https://webinstall.dev/webi | bash' \
|
||||
|| sudo -i -u me bash -c 'wget -q -O - https://webinstall.dev/webi | bash'
|
||||
|
||||
# TODO ensure that ssh-password login is off
|
||||
|
||||
echo "Created user 'me' with password '$my_password'"
|
||||
Reference in New Issue
Block a user