linux 中将用户添加到组的 4 个方法
Linux 组是用于管理 Linux 中用户帐户的组织单位。对于 Linux 系统中的每一个用户和组,它都有惟一的数字标识号。它被称为 用户 ID(UID)和组 ID(GID)。组的主要目的是为组的成员定义一组特权。它们都可以执行特定的操作,但不能执行其他操作。
Linux 中有两种类型的默认组。每个用户应该只有一个 主要组primary group 和任意数量的 次要组secondary group。
- 主要组: 创建用户帐户时,已将主要组添加到用户。它通常是用户的名称。在执行诸如创建新文件(或目录)、修改文件或执行命令等任何操作时,主要组将应用于用户。用户的主要组信息存储在
/etc/passwd
文件中。 - 次要组: 它被称为次要组。它允许用户组在同一组成员文件中执行特定操作。例如,如果你希望允许少数用户运行 Apache(httpd)服务命令,那么它将非常适合。
你可能对以下与用户管理相关的文章感兴趣。
可以使用以下四种方法实现。
usermod
:修改系统帐户文件,以反映在命令行中指定的更改。gpasswd
:用于管理/etc/group
和/etc/gshadow
。每个组都可以有管理员、成员和密码。- Shell 脚本:可以让管理员自动执行所需的任务。
- 手动方式:我们可以通过编辑
/etc/group
文件手动将用户添加到任何组中。
我假设你已经拥有此操作所需的组和用户。在本例中,我们将使用以下用户和组:user1
、user2
、user3
,另外的组是 mygroup
和 mygroup1
。
在进行更改之前,我希望检查一下用户和组信息。详见下文。
我可以看到下面的用户与他们自己的组关联,而不是与其他组关联。
# id user1
uid=1008(user1) gid=1008(user1) groups=1008(user1)
# id user2
uid=1009(user2) gid=1009(user2) groups=1009(user2)
# id user3
uid=1010(user3) gid=1010(user3) groups=1010(user3)
我可以看到这个组中没有关联的用户。
# getent group mygroup
mygroup:x:1012:
# getent group mygroup1
mygroup1:x:1013:
方法 1:使用 usermod 命令
usermod
命令修改系统帐户文件,以反映命令行上指定的更改。
如何使用 usermod 命令将现有的用户添加到次要组或附加组?
要将现有用户添加到辅助组,请使用带有 -G
选项和组名称的 usermod
命令。
语法:
# usermod [-G] [GroupName] [UserName]
如果系统中不存在给定的用户或组,你将收到一条错误消息。如果没有得到任何错误,那么用户已经被添加到相应的组中。
# usermod -a -G mygroup user1
让我使用 id
命令查看输出。是的,添加成功。
# id user1
uid=1008(user1) gid=1008(user1) groups=1008(user1),1012(mygroup)
如何使用 usermod 命令将现有的用户添加到多个次要组或附加组?
要将现有用户添加到多个次要组中,请使用带有 -G
选项的 usermod
命令和带有逗号分隔的组名称。
语法:
# usermod [-G] [GroupName1,GroupName2] [UserName]
在本例中,我们将把 user2
添加到 mygroup
和 mygroup1
中。
# usermod -a -G mygroup,mygroup1 user2
让我使用 id
命令查看输出。是的,user2
已成功添加到 myGroup
和 myGroup1
中。
# id user2
uid=1009(user2) gid=1009(user2) groups=1009(user2),1012(mygroup),1013(mygroup1)
如何改变用户的主要组?
要更改用户的主要组,请使用带有 -g
选项和组名称的 usermod
命令。
语法:
# usermod [-g] [GroupName] [UserName]
我们必须使用 -g
改变用户的主要组。
# usermod -g mygroup user3
让我们看看输出。是的,已成功更改。现在,显示user3
主要组是 mygroup
而不是 user3
。
# id user3
uid=1010(user3) gid=1012(mygroup) groups=1012(mygroup)
方法 2:使用 gpasswd 命令
gpasswd
命令用于管理 /etc/group
和 /etc/gshadow
。每个组都可以有管理员、成员和密码。
如何使用 gpasswd 命令将现有用户添加到次要组或者附加组?
要将现有用户添加到次要组,请使用带有 -M
选项和组名称的 gpasswd
命令。
语法:
# gpasswd [-M] [UserName] [GroupName]
在本例中,我们将把 user1
添加到 mygroup
中。
# gpasswd -M user1 mygroup
让我使用 id
命令查看输出。是的,user1
已成功添加到 mygroup
中。
# id user1
uid=1008(user1) gid=1008(user1) groups=1008(user1),1012(mygroup)
如何使用 gpasswd 命令添加多个用户到次要组或附加组中?
要将多个用户添加到辅助组中,请使用带有 -M
选项和组名称的 gpasswd
命令。
语法:
# gpasswd [-M] [UserName1,UserName2] [GroupName]
在本例中,我们将把 user2
和 user3
添加到 mygroup1
中。
# gpasswd -M user2,user3 mygroup1
让我使用 getent
命令查看输出。是的,user2
和 user3
已成功添加到 myGroup1
中。
# getent group mygroup1
mygroup1:x:1013:user2,user3
如何使用 gpasswd 命令从组中删除一个用户?
要从组中删除用户,请使用带有 -d
选项的 gpasswd
命令以及用户和组的名称。
语法:
# gpasswd [-d] [UserName] [GroupName]
在本例中,我们将从 mygroup
中删除 user1
。
# gpasswd -d user1 mygroup
Removing user user1 from group mygroup
方法 3:使用 Shell 脚本
基于上面的例子,我知道 usermod
命令没有能力将多个用户添加到组中,可以通过 gpasswd
命令完成。但是,它将覆盖当前与组关联的现有用户。
例如,user1
已经与 mygroup
关联。如果要使用 gpasswd
命令将 user2
和 user3
添加到 mygroup
中,它将不会按预期生效,而是对组进行修改。
如果要将多个用户添加到多个组中,解决方案是什么?
两个命令中都没有默认选项来实现这一点。
因此,我们需要编写一个小的 shell 脚本来实现这一点。
如何使用 gpasswd 命令将多个用户添加到次要组或附加组?
如果要使用 gpasswd
命令将多个用户添加到次要组或附加组,请创建以下 shell 脚本。
创建用户列表。每个用户应该在单独的行中。
$ cat user-lists.txt
user1
user2
user3
使用以下 shell 脚本将多个用户添加到单个次要组。
vi group-update.sh
#!/bin/bash
for user in `cat user-lists.txt`
do
usermod -a -G mygroup $user
done
设置 group-update.sh
文件的可执行权限。
# chmod + group-update.sh
最后运行脚本来实现它。
# sh group-update.sh
让我看看使用 getent
命令的输出。 是的,user1
、user2
和 user3
已成功添加到 mygroup
中。
# getent group mygroup
mygroup:x:1012:user1,user2,user3
如何使用 gpasswd 命令将多个用户添加到多个次要组或附加组?
如果要使用 gpasswd
命令将多个用户添加到多个次要组或附加组中,请创建以下 shell 脚本。
创建用户列表。每个用户应该在单独的行中。
$ cat user-lists.txt
user1
user2
user3
创建组列表。每组应在单独的行中。
$ cat group-lists.txt
mygroup
mygroup1
使用以下 shell 脚本将多个用户添加到多个次要组。
#!/bin/sh
for user in `more user-lists.txt`
do
for group in `more group-lists.txt`
do
usermod -a -G $group $user
done
设置 group-update-1.sh
文件的可执行权限。
# chmod +x group-update-1.sh
最后运行脚本来实现它。
# sh group-update-1.sh
让我看看使用 getent
命令的输出。 是的,user1
、user2
和 user3
已成功添加到 mygroup
中。
# getent group mygroup
mygroup:x:1012:user1,user2,user3
此外,user1
、user2
和 user3
已成功添加到 mygroup1
中。
# getent group mygroup1
mygroup1:x:1013:user1,user2,user3
方法 4:在 Linux 中将用户添加到组中的手动方法
我们可以通过编辑 /etc/group
文件手动将用户添加到任何组中。
打开 /etc/group
文件并搜索要更新用户的组名。最后将用户更新到相应的组中。
# vi /etc/group
via: https://www.2daygeek.com/linux-add-user-to-group-primary-secondary-group-usermod-gpasswd/
作者:Magesh Maruthamuthu 选题:lujun9972 译者:NeverKnowsTomorrow 校对:wxy
订阅“Linux 中国”官方小程序来查看
linux 中将用户添加到组的 4 个方法的更多相关文章
- Linux 中将用户添加到组的指令
在 Linux 操作系统下,如何添加一个新用户到一个特定的组中?如何同时将用户添加到多个组中?又如何将一个已存在的用户移动到某个组或者给他增加一个组?对于不常用 Linux 的人来讲,记忆 Linux ...
- Linux 中将用户添加到指定组的指令
将一个已有用户 testuser 增加到一个已有用户组 root 中,使此用户组成为该用户的附加用户组,可以使用带 -a 参数的 usermod 指令.-a 代表 append, 也就是将用户添加到 ...
- Linux将用户添加到组的指令
原文:https://blog.csdn.net/youmatterhsp/article/details/80549683: https://www.cnblogs.com/cl ...
- linux把用户添加到组
使用 usermod 命令 将现有的用户添加到多个次要组或附加组 # usermod -a -G GroupName UserName id 命令查看输出 # id UserName 用户添加到多个次 ...
- Linux 中将用户添加到指定组
添加组 usermod -a -G root dev 修改组 usermod -g root dec 删除组 gpasswd -d dev root gpasswd -a dev root //将用户 ...
- Linux给用户添加sudo权限
一.linux给用户添加sudo权限: 有时候,linux下面运行sudo命令,会提示类似: xxxis not in the sudoers file. This incident will be ...
- 用Bash脚本将Linux普通用户添加为系统管理员
将Linux普通用户添加为系统管理员在Gnome或KDE这样强大与完善的桌面环境下是非常简单的事情,一般来说在用户设置的对话框里就直接有相应选项.不过,出于简洁与高效的风格,自己目前并未使用这些高端但 ...
- 【转】linux 设置用户id 设置组id
linux 设置用户id 设置组id 转自 linux 设置用户id 设置组id 最近看apue,简单记录对设置用户id理解(设置组id同理). 1. 相关的id好像很多,共有哪些? 文件2个 ...
- Day 5 Linux之用户、群组和权限
Linux之用户.群组和权限 一.各文件及内容对应含义 1./etc/passwd文件 功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database). 含义:如下图所示. 2./et ...
随机推荐
- 简单的鼠标操作<一个填充格子的小游戏>
#include "graphics.h" #include "conio.h" void main(){ // 初始化界面 initgraph(, ); ; ...
- 小程序的目录结构/配置介绍/视图层wxml数据绑定/双线程模型/小程序的启动流程
安装好微信小程序开发软件,创建项目 小程序文件结构和传统web对比 结构 传统web 微信小程序 结构 HTML WXML 样式 CSS WXSS 逻辑 Javascript Javascript 配 ...
- opencv模块学习
一.简介 ''' 分辨率(resolution,港台称之为解析度)就是屏幕图像的精密度,是指显示器所能显示的像素的多少.由于屏幕上的点.线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同 ...
- 机器学习SVD笔记
机器学习中SVD总结 矩阵分解的方法 特征值分解. PCA(Principal Component Analysis)分解,作用:降维.压缩. SVD(Singular Value Decomposi ...
- linux根文件系统的挂载过程详解
一:前言 前段时间在编译kernel的时候发现rootfs挂载不上.相同的root选项设置旧版的image却可以.为了彻底解决这个问题.研究了一下rootfs的挂载过程.特总结如下,希望能给这部份知识 ...
- (转)FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
雷霄骅分类专栏: FFMPEG FFmpeg 本文链接:https://blog.csdn.net/leixiaohua1020/article/details/14215391 FFMPEG中的sw ...
- RVA与RWA的关系
RVA与RWA的关系 原理比较简单:首先判断这个地址是否在PE头中,如果在,文件偏移和内存偏移相等,如果存在于文件的区段中,则利用以下公式: 内存偏移 - 该段起始的RVA(VirtualAddres ...
- 将网站升级为https并自动续期Https证书。
Let's Encrypt Let's Encrypt 是一个由Internet Security Research Group (互联网安全研究组)提供的免费,自动化和开放的证书颁发机构. 它秉承着 ...
- 一行css代码搞定响应式布局
在这篇文章中,我将教你如何使用 CSS Grid 来创建一个超酷的图像网格图,它将根据屏幕的宽度来改变列的数量.最精彩的地方在于:所有的响应特性被添加到了一行 css 代码中.这意味着我们不必将 HT ...
- rabbitmd
一.前期准备 (1)条件:准备3台linux系统,确保能连到download.yunwei.edu (2)编写yum源下载脚本: vim yum-repo.sh wget -O /etc/yu ...