组策略:交互式登录:不显示最后的用户名

交互式登录:不显示最后的用户名

说明

该安全设置确定是否在 Windows 登录屏幕中显示最后登录到计算机的用户的名称。
如果启用该策略,则不会在登录屏幕中显示最后成功登录的用户的名称。

如果禁用该策略,则会显示最后登录的用户的名称。

默认值: 禁用。

开启

在这里插入图片描述

<think>好的,用户让我编写一个交互式shell脚本,实现用户批量创建、权限管理和信息查询。首先,我需要理解用户的具体需求。他们可能是一个系统管理员,需要管理多个用户账户,包括批量创建、设置权限以及查询用户信息。用户可能希望这个脚本能够简化他们的日常工作,减少重复操作,提高效率。 接下来,我得考虑如何设计这个脚本的结构。交互式脚本通常需要一个菜单系统,让用户选择同的功能。所以首先需要实现一个主菜单,包含创建用户、管理权限、查询信息和退出的选项。用户可能希望每个功能模块清晰,操作简单,所以每个功能应该对应一个函数,便于维护和扩展。 关于批量创建用户,用户可能需要从文件中读取用户名列表,这样可以一次性创建多个用户。需要检查用户是否已经存在,避免重复创建。同时,设置默认密码,比如这里用“123456”作为示例,但实际应用中可能需要更安全的处理,比如生成随机密码或者强制用户首次登录修改密码。过根据用户当前的需求,可能暂时需要复杂的安全措施,先实现基本功能。 权限管理部分,用户可能需要修改用户的家目录权限,或者将用户添加到sudo组。这里需要提供选项让用户选择具体的权限操作。需要注意修改权限时的权限检查,可能需要脚本以root权限运行,或者在命令前加sudo,但脚本中需要处理可能的权限问题。 信息查询功能需要显示用户是否存在、UID/GID、家目录和登录shell。这些信息可以通过/etc/passwd文件来获取,使用grep和awk命令处理。用户可能希望信息显示清晰,所以需要格式化输出。 安全性方面,用户创建时需要检查是否已存在,避免冲突。密码设置部分,虽然示例中使用的是明文,但实际中可能需要使用加密处理,比如使用openssl或者chpasswd命令。此外,权限修改涉及系统关键配置,需要谨慎处理,避免误操作。 错误处理也是需要考虑的,比如输入无效选项时的提示,文件存在的情况,或者命令执行失败时的反馈。例如,在批量创建时,如果指定的用户列表文件存在,脚本应该给出提示并返回菜单,而是直接报错退出。 测试环节,用户可能需要验证每个功能是否正常工作。比如创建用户后检查/home目录下是否有对应的家目录,查询信息是否准确,权限修改后用户是否真的拥有sudo权限等。可能需要编写一些测试用例,或者手动逐步测试每个功能。 最后,用户可能需要进一步的扩展功能,比如删除用户、批量修改密码、更详细的权限设置等。但目前根据需求,先完成基本功能,保持脚本简洁,后续再根据反馈进行扩展。</think>以下是一个实现用户批量创建、权限管理和信息查询的交互式Shell脚本示例: ```bash #!/bin/bash users_file="user_list.txt" create_users() { read -p "请输入包含用户名文件路径(默认:user_list.txt): " input_file [ -n "$input_file" ] && users_file=$input_file if [ ! -f "$users_file" ]; then echo "错误:文件 $users_file 存在!" return fi while read username; do if id "$username" &>/dev/null; then echo "用户 $username 已存在,跳过创建" else useradd -m -s /bin/bash "$username" echo "123456" | passwd --stdin "$username" echo "已创建用户:$username" fi done < "$users_file" } manage_permissions() { read -p "请输入用户名: " username if ! id "$username" &>/dev/null; then echo "错误:用户 $username 存在!" return fi echo "请选择操作:" echo "1) 授予sudo权限" echo "2) 撤销sudo权限" echo "3) 设置家目录权限(700)" read -p "输入选项: " option case $option in 1) usermod -aG sudo $username ;; 2) deluser $username sudo ;; 3) chmod 700 /home/$username ;; *) echo "无效选项" ;; esac echo "权限已更新" } query_info() { read -p "请输入用户名: " username if id "$username" &>/dev/null; then echo "用户信息:" grep "^$username:" /etc/passwd | awk -F: '{print "用户名: "$1"\nUID: "$3"\nGID: "$4"\n家目录: "$6"\nShell: "$7}' echo "sudo权限: $(groups $username | grep -q sudo && echo "是" || echo "否")" else echo "用户 $username 存在" fi } while true; do echo " ==== 用户管理系统 ==== 1) 批量创建用户 2) 权限管理 3) 用户信息查询 4) 退出系统 =====================" read -p "请输入选项: " choice case $choice in 1) create_users ;; 2) manage_permissions ;; 3) query_info ;; 4) exit 0 ;; *) echo "无效选项,请重新输入" ;; esac done ``` 主要功能说明: 1. **批量创建用户**: -文件读取用户名列表(默认user_list.txt) - 自动创建用户并设置初始密码(示例密码123456) - 自动创建家目录并设置bash为默认shell - 自动跳过已存在用户 2. **权限管理**: - 授予/撤销sudo权限 - 设置家目录权限为700 - 用户存在性验证 3. **信息查询**: - 显示用户基本信息(UID/GID/家目录/Shell) - 显示sudo权限状态 - 用户存在性检查 使用方法: 1. 保存为`user_manager.sh` 2. 添加执行权限:`chmod +x user_manager.sh` 3. 需要root权限执行:`sudo ./user_manager.sh` 安全增强建议: 1. 实际使用时建议修改密码设置方式(示例密码仅用于演示) 2. 可添加密码时效策略 3. 可扩展添加用户删除功能 4. 可添加操作日志记录功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值