用shell编程用户和组,某公司有50个员工,在一个部门工作,每个人工作内容不同。

时间: 2023-05-15 16:03:06 浏览: 106
为了方便管理,我们需要在系统中创建一个部门对应的组,将这50个员工添加到这个组中。这样,我们就可以对这个组中的所有用户进行一些操作,而不需要一个一个地操作每个用户。 首先,我们可以使用以下命令创建部门对应的组: ``` sudo groupadd department ``` 接着,我们可以使用以下命令一次性地创建并添加50个用户到这个组中: ``` for i in {1..50}; do sudo useradd -m -G department user$i; done ``` 其中,user1 到 user50 是我们创建的50个用户的用户名。 通过上面的命令,我们为每个用户创建了一个家目录(-m 选项),并将他们分别添加到了 department 组中(-G 选项)。 这样,我们就可以使用以下命令查看这个组中的所有用户: ``` getent group department ``` 而对于部门内的每个员工,他们的工作内容不同,我们可以在其家目录下创建一个工作目录,用于存放与工作相关的文件: ``` for i in {1..50}; do sudo mkdir /home/user$i/work; done ``` 这样,每个员工就可以在自己的 /home/userX/work 目录下存放工作相关的文件了。当然,在实际情况中,我们可能需要更具体的目录结构和访问权限,这就需要根据具体情况进行设置了。
相关问题

用 shell编程创建用户和组,某公司有20个员工,在1个部门工作,每个人工作内容不同。需要在服务器上为每个人创建不同的账号,把20用户放在一个组中,每个用户都有自己的工作目录

可以使用以下的shell脚本来实现: ``` #!/bin/bash # 创建组 groupadd mygroup # 循环创建用户 for i in {1..20} do # 创建用户名,例如user1、user2等 username="user$i" # 创建密码 password=$(openssl rand -base64 12) # 创建用户,并设置密码 useradd -m -p $password $username # 将用户添加到组中 usermod -a -G mygroup $username # 创建工作目录 mkdir /home/$username/work # 设置工作目录的权限 chown $username:mygroup /home/$username/work chmod 770 /home/$username/work done ``` 解释一下以上代码: - `groupadd mygroup`:创建名为`mygroup`的组。 - `for i in {1..20}`:循环20次,创建20个用户。 - `username="user$i"`:创建用户名,例如`user1`、`user2`等。 - `password=$(openssl rand -base64 12)`:使用openssl生成12位随机密码。 - `useradd -m -p $password $username`:创建用户,并设置密码。 - `usermod -a -G mygroup $username`:将用户添加到`mygroup`组中。 - `mkdir /home/$username/work`:创建工作目录。 - `chown $username:mygroup /home/$username/work`:将工作目录的所属用户设置为当前用户,所属组设置为`mygroup`。 - `chmod 770 /home/$username/work`:设置工作目录的权限为`rwxrwx---`,即用户和组有读写执行权限,其他用户没有任何权限。 执行以上脚本后,就可以在服务器上创建20个用户,并将它们添加到一个组中,每个用户都有自己的工作目录。

不使用shell脚本实现,项目背景:某公司有 60 个员工,分别在 5 个部门分别为:财务部,工程部,业务部,管理部,行政部。60人平均分配在每个部门中,每个人的工作内容不同,需要在服务器上为每个人创建不同的账号,把相同部门的用户放在一个组中, 每个用户都有自己的工作目录,并且需要根据工作性质对每个部门和每个用户在服务器上 的可用空间进行限制

如果不使用 shell 脚本,也可以通过以下步骤实现: 1. 创建部门组:使用 `groupadd` 命令创建每个部门的组。例如: ``` groupadd finance groupadd engineering groupadd business groupadd management groupadd administration ``` 2. 创建用户账号和工作目录:使用 `useradd` 命令为每个员工创建账号,并分配对应的工作目录。例如: ``` useradd -d /home/finance/user1 -m user1 useradd -d /home/finance/user2 -m user2 # 依此类推,为每个员工创建账号和工作目录 ``` 其中,`-d` 参数指定用户的工作目录,`-m` 参数表示创建用户时同时创建该目录。 3. 将用户添加到对应的组中:使用 `usermod` 命令将每个用户添加到其所在的部门组中。例如: ``` usermod -aG finance user1 usermod -aG finance user2 # 依此类推,将每个员工添加到对应的部门组中 ``` 其中,`-aG` 参数表示将用户添加到指定的组中。 4. 对每个组设置可用空间限制:使用 `setquota` 命令对每个部门组设置可用空间限制。例如: ``` setquota -g finance 100M 200M 0 0 / setquota -g engineering 150M 300M 0 0 / setquota -g business 80M 160M 0 0 / setquota -g management 120M 240M 0 0 / setquota -g administration 90M 180M 0 0 / ``` 其中,`-g` 参数表示对组设置限制,第一个参数表示磁盘空间限制,第二个参数表示磁盘空间软限制(超出限制时会有警告但不会阻止用户写入),最后的 `/` 表示对整个文件系统设置限制。 需要注意的是,`setquota` 命令需要在文件系统支持 quota 的情况下才能使用。 通过以上步骤,就可以为每个员工创建账号和工作目录,并将其分配到对应的部门组中,并对每个部门和每个用户设置可用空间限制。

相关推荐

最新推荐

recommend-type

一个Shell小脚本精准统计Mysql每张表的行数实现

主要介绍了一个Shell小脚本精准统计Mysql每张表的行数实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

250个shell脚本

Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来...
recommend-type

一个监控LINUX目录和文件变化的Shell脚本分享

主要介绍了一个监控LINUX目录和文件变化的Shell脚本分享,对服务器经常被挂马的朋友时分有用,需要的朋友可以参考下
recommend-type

在shell脚本中获取上个月最后一天的日期方法

今天小编就为大家分享一篇在shell脚本中获取上个月最后一天的日期方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

一个Linux系统安全设置的Shell脚本的分享(适用CentOS)

主要介绍了一个设置Linux系统安全的Shell脚本的分享,适用CentOS,包含大部份的安全设置,只需执行脚本就可以得到一个相对安全的Linux系统了,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】MATLAB用遗传算法改进粒子群GA-PSO算法

![MATLAB智能算法合集](https://static.fuxi.netease.com/fuxi-official/web/20221101/83f465753fd49c41536a5640367d4340.jpg) # 2.1 遗传算法的原理和实现 遗传算法(GA)是一种受生物进化过程启发的优化算法。它通过模拟自然选择和遗传机制来搜索最优解。 **2.1.1 遗传算法的编码和解码** 编码是将问题空间中的解表示为二进制字符串或其他数据结构的过程。解码是将编码的解转换为问题空间中的实际解的过程。常见的编码方法包括二进制编码、实数编码和树形编码。 **2.1.2 遗传算法的交叉和
recommend-type

openstack的20种接口有哪些

以下是OpenStack的20种API接口: 1. Identity (Keystone) API 2. Compute (Nova) API 3. Networking (Neutron) API 4. Block Storage (Cinder) API 5. Object Storage (Swift) API 6. Image (Glance) API 7. Telemetry (Ceilometer) API 8. Orchestration (Heat) API 9. Database (Trove) API 10. Bare Metal (Ironic) API 11. DNS
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。