Linux中批量创建用户的方法

在Linux中,可以使用脚本来批量创建用户。以下是一个具体的步骤:

1)在 /home/user1/ 目录下创建目录:

sudo mkdir /home/user1
sudo chown root:root /home/user1

执行命令 sudo chown root:root /home/user1/home/user1 目录的所有者和所属组都修改为 root。这意味着只有 root 用户(超级用户)才能对该目录进行修改和访问,其他用户将无法更改此目录。 

2)创建一个包含用户信息的文本文件users.txt 来存储用户信息,使用 vi 命令编辑 users.txt 文件:

sudo vi /home/user1/users.txt

文件内容:每行表示一个用户,在 users.txt 文件中,每行输入一个用户的信息,格式如下:

用户名:密码:用户ID:附加组:用户主目录:登录shell

注意:密码字段可以为空,后续可以通过其他方式设置密码。 

例如:

user1:password1:1001:group1:/home/user1:/bin/bash
user2:password2:1002:group2:/home/user2:/bin/bash

3)确保附加组已经存在。

如果在用户信息中指定了附加组(如 group1group2),则需要先创建这些组。可以使用以下命令创建附加组:

sudo groupadd group1
sudo groupadd group2

附加组(或称为辅助组)的信息存储在 /etc/group 文件中。该文件记录了系统中所有组的信息,包括组名、组ID和组成员。

可以使用下面的命令查看 /etc/group 文件:

cat /etc/group

通常情况下,创建附加组时会自动将其添加到 /etc/group 文件中。 

4)编写一个脚本(例如 create_users.sh),用于读取 users.txt 文件并根据其中的用户信息创建用户。

打开终端并使用任意文本编辑器(如nanovim)创建一个脚本文件,示例脚本:

#!/bin/bashwhile IFS=: read -r username password uid groups homedir shell; doecho "Creating user: $username"sudo useradd -m -p "$password" -u "$uid" -g "$groups" -d "$homedir" -s "$shell" "$username"sudo chpasswd <<<"$username:$password"sudo passwd -e "$username"sudo chown "$username":"$groups" "$homedir"
done < users.txt

5)确保将脚本保存为可执行文件,使用以下命令进行修改:

chmod +x create_users.sh

6)运行脚本来完成批量创建用户的操作:

./create_users.sh

如果 users.txt 文件不在当前目录下,也可以通过指定路径来运行脚本,例如:

./create_users.sh /path/to/users.txt

7)脚本将按照 users.txt 文件中的每一行,创建用户并设置密码,并将文件夹所有权赋予相应的用户和组。检查用户是否成功创建,使用以下命令查看系统上的用户列表:

cut -d: -f1 /etc/passwd

如果需要删除之前创建的用户和组,可以按照以下步骤进行操作: 

①删除用户:

使用 userdel 命令来删除用户。需要以 root 用户或具有管理员权限的用户身份运行该命令。

sudo userdel <用户名>

<用户名> 替换为要删除的用户的用户名。例如,要删除名为 user1 的用户,可以运行以下命令:

sudo userdel user1

注意,userdel 命令将只删除用户账户,并不会删除该用户的主目录和邮箱等相关文件。

如果需要同时删除用户的主目录,请使用 -r 选项:

sudo userdel -r user1

②删除附加组:

使用 groupdel 命令来删除附加组。同样,需要以 root 用户或具有管理员权限的用户身份运行该命令。

sudo groupdel <组名>

<组名> 替换为要删除的组的名称。例如,要删除名为 group1 的组,可以运行以下命令:

sudo groupdel group1

注意,在删除组之前,请确保该组中没有任何用户。如果还有用户属于该组,你需要先将这些用户从组中移除。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/614851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于JavaWeb+BS架构+SpringBoot+Vue+Hadoop的物品租赁系统的设计与实现

基于JavaWebBS架构SpringBootVueHadoop的物品租赁系统的设计与实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 目  录 I 1绪 论 1 1.1开发背景 1 1.2开发目的与意义 1 1.2.1开发目…

Qt QTableView和QStandardItemModel包含搜索出现的文本及隐藏顶层节点

前言 使用Qt进行开发时&#xff0c;树结构一般是使用QTreeWidget或使用QTreeViewQStandardItemModel结合。 查找 如果要进行查找树的所有项中&#xff0c;是否包含某文本&#xff0c;就需要遍历。 QTreeWidget查找 以下是使用QTreeWidget进行查找&#xff1a; 首先初始化一…

OpenGL和OpenGL ES显示YUV图片的着色器差别(一)

这里解释的只是用于显示YUV图片的代码&#xff0c;没有增加任何效果&#xff1a; OpenGL 的片段着色器片段&#xff1a; const char *fsrc "varying vec2 textureOut; \uniform sampler2D tex_y; \uniform sampler2D tex_u; \uniform sampler2D tex_v; \void main(void…

css 怎么绘制一个带圆角的渐变色的边框

1&#xff0c;可以写两个样式最外面的div设置一个渐变的背景色。里面的元素使用纯色。但是宽高要比外面元素的小。可以利用里面的元素设置padding这样挡住部分渐变色。漏出来的渐变色就像边框一样。 <div class"cover-wrapper"> <div class"item-cover…

leetcode 每日一题 2024年01月11日 构造有效字符串的最少插入数

题目 2645. 构造有效字符串的最少插入数 给你一个字符串 word &#xff0c;你可以向其中任何位置插入 “a”、“b” 或 “c” 任意次&#xff0c;返回使 word 有效 需要插入的最少字母数。 如果字符串可以由 “abc” 串联多次得到&#xff0c;则认为该字符串 有效 。 示例 …

【ChatGPT-Share,国内可用】GPTS商店大更新:一探前沿科技的魅力!

使用地址&#xff1a;https://hello.zhangsan.cloud/list GPTS商店预览,王炸更新 精选应用&#xff1a; 系统内置应用&#xff1a; 绘画应用&#xff1a; 写作应用&#xff1a; 高效工具应用&#xff1a; 学术搜索和分析应用&#xff1a; 编程应用&#xff1a; 教育应…

C++白皮书学习

decltype C decltype用法详解-CSDN博客 <-参考文章 用来在编译时期进行自动类型推导。引入decltype是因为auto并不适用于所有的自动类型推导场景&#xff0c;在某些特殊情况下auto用起来很不方便&#xff0c;甚至压根无法使用。 auto varNamevalue; decltype(exp) varN…

万字长文 详细讲述 计算机网络层

文章目录 网络层网络层的几个重要概念网络层的两个层面 网际协议 IP虚拟互连网络IP 地址IP 地址及其表示方法IP 地址与 MAC 地址地址解析协议 ARPIP 数据报的格式 IP层转发分组过程基于终点的转发最长前缀匹配 网际控制报文协议 ICMPICMP 报文的种类ICMP 的应用举例IPv6 的基本…

Discourse 未活动的用户是怎么处理的

Discourse 目前有一个参数为 clean up inactive users after days 来控制不活跃或者未激活的用户。 如果你的用户满足下面的条件的话&#xff0c;系统将会在到期后对用户进行清理和删除 从未在 Discourse 站点上发布任何内容 如果你在 Discourse 站点上发布了内容&#xff0c…

MYSQL导出数据

导出数据 备份数据   [rootsf105113 bin]# mysqldump -h127.0.0.1 -P3306 -uroot -p --add-locks -q dbname > dbname.sql //参数依次为:-h 主机 -p 端口 -u 用户名 -p 密码 --add-locks:导出过程中锁定表&#xff0c;完成后回解锁。 -q&#xff1a;不缓冲查询&#xf…

2024美赛数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…

【PaperReading】5. Open-Vocabulary SAM

Category Content 论文题目 Open-Vocabulary SAM: Segment and Recognize Twenty-thousand Classes Interactively 作者 Haobo Yuan1 Xiangtai Li1 Chong Zhou1 Yining Li2 Kai Chen2 Chen Change Loy1 1S-Lab, Nanyang Technological University 2Shanghai Artificial In…

排序之希尔排序

希尔排序&#xff0c;也被称为缩小增量排序&#xff0c;是一种基于插入排序的算法。它通过比较相距一定间隔的元素&#xff0c;来工作&#xff0c;然后再逐渐减小间隔&#xff0c;直到整个数组排序完成。这种算法的主要优点是对于部分有序的数组&#xff0c;其效率非常高&#…

HBase实际应用中常见的问题 解决方案

HBase 是一个分布式的、面向列的开源数据库&#xff0c;通常用于处理大规模数据。在实际应用中&#xff0c;可能会遇到一些常见问题&#xff0c;以下是一些常见问题及其解决方案&#xff1a; 性能问题&#xff1a; 问题&#xff1a;HBase 性能下降&#xff0c;读写延迟增加。…

NLP论文阅读记录 - 05 | 2023 抽象总结与提取总结:实验回顾

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作2.1 提取方法2.2 抽象方法2.3 数据集 三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 Abstractive vs. Extractiv…

【OSG案例详细分析与讲解】之五:【3D交互式动画】

文章目录 一、【3D交互式动画】前言 二、【3D交互式动画】实现效果

ARP协议详解

1、ARP协议的定义 地址解析协议(Address Resolution Protocol&#xff0c;ARP)&#xff1a;ARP协议可以将IPv4地址(一种逻辑地址)转换为各种网络所需的硬件地址(一种物理地址)。换句话说&#xff0c;所谓的地址解析的目标就是发现逻辑地址与物理地址的映射关系。 ARP仅用于IPv…

c++ define 用法

PS&#xff1a;凡是以 # 开头的均为预处理指令&#xff0c;预处理又叫预编译。预编译不是编译&#xff0c;而是编译前的处理。这个操作是在正式编译之前由系统自动完成的。 宏定义 宏定义分为有参和午餐&#xff0c;一般而言无参更多用constexpr代替 无参 #define 标识符 …

代币中的decimal精度代表了什么

精度的意义在于允许发送小数的代币。举例&#xff0c;一个CAT代币合约的精度为6。那么 你拥有1个CAT就意味着合约中的balance 1 * 10^6 , 转账 0.1CAT出去的话&#xff0c;就需要输入 0.1*10^6 10^5。 也就时在涉及代币时&#xff0c;查询到的余额、转账的代币数量 都和 代币…

Sqoop入门指南:安装和配置

Sqoop是一个强大的工具&#xff0c;用于在Hadoop和关系型数据库之间高效传输数据。在本篇文章中&#xff0c;将深入探讨如何安装和配置Sqoop&#xff0c;以及提供详细的示例代码。 安装Java和Hadoop 在开始安装Sqoop之前&#xff0c;首先确保已经成功安装了Java和Hadoop。Sqo…