[Linux] 账户管理命令useradd, groupadd

用户和用户组

  Linux用户组的所有信息都存放在/etc/group文件中。具有某种共同特征的用户集合起来就是用户组(Group)。用户组(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件。

将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组

用户组的所有信息都存放在/etc/group文件中。此文件的格式是由冒号(:)隔开若干个字段,这些字段具体如下:组名:口令:组标识号:组内用户列表

具体解释:

    组名:组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

    口令:口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。

 组标识号:组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.

组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

例如 root:x:0:root,linuxsir,用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、linuxsir以及GID为0的其它用户。

组管理

1)groupadd 用于添加一个用户组。

格式:groupadd [-g -o GID] GROUP

其中:

GROUP:是要添加的组名

-g:用于指定 GID,默认为使用当前最大的 GID 加1

-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

举例:

1. 添加一个新组 leader

# groupadd leader

# grep leader /etc/group

leader:x:504:

# grep leader /etc/gshadow

leader:!::

2)groupmod 用于修改系统已存在的用户组属性。

格式:groupmod [options] GROUP

其中:

GROUP:为要修改的组账户名

常用选项:

-g GID:重新指派 GID

-n NEW_GROUP:更改组名为 NEW_GROUP

举例:

1. 将 leader 组更名为 leaders

# groupmod -n leaders leader

# grep leader /etc/group

leaders:x:504:

2. 将 leaders 组的 GID 改为 3000

# groupmod -g 3000 leaders

# grep leader /etc/group

leaders:x:3000:

3)groupdel 用于删除系统已存在的组账号。

格式:groupdel GROUP

其中:GROUP 为要删除的组账户名

例如:删除 leaders 组

# groupdel leaders

# grep leaders /etc/group

# grep leaders /etc/gshadow

4)newgrp用于切换用户组。

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限,newgrp主要用于在多个用户组之间进行切换,

语法格式为:newgrp <用户组>

例如:将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。

# newgrp root

用户管理

1)useradd 用于添加用户账号或设置添加用户使用的默认信息。格式如下:

格式1:useradd [options] LOGIN

格式2:useradd -D

格式3:useradd -D [options]

说明:

格式1:用于添加用户账号,LOGIN为用户登录账号

格式2:用于显示添加用户使用的默认信息

格式3:用于设置添加用户使用的默认信息

添加用户选项:

-u UID 指定新用户的 UID,默认为使用当前最大的 UID加1,此值必须为唯一的ID值,除非用-o选项。

-g GROUP 指定新建用户登录时所属的默认组,或者叫主组。此群组必须已经存在。

-G GROUP1[,GROUP2,…[,GROUPN]]] 指定新用户的附加组

-d HOME_DIR 指定新用户的登录目录

-s SHELL 指定新用户使用的 Shell,默认为 bash

-m 创建新用户的home目录,默认值

-M 不创建新用户的自家目录

使用举例:

1. 创建一个新用户 newuser,同时创建用户home目录

# useradd newuser

2. 创建一个新用户 tom,同时加入附加组中

# useradd -G staff tom

# useradd -s /bin/sh -g group –G adm,root gem

3. 创建一个新用户 webmaster,不创建用户home目录,指定登录目录 /www,同时加入apache附加组中

# useradd -d /www -M -G apache webmaster

2)usermod 用于修改系统已存在的组账号。格式如下:usermod [options] LOGIN

其中:

LOGIN:为要修改的用户账号名

options:常用的选项包括-c, -d, -m, -M, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

添加了如下选项:

-a 代表 append, 也就是将用户添加到新用户组中而不必离开原有的其他用户组。不过需要与 -G 选项配合使用

-l NEW_LOGIN 修改用户帐号为NEW_LOGIN。
  -f 失效日 帐号过期多少天后永久禁用。
  -e 过期日 增加或修改用户账户的过期时间。
  -L 锁定用户密码,使密码无效。
  -U 解除密码锁定。

举例:

1. 将 newuser2 添加到组staff 中

# usermod -G staff newuser2

2. 修改 newuser 的用户名为 newuser1

# usermod -l newuser1 newuser

3. 要增加用户 cnzhx 到apache组,可以使用下面的指令

# usermod -a -G apache cnzhx

# id cnzhx

4. 如果要同时将 cnzhx 的主要用户组改为 apache,则直接使用 -g 选项

# usermod -g apache chzhx

# id chzhx

5. 锁定账号 newuser1

# usermod -L newuser1

6. 解除对 newuser1 的锁定

# usermod -U newuser1

3)userdel 用于删除系统已存在的组账号。

格式:userdel [-r] LOGIN

其中:

LOGIN:为要删除的用户账号名

-r:同时删除用户的自家目录和 mail 的假脱机文件

例如:

1. 删除用户 webmaster

# userdel webmaster

2. 删除用户 newuser1,同时删除其自家目录

# userdel -r newuser1

4)passwd 修改用户密码。格式:passwd [option] LOGIN

可使用的选项:

-l 锁定口令,即禁用账号。

-u 口令解锁。

-d 使账号无口令。

-f 强迫用户下次登录时修改口令。

如果默认用户名,则修改当前用户的口令。

用户管理工具

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文件;

Reference

  • http://cnzhx.net/blog/linux-add-user-to-group/
  • http://blog.csdn.net/ithomer/article/details/9971003
时间: 2024-10-13 11:58:54

[Linux] 账户管理命令useradd, groupadd的相关文章

linux用户管理命令

linux的用户管理命令主要有useradd,userdel,usermod useradd useradd用于添加一个用户.adduser与useradd的功能相同,使用ls -l `which adduser`可以发现,adduser是useradd的一个符号链接.     useradd的基本用法为:useradd [options] LOGIN. 例如:添加一个Tom的用户,即为useradd Tom. useradd的选项常用的有-u.-g.-G.-c.-d.-s.-M.-mk.-r.

12个Linux进程管理命令介绍

12个Linux进程管理命令介绍 当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.Linux提供了许多命令来让用户来高效掌控上述的操作. 执行中的程序称作进程.当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作系统会有效地管理和追踪所有运行着的进程. 为了管

Linux 进程管理命令ps、top、kill、nice、fg、bg、vmstat、uptime

Linux 进程管理命令: ps process status 查看进行相关信息: system 风格:sysv  有-线引导 BSD风格:BSD ps a:显示所有跟终端有关的进程 u:显示更详细的字段 x:显示所有跟终端无关的进程 常用 ps ax 进程分类: 终端启动(相关)的进程:用户通过命令行启动的进程 跟终端无关的进程:系统启动就自己启动 进程状态: D: 表示不可中断的睡眠 R:表示就绪态 S:表示可中断的睡眠 T:停止 Z:僵死态 <:高优先级进程 N:低优先级进程 +:前台进程

Linux系统进程管理命令详解

Linux管理进程的最好方法就是使用命令行下的系统命令.Linux下面的进程涉及的命令有at, bg, fg, kill, crontab, jobs, ps, pstree, top, nice, renice, sleep, nohup. 1.at命令:定时运行命令 作用:at命令在指定时刻执行指定的命令序列. 格式: at [-V] [-q x] [-f file] [-m] time atq [-V] [-q x] atrm [-V] [-q x] job- batch [-V] [-f

Linux 进程管理命令

linux进程管理命令,大部分挺重要的,不过参数肯定不全,只写出几个比较常用的参数,如果用到其他的,可以去百度. accton  打开或关闭进程统计(打开进程统计,如果不加任何参数,则关闭进程统计) acction [-v][-h][filename] acct  是一个工具包 ,里面包含针对用户连接时间,进程执行情况进行统计包含下面一些命令 : ac   登录账号的简要信息 accton 打开或者关闭进程账号记录功能 last 显示曾经登陆过的用户 lastcomm 显示已经执行过的命令 sa

Linux用户管理命令(第二版)

添加用户 1.useradd -设置选项 用户名 [-D 查看缺省参数 ] 选项: u: UID [必须是系统中没有的] g:缺省所属用户组GID[最好有] G: 指定用户所属多个组[可以指定这个用户所属的部门等] d: 宿主目录[可以任意指定] s: 命令解释器Shell [必须是包含在/etc/shells文件中的] c:描述信息[可以用于描述该用户是谁,有什么权限,最好要有] e: 指定用户失效时间 E.g. useradd -u 6666 -g root -G sys,apache -d

Linux用户管理命令详解之二

Linux下常用用户管理命令有:useradd.userdel.usermod.passwd.chsh.finger.id.chage 4.改变用户的shell 命令:chsh 语法:chsh [-s shell] [-l] [-u] [-v] [username] 选项: -s:改变当前shell -l:显示/etc/shells目录下的shell 说明:这是用来改变使用者自己的 shell 的指令!由于这个档案能够改变 /etc/passwd 的内容,所以他的预设属性就有SUID的属性了!通

linux用户管理命令之NBA版

用户管理命令之NBA版 本文纯属扯淡,如有不严谨之处,还请海涵. 1 groupadd 作用:创建一个属组 格式:groupadd [选项] 属组名 选项:     -:选项为空 创建新属组,    -g:指定组GID,默认是GID+1 实例 1.1 添加属组team,指定组ID为1111     groupadd -g 1111 team 2 groupmod 作用:修改属组信息 格式:groupmod [选项] 属组名 选项:     -g:GID 修改属组GID -n:修改属组名 实例 2

04_01 Linux用户管理命令详解(下)

用户管理: useradd [option] USERNAME -u UID USERNAME -g GID -G GID,...(多个附加组 逗号隔开) -c "COMMENT" 指定注释信息 -d /path/to/somedirectory 指定某个目录 -s SHELL   指定shell的目录路径 -m -k 强行复制bash的配置文件 默认是复制过去的 -M 不给创建家目录 -r 添加一个系统用户 1-499 系统用户 不能登陆系统 没有家目录 /etc/skel 个人的b