Linux 中将用户添加到组的指令
在 Linux 操作系统下,如何添加一个新用户到一个特定的组中?如何同时将用户添加到多个组中?又如何将一个已存在的用户移动到某个组或者给他增加一个组?对于不常用 Linux 的人来讲,记忆 Linux 那繁多的命令行操作真是件不容易的事。
在 Linux 中,增加用户或改变用户的组属性可以使用 useradd 或者 usermod 命令。useradd 增加一个新用户或者更新默认新用户信息。usermod 则是更改用户帐户属性,例如将其添加到一个已有的组中。
在 Linux 用户系统中存在两类组。第一类是主要用户组,第二类是附加用户组。所有的用户帐户及相关信息都存储在 /etc/passwd 文件中,/etc/shadow 和 /etc/group 文件存储了用户信息。
useradd 示例 – 增加一个新用户到附加用户组¶
新增加一个用户并将其列入一个已有的用户组中需要用到 useradd 命令。如果还没有这个用户组,可以先创建该用户组。
命令参数如下:
useradd -G {group-name} username
例如,我们要创建一个新用户 cnzhx 并将其添加到用户组 developers 中。首先需要以 root 用户身份登录到系统中。先确认一下是否存在 developers 这个用户组,在命令行输入:
# grep developers /etc/group
输出类似于:
developers:x:1124:
如果看不到任何输出,那么就需要先创建这个用户组了,使用 groupadd 命令:
# groupadd developers
然后创建用户 cnzhx 并将其加入到 developers 用户组:
# useradd -G developers cnzhx
为用户 cnzhx 设置密码:
# passwd cnzhx
为确保已经将该用户正确的添加到 developers 用户组中,可以查看该用户的属性,使用 id 命令:
# id cnzhx
输出类似于:
uid=1122(cnzhx) gid=1125(cnzhx) groups=1125(cnzhx),1124(developers)
前面命令中用到的大写的 G (-G) 参数就是为了将用户添加到一个附加用户组中,而同时还会为此用户创建一个属于他自己的新组 cnzhx。如果要将该用户同时增加到多个附加用户组中,可以使用英文半角的逗号来分隔多个附加组名(不要加空格)。例如,同时将 cnzhx 增加到 admins, ftp, www, 和 developers 用户组中,可以输入以下命令:
# useradd -G admins,ftp,www,developers cnzhx
useradd 示例 – 增加一个新用户到主要用户组¶
要增加用户 cnzhx 到组 developers,可以使用下面的指令:
# useradd -g developers cnzhx
# id cnzhx
输出类似于:
uid=1123(cnzhx) gid=1124(developers) groups=1124(developers)
请注意如前面的示例的区别,这里使用了小写字母 g (-g)作为参数,此时用户的主要用户组不再是 cnzhx 而直接就是 developers。
小写字母 g (-g)将新增加的用户初始化为指定为登录组(主要用户组)。此组名必须已经存在。组号(gid)即是此已有组的组号。
usermod 示例 – 将一个已有用户增加到一个已有用户组中¶
将一个已有用户 cnzhx 增加到一个已有用户组 apache 中,使此用户组成为该用户的附加用户组,可以使用带 -a 参数的 usermod 指令。-a
代表 append, 也就是将用户添加到新用户组中而不必离开原有的其他用户组。不过需要与 -G 选项配合使用:
# usermod -a -G apache cnzhx
如果要同时将 cnzhx 的主要用户组改为 apache,则直接使用 -g 选项:
# usermod -g apache cnzhx
附:管理用户(user)和用户组(group)的相关工具或命令¶
1)管理用户(user)的工具或命令
useradd 注:添加用户
adduser 注:添加用户
passwd 注:为用户设置密码
usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
pwcov 注:同步用户从/etc/passwd 到/etc/shadow
pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger 注:查看用户信息工具
id 注:查看用户的UID、GID及所归属的用户组
chfn 注:更改用户信息工具
su 注:用户切换工具
sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit 注:和sudo 功能差不多;
2)管理用户组(group)的工具或命令
groupadd 注:添加用户组;
groupdel 注:删除用户组;
groupmod 注:修改用户组信息
groups 注:显示用户所属的用户组
grpck
grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;
将一个用户添加到某个组,即可让此用户拥有该组的权限。比如在配置
VPS 上的 LAMP 服务器的时候,运行网站的 apache 用户修改的文件,如果服务器管理用户 cnzhx(可以通过 ssh 登录到服务器)需要修改此文件的话,就可以将 cnzhx 加入到 apache 组中达到目的。©
Linux 中将用户添加到组的指令的更多相关文章
- linux 中将用户添加到组的 4 个方法
Linux 组是用于管理 Linux 中用户帐户的组织单位.对于 Linux 系统中的每一个用户和组,它都有惟一的数字标识号.它被称为 用户 ID(UID)和组 ID(GID).组的主要目的是为组的成 ...
- Linux将用户添加到组的指令
原文:https://blog.csdn.net/youmatterhsp/article/details/80549683: https://www.cnblogs.com/cl ...
- Linux 中将用户添加到指定组的指令
将一个已有用户 testuser 增加到一个已有用户组 root 中,使此用户组成为该用户的附加用户组,可以使用带 -a 参数的 usermod 指令.-a 代表 append, 也就是将用户添加到 ...
- 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这样强大与完善的桌面环境下是非常简单的事情,一般来说在用户设置的对话框里就直接有相应选项.不过,出于简洁与高效的风格,自己目前并未使用这些高端但 ...
- Day 5 Linux之用户、群组和权限
Linux之用户.群组和权限 一.各文件及内容对应含义 1./etc/passwd文件 功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database). 含义:如下图所示. 2./et ...
- 【转】linux 设置用户id 设置组id
linux 设置用户id 设置组id 转自 linux 设置用户id 设置组id 最近看apue,简单记录对设置用户id理解(设置组id同理). 1. 相关的id好像很多,共有哪些? 文件2个 ...
随机推荐
- curl之post提交xml
直接上代码: /** * 以post方式提交xml到对应的接口url * * @param string $xml 需要post的xml数据 * @param string $url url * @p ...
- 七日筑基——C#第二天
上一次讲到了变量,变量这个东西可以说是编程的基础,主要的作用就是用来存放数据,就跟做菜一样的,不同的菜要放在不同类型的容器中,那么不同的数据也需要存放在不同类型的变量里.先放张饭菜的图给大家看看,增加 ...
- ImageMagick 转换 progressive jpeg
什么是渐进式图片(Progressive JPEG)? 来自 张鑫旭-鑫空间-鑫生活 的解释: 不知诸位有没有注意到,这些jpg格式的图片在呈现的时候,有两种方式,一种是自上而下扫描式的,还有一种就是 ...
- Mysql 正则表达式 判断字段值不包含数字
SELECT * FROM (select replace(FlightId_IaTa,LEFT(FlightId_IaTa,2),'') as aa,FlightId_IaTa,FlightIdfr ...
- Git跨平台中文乱码临时解决方案
Git 是一个非常优秀的分布式版本控制系统,最初为Linux Kernel版本管理进行量身定做.优点是,和其他版本控制系统相比,稳定,速度快,跨平台,易学易用,无需要花费成本.更多优点请点击阅读:ht ...
- C程序的存储空间布局
历史沿袭至今,C程序一直由下列几部分组成: 1. 正文段.这是由CPU执行的机器指令部分.通常,正文段是可共享的,所以即使是频繁执行的程序(编辑器,编译器,命令解释器)在存储器中也只需一个副本,另外正 ...
- BZOJ 2337: [HNOI2011]XOR和路径( 高斯消元 )
一位一位考虑异或结果, f(x)表示x->n异或值为1的概率, 列出式子然后高斯消元就行了 --------------------------------------------------- ...
- Linux字符界面和图形界面
Ubuntu图形界面和字符界面的切换 Ubuntu和其他的Linux系统一样,有图形界面和字符界面,同时能够设置默认的启动界面. linux的显示界面分为命令行的字符界面和图形界面,我们可以设置lin ...
- android手机关于google play商店闪退的解决办法
部分android手机没有安装google play商店,这个可以通过类似“机锋”.“360手机助手”等应用市场下载. 安装google play商店后,点击打开却一闪而过:这个问题是因为手机没有安装 ...
- feof()和EOF的用法(转载)
查看 stdio.h 可以看到如下定义: #define EOF (-1) #define _IOEOF 0x0010 #define feof(_stream) ((_stream)-& ...