41 lines
1.2 KiB
Bash
41 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
# 检查是否传入了用户名和密码参数
|
|
if [ -z "$1" ] || [ -z "$2" ]; then
|
|
echo "Usage: $0 <username> <password>"
|
|
exit 1
|
|
fi
|
|
|
|
# 定义变量
|
|
USERNAME="$1" # 使用传入的第一个参数作为用户名
|
|
PASSWORD="$2" # 使用传入的第二个参数作为密码
|
|
SSH_KEY_PATH="/root/.ssh/authorized_keys" # 替换为实际公钥文件路径
|
|
HOME_DIR="/home/$USERNAME"
|
|
SSH_DIR="$HOME_DIR/.ssh"
|
|
AUTHORIZED_KEYS="$SSH_DIR/authorized_keys"
|
|
|
|
# 创建用户并设置家目录
|
|
sudo useradd -m -s /bin/bash -G sudo $USERNAME
|
|
|
|
# 设置用户密码
|
|
echo "$USERNAME:$PASSWORD" | sudo chpasswd
|
|
|
|
# 创建 .ssh 目录
|
|
sudo mkdir -p $SSH_DIR
|
|
|
|
# 设置目录权限
|
|
sudo chmod 700 $SSH_DIR
|
|
sudo chown $USERNAME:$USERNAME $SSH_DIR
|
|
|
|
# 将公钥内容写入 authorized_keys 文件
|
|
sudo bash -c "cat $SSH_KEY_PATH > $AUTHORIZED_KEYS"
|
|
|
|
# 设置 authorized_keys 文件权限
|
|
sudo chmod 600 $AUTHORIZED_KEYS
|
|
sudo chown $USERNAME:$USERNAME $AUTHORIZED_KEYS
|
|
|
|
# 确保用户可以使用 sudo 不需要输入密码
|
|
echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$USERNAME
|
|
|
|
echo "User $USERNAME has been created, password set, and configured with sudo privileges successfully."
|