addme.sh
· 1.2 KiB · Bash
Исходник
#!/bin/bash
USERNAME="yaisme"
PUBKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBbRbeHr4ikRGKRKYUpO1Dvn408aXrtsdVrtgasNQZkq yaisme-ed25519"
SUDOERS_LINE="$USERNAME ALL=(ALL) NOPASSWD:ALL"
# Prompt for password
read -s -p "Enter password for user '$USERNAME': " PASSWORD
echo
# 1. Check if the user exists
if id "$USERNAME" &>/dev/null; then
echo "User '$USERNAME' already exists."
else
echo "Creating user '$USERNAME'..."
useradd -m -s /bin/bash "$USERNAME"
echo "$USERNAME:$PASSWORD" | chpasswd
fi
# 1.2 Add SSH public key
SSH_DIR="/home/$USERNAME/.ssh"
AUTHORIZED_KEYS="$SSH_DIR/authorized_keys"
mkdir -p "$SSH_DIR"
echo "$PUBKEY" > "$AUTHORIZED_KEYS"
chown -R "$USERNAME:$USERNAME" "$SSH_DIR"
chmod 700 "$SSH_DIR"
chmod 600 "$AUTHORIZED_KEYS"
echo "SSH key added for user '$USERNAME'."
# 2. Check and update sudoers
SUDOERS_FILE="/etc/sudoers"
if sudo grep -q "^$USERNAME " "$SUDOERS_FILE"; then
# Replace existing line
echo "Updating sudoers entry for '$USERNAME'..."
sudo sed -i.bak "/^$USERNAME /c\\$SUDOERS_LINE" "$SUDOERS_FILE"
else
# Append new line
echo "Adding sudoers entry for '$USERNAME'..."
echo "$SUDOERS_LINE" | sudo tee -a "$SUDOERS_FILE" > /dev/null
fi
echo "Done."
| 1 | #!/bin/bash |
| 2 | |
| 3 | USERNAME="yaisme" |
| 4 | PUBKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBbRbeHr4ikRGKRKYUpO1Dvn408aXrtsdVrtgasNQZkq yaisme-ed25519" |
| 5 | SUDOERS_LINE="$USERNAME ALL=(ALL) NOPASSWD:ALL" |
| 6 | |
| 7 | # Prompt for password |
| 8 | read -s -p "Enter password for user '$USERNAME': " PASSWORD |
| 9 | echo |
| 10 | |
| 11 | # 1. Check if the user exists |
| 12 | if id "$USERNAME" &>/dev/null; then |
| 13 | echo "User '$USERNAME' already exists." |
| 14 | else |
| 15 | echo "Creating user '$USERNAME'..." |
| 16 | useradd -m -s /bin/bash "$USERNAME" |
| 17 | echo "$USERNAME:$PASSWORD" | chpasswd |
| 18 | fi |
| 19 | |
| 20 | # 1.2 Add SSH public key |
| 21 | SSH_DIR="/home/$USERNAME/.ssh" |
| 22 | AUTHORIZED_KEYS="$SSH_DIR/authorized_keys" |
| 23 | |
| 24 | mkdir -p "$SSH_DIR" |
| 25 | echo "$PUBKEY" > "$AUTHORIZED_KEYS" |
| 26 | chown -R "$USERNAME:$USERNAME" "$SSH_DIR" |
| 27 | chmod 700 "$SSH_DIR" |
| 28 | chmod 600 "$AUTHORIZED_KEYS" |
| 29 | echo "SSH key added for user '$USERNAME'." |
| 30 | |
| 31 | # 2. Check and update sudoers |
| 32 | SUDOERS_FILE="/etc/sudoers" |
| 33 | if sudo grep -q "^$USERNAME " "$SUDOERS_FILE"; then |
| 34 | # Replace existing line |
| 35 | echo "Updating sudoers entry for '$USERNAME'..." |
| 36 | sudo sed -i.bak "/^$USERNAME /c\\$SUDOERS_LINE" "$SUDOERS_FILE" |
| 37 | else |
| 38 | # Append new line |
| 39 | echo "Adding sudoers entry for '$USERNAME'..." |
| 40 | echo "$SUDOERS_LINE" | sudo tee -a "$SUDOERS_FILE" > /dev/null |
| 41 | fi |
| 42 | |
| 43 | echo "Done." |
| 44 |