格物洞察,自省自洽 | insight, inside. |

凌晗

园龄:8年9个月粉丝:12关注:30

2023-05-06 18:29阅读: 273评论: 0推荐: 0

Linux 批量创建和删除用户

Linux 批量创建和删除用户

bash 运行下面的脚本可以批量新建指定用户,并为其创建工作目录:

#!/bin/bash

USERS=("aa" "bb")           # user names to create
PASSWDS=("aaxx" "bbxx") # corresponding passwords for users
DATA_DIRS=("/hdd" "/ssd")    # root data directories

# Get confirmation from user before creation
echo "Do you want to create the following users and their data directories?"
echo "------ users ----------------"
for user in ${USERS[@]}; do
    echo "$user"
done
echo "------ root data dirs -------"
for dir in ${DATA_DIRS[@]}; do
    echo "$dir"
done
echo "-----------------------------"
echo "(y/n)"
read CONFIRM_DELETE

if [ "$CONFIRM_DELETE" == "y" ]; then
    for ((i = 0; i < ${#USERS[@]}; i++)); do
        name=${USERS[$i]}
        password=${PASSWDS[$i]}
        
        # add user
        if id "$name" >/dev/null 2>&1; then
            echo "$name" already exists, skip user creation
        else
            useradd -m "$name"
            echo "$name:$password" | chpasswd
            echo "Created user $name"
        fi
        
        # create data dir
        for dir in "${DATA_DIRS[@]}"; do
            if [ -d "$dir/$name" ]; then
                echo "$dir/$name" already exists, change its owner and group to $name
            else
                mkdir "$dir/$name" && 
                echo "Created directory $dir/$name for $name"
            fi
            chgrp -R "$name" "$dir/$name"
            chown -R "$name:$name" "$dir/$name"
        done
        
        echo "-------------"
        
    done
else
    echo "Aborting user creation"
fi

tips: 查看所有用户的命令 cat /etc/passwd |cut -f 1,3 -d: 第三个参数:500 以上为新建用户,其它为系统用户


bash 运行下面的脚本可以批量删除指定用户

#!/bin/bash

# user names to delete
USERS=("zza" "zzb")

# Get confirmation from user before deleting
echo "Do you want to delete the following users?"
for user in ${USERS[@]}
do
    echo "$user"
done
echo "(y/n)"
read CONFIRM_DELETE

# deleting users
if [ "$CONFIRM_DELETE" == "y" ]; then
    for user in ${USERS[@]}
    do
        sudo userdel -r $user
        if [ $? -ne 0 ]
        then
            echo "delete $user failed"
        else
            echo "delete $user succeed"
        fi
    done
else
    echo "Aborting user deletion"
fi

本文作者:凌晗

本文链接:https://www.cnblogs.com/dawnlh/p/17378258.html

版权声明:本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。

posted @   凌晗  阅读(273)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.