加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux将用户添加到组的指令

发布时间:2020-12-14 01:26:19 所属栏目:Linux 来源:网络整理
导读:原文: https://blog.csdn.net/youmatterhsp/article/details/80549683; ? ? ? ?? ?https://www.cnblogs.com/clicli/p/5943788.html https://www.cnblogs.com/jxhd1/p/6528574.html 在 Linux 中,增加用户或改变用户的组属性可以使用? useradd ?或者? userm

原文:https://blog.csdn.net/youmatterhsp/article/details/80549683;          ? ? ? ?? ?https://www.cnblogs.com/clicli/p/5943788.html

   https://www.cnblogs.com/jxhd1/p/6528574.html

在 Linux 中,增加用户或改变用户的组属性可以使用?useradd?或者?usermod?命令。useradd增加一个新用户或者更新默认新用户信息。usermod?则是更改用户帐户属性,例如将其添加到一个已有的组中。

在 Linux 用户系统中存在两类组。第一类是主要用户组,第二类是附加用户组。所有的用户帐户及相关信息都存储在?/etc/passwd?文件中,/etc/shadow?和?/etc/group?文件存储了用户信息。

?

Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除与修改。
用户口令的管理。
用户组的管理。

一、Linux系统用户账号的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。
1、添加新的用户账号使用 useradd命令,其语法如下:
代码:
useradd 选项 用户名
其中各选项含义如下:
代码:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名 指定新账号的登录名。
例1:
代码:
# useradd –d /usr/sam -m sam
此命令创建了一个用户sam,
其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。
例2:
代码:
# useradd -s /bin/sh -g group –G adm,root gem
此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
这里可能新建组:#groupadd group及groupadd adm 
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow,/etc/group等。
Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。
2、删除帐号
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下:
代码:
userdel 选项 用户名
常用的选项是-r,它的作用是把用户的主目录一起删除。
例如:
代码:
# userdel sam
此命令删除用户sam在系统文件中(主要是/etc/passwd,/etc/shadow,/etc/group等)的记录,同时删除用户的主目录。
3、修改帐号
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令,其格式如下:
代码:
usermod 选项 用户名
常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:
代码:
-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
例如:
代码:
# usermod -s /bin/ksh -d /home/z –g developer sam
此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
4、用户口令的管理
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
代码:
passwd 选项 用户名
可使用的选项:
代码:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:
代码:
$ passwd
Old password:******
New password:*******
Re-enter new password:*******
如果是超级用户,可以用下列形式指定任何用户的口令:
代码:
# passwd sam
New password:*******
Re-enter new password:*******
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
为用户指定空口令时,执行下列形式的命令:
代码:
# passwd -d sam

此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。
passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:
代码:
# passwd -l sam
新建用户异常:
useradd -d /usr/hadoop -u 586 -m hadoop -g hadoop
1 Creating mailbox file: 文件已存在
删除即可 rm -rf /var/spool/mail/用户名
2 useradd: invalid numeric argument ‘hadoop‘
这是由于hadoop组不存在 请先建hadoop组
通过cat /etc/passwd 可以查看用户的pass
cat /etc/shadow 可以查看用户名
cat /etc/group 可以查看 组


linux下创建用户(二)
二、Linux系统用户组的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

1、增加一个新的用户组使用groupadd命令。 其格式如下:

代码:
groupadd 选项 用户组

可以使用的选项有:
代码:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

例1:

代码:
# groupadd group1

此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

例2:

代码:
#groupadd -g 101 group2

此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

2、如果要删除一个已有的用户组,使用groupdel命令, 其格式如下:

代码:
groupdel 用户组

例如:

代码:
#groupdel group1

此命令从系统中删除组group1。

3、修改用户组的属性使用groupmod命令。 其语法如下:

代码:
groupmod 选项 用户组

常用的选项有:
代码:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字

例1:

代码:
# groupmod -g 102 group2

此命令将组group2的组标识号修改为102。

例2:

代码:
# groupmod –g 10000 -n group3 group2

此命令将组group2的标识号改为10000,组名修改为group3。

4、如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。 例如:

代码:
$ newgrp root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。


权限分配
分配权限
chown -R hadoop:hadoop /usr/hadoop/

让普通用户拥有root的权限
1.root登录
2.adduser 用户名
3.passwd 用户名
确定密码
4.修改/etc/passwd即可,把用户名的ID和ID组修改成0。

?

?

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,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

如果要将一个用户从某个组中删除,则

gpasswd -d user group

但是这个时候需要保证 group 不是 user 的主组。

附:管理用户(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 组中达到目的。

?

?

用户管理相关命令
useradd??????? 添加用户
adduser??????? 添加用户
userdel??????? ?删除用户
passwd??????? ?为用户设置密码
usermod?????? 修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等

?

用户组管理相关命令
groupadd???? 添加用户组
groupdel????? 删除用户组
groupmod??? 修改用户组信息
groups??????? ?显示用户所属的用户组
newgrp?????? ?切换到相应用用户组


大家看了这么多的命令,可能会很头晕,其实在日常使用和维护中,我们常用的并不是很多,下面我们就把他们重新拆分组合,让学习变的很容易。

?


命令的具体使用
?

1、增加新用户、编辑用户与删除用户

相关命令:useradd,passwd,usermod,userdel

新增用户useradd/adduser

语法:useradd [options] LOGIN
options有很多(可以用useradd –hlep 或者man useradd查看),我们简单介绍几个。


-d 目录????? ?指定用户主目录,(默认是在/home目录下创建和用户名一样的目录)
-g 用户组?? ?指定用户所属的用户组(主组)
-G 用户组?? 指定用户所属的附加组(这些组必需事先已经增加过了或者是系统中已经存在)
-s Shell??????指定用户的登录Shell
-u UID????? ? 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
-c 描述??????? 指定一段注释性描述
-m??????????? ? 使用者目录若不存在则自动建立(默认选项)


我们来看几个实例
实例1,最简单的新增用户
[[email?protected] ~]# useradd opser_1
[[email?protected] ~]# passwd opser_1
Changing password for user opser_1.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.


注:如果设置的密码过于简单的话,系统会给出上面的提示,其实密码已经设定了。这只是针对root来说的,如果是用户自己设置了过于简单的密码,系统是不会接收的。

[[email?protected] ~]# grep opser_1 /etc/passwd
opser_1:x:501:501::/home/opser_1:/bin/bash

用户和组的ID都是501,家目录和使用的SHELL都给出来了。注意,这两个ID可以是不同的。


[[email?protected] ~]# grep opser_1 /etc/shadow
opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::
用户的密码和关于密码的一些限制也很明白(不明白看上面的例子)

[[email?protected] ~]# grep opser_1 /etc/group /etc/gshadow
/etc/group:opser_1:x:501:
/etc/gshadow:opser_1:!::

我们可以看到,在建立用户的同时,也建立了一个和用户同名的用户组

[[email?protected] ~]# ls -a /home/opser_1/
.? ..? .bash_logout? .bash_profile? .bashrc? .gnome2? .mozilla

?

用户家目录下的内容
[[email?protected] ~]# ls -ld /home/opser_1/
drwx——. 4 opser_1 opser_1 4096 Jan? 7 14:41 /home/opser_1/?

实例2,新增用户,并设置UID、组以及附加组并指定一个不可登陆的SHELL
[[email?protected] ~]# groupadd -g 600 opser.org
[[email?protected] ~]# groupadd user_group
[[email?protected] ~]# tail -n 4 /etc/group
yufei:x:500:
opser_1:x:501:
opser.org:x:600:
user_group:x:601:

我们看到,增加的第一个opser.org用户组的时候,我限制了他的GID是600,而第二个没有限制就变成了601了。
[[email?protected] ~]# useradd -g user_group -G opser.org -u 580 -s /sbin/nologin opser_2
[[email?protected] ~]# passwd opser_2
Changing password for user opser_2.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

我对增加的用户opser_2做了一些限制,而且也对他设置了与opser_1一样的密码(其实这个密码设置了也没有什么用,因为我后面限制了他所使用的SHELL是/sbin/nologin,同样是无法登陆系统),我们来对比
opser_1与opser_2这两个用户的相关文件

[[email?protected] ~]# tail -n 2 /etc/passwd
opser_1:x:501:501::/home/opser_1:/bin/bash
opser_2:x:580:601::/home/opser_2:/sbin/nologin
[[email?protected] ~]# tail -n 2 /etc/shadow
opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::
opser_2:$6$VZTnZmFj$hayn6ycBCy9Mnfpwi13pAUOquwOVTmC/NiUuBViMnCp4PhowNBeYuFsYZGe3flfYhH2GVJhimbDF5o9pn6E5h0:14981:0:99999:7:::
[[email?protected] ~]# tail -n 2 /etc/group
opser.org:x:600:opser_2
user_group:x:601:

注:
1、opser_1和opser_2这两个用户虽然密码都是一样,但经过加密后,在shadow中显示的依然是不同的。
2、opser_2这个用户的UID和GID不再是用系统默认的,而是我们指定的。
3、opser_2他的主组的GID是601,也就是user_gruop,同时在opser.org这个组中,也有opser_2这个成员。
4、opser_2这个用户虽然指定了SHELL,但这个SHELL是个特殊的SHELL,是不能登陆系统的。这个(/sbin/nologin)SHELL一般是在增加系统帐户的时候常用。
5、在建立用户的时候会以最后建立的用户UID为参考。如opser_2的UID是580,那么再建立一个用户的时候,就变成581了,而502~579这些就没有用户在使用,那么我想从503开始的话,要怎么来实现?可以通过加上-r参数或者是自己指定。
关于其他的参数,请各位看官自己看帮助来研究。


和用户相关的其他调用文件


通过上面的两个例子,有没有朋友会有这样的疑问,在增加用户的时候,家目录里面的文件是从哪里来的?UID和GID参考了什么?还有shell是根据什么来的?

想知道这些问题,可以用man useradd来查看,你会发现,在这个帮助文件中,会有FILES那一段,除了我们上一节讲的四个文件外,还有

/etc/default/useradd
?????????? Default values for account creation.

/etc/skel/
?????????? Directory containing default files.

/etc/login.defs
?????????? Shadow password suite configuration.


看到了上面的这三个文件的说明,上面的问题是不是已经找到答案了!

想看看是如何规划的,那么就打开文件看看吧。
/etc/default/useradd 通过useradd 添加用户时的规则文件
[[email?protected] ~]# vim /etc/default/useradd
# useradd defaults file

GROUP=100??????????????? ?#主组的GID也是从100开始的
HOME=/home?????????? ????#把用户的家目录建在/home中,这个目录也可以自己设定
INACTIVE=-1??????????????? #是否启用密码过期后是否会失效,-1表示密码永远不会失效。如10,则代表过期10天后才失效。
EXPIRE=???????????????????? ? #帐号终止日期,不设置表示不启用
SHELL=/bin/bash????????? #所用SHELL的类型
SKEL=/etc/skel??????????? ? #用户家目录里面文件的参照位置。也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;
CREATE_MAIL_SPOOL=yes??? #创建用户的邮件池。相当于一个用户的邮箱


/etc/skel/ 增加用户时候,用户家目录下的文件来源。此目录下的文件都是隐藏文件。
[[email?protected] ~]# ls -la /etc/skel/
total 36
drwxr-xr-x.? 4 root root? 4096 Dec 15 22:41 .
drwxr-xr-x. 96 root root 12288 Jan? 7 13:40 ..
-rw-r–r–.? 1 root root??? 18 Jun 22? 2010 .bash_logout
-rw-r–r–.? 1 root root?? 176 Jun 22? 2010 .bash_profile
-rw-r–r–.? 1 root root?? 124 Jun 22? 2010 .bashrc
drwxr-xr-x.? 2 root root? 4096 Jul 14 23:55 .gnome2
drwxr-xr-x.? 4 root root? 4096 Dec 15 22:35 .mozilla

/etc/login.defs 创建用户时的一些规划。比如创建用户时,是否需要家目录,UID和GID的范围,用户的期限等等。
[[email?protected] ~]# vim /etc/login.defs
MAIL_DIR??????? /var/spool/mail #创建用户时,要在目录/var/spool/mail中创建一个用户mail文件

PASS_MAX_DAYS?? 99999??????? #用户的密码不过期最多的天数
PASS_MIN_DAYS?? 0??????????? #密码修改之间最小的天数
PASS_MIN_LEN??? 5??????????? #密码最小长度
PASS_WARN_AGE?? 7??????????? #警告时间

UID_MIN?????????????????? 500??? #UID从500开始
UID_MAX???????????????? 60000??? #最大UID为60000

GID_MIN?????????????????? 500??? #GID从500开始
GID_MAX???????????????? 60000??? #最大GID为60000

CREATE_HOME???? yes??????????? #是否创用户家目录

UMASK?????????? 077??????????? #创建用户家目录时候的默认权限限制

USERGROUPS_ENAB yes??????????? #用userdel删除用户的时候,如果这个主组中没有其他用户,那么也把这个组给删除
ENCRYPT_METHOD SHA512??????? #用户密码的加密方式为SHA512

?

通过上面的讲解,我想你已经深入了解了在linux系统中增加用户的过程了吧,这个过程就是:

在 /etc/passwd 里面建立一行与账号相关的数据,包括建立 UID/GID/家目录等;
在 /etc/shadow 里面将此账号的密码相关参数填入,但是尚未有密码;
在 /etc/group 里面加入一个与账号名称一模一样的组名;
在 /home 底下建立一个与账号同名的目录作为用户家目录,且权限为 700
从/etc/skel/中COPY相应的文件到用户的家目录
最后通过passwd命令,把密码加密后写到/etc/shadow中

?

用户密码设置

?

上面我们着重讲了用户创建,没有太多的讲用户的密码设置。
其实在Linux系统中,命令的作用就是改配置文件,而这个passwd命令就是把密码加密后写入/etc/shadow(二栏)中,我们也知道这个文件中的栏位有9栏,那么其它栏要如何通过passwd这个命令来改呢?
看帮助吧

passwd –help
格式:passwd [OPTION...] <accountName>
-l? :是Lock的意思,会将 /etc/shadow 第二栏最前面加上”!”使密码失效
-u :与-l相对,是Unlock的意思
-S :列出密码相关参数,即shadow文件的大部分信息
-n?:后面接天数,shadow的第4字段,不可修改密码天数
-x :后面接天数,shadow的第5字段,多长时间内必须要修改密码
-w :后面接天数,shadow的第6字段,密码过期前的警告天数
-i? :后面接日期,shadow 的第7字段,密码失效日期


这些大家自己来实验吧,我除了密码用passwd设置外,其它的相关限制,我更习惯直接在/etc/shadow中修改。
还有一个和passwd相似的命令,那就是chage大家也是自己研究吧!


在这里顺便也说一个技巧,就是我们常常会遇到这样一种情况:比如我下载了某个应用,但这个应该是人家集成好的,这时候别人会给你一个默认的用户和密码,第一次登陆的时候,只有重新设置密码后才登陆。其实这个功能的实现,就是改我们shadow中的第三栏,把这个数值改成0就OK了!有兴趣的朋友可以试试。

?

编辑用户usermod

新增用户已经搞定,但要是对用户的相关信息进行一下修改,除了通过改文件外,还有没有其他的方法了?当然有啊,命令啊,命令的最终目的也是改配置文件。那么下面就来看看如何通过usermod来修改用户的相关0信息。
[[email?protected] ~]# usermod -h
Usage: usermod [options] LOGIN

-c :后面接账号的说明,即/etc/passwd第五栏的说明栏,可以加入一些账号的说明
-d :后面接账号的家目录,即修改/etc/passwd的第六栏
-e :后面接日期,格式是YYYY-MM-DD也就是在/etc/shadow内的第八栏
-f? :后面接天数,修改shadow的第七栏
-g :后面接主群组,修改/etc/passwd的第四个字段,即是GID的字段
-G:后面接附加群组,修改这个使用者能够支持的群组,修改的是/etc/group
-a :与 -G 合用,可增加附加群组的支持而非设定
-l? :后面接账号名称。修改账号名称,/etc/passwd的第一栏
-s :后面接Shell的文件,例如/bin/bash或/bin/csh等等
-u :后面接 UID 数字,修改用户的UID /etc/passwd第三栏
-L :暂时将用户的密码冻结,让他无法登入。其实就是在/etc/shadow的密码栏前面加上了“!”
-U:将/etc/shadow 密码栏的“!”去掉


其实,这个usermod和useradd的用法非常相似,只是增加了用户锁定与解锁。
我们看几个例子


修改用户的说明信息
[[email?protected] ~]# grep opser_1 /etc/passwd
opser_1:x:501:501::/home/opser_1:/bin/bash
[[email?protected] ~]# usermod -c “opser.org exmple” opser_1
[[email?protected] ~]# grep opser_1 /etc/passwd
opser_1:x:501:501:opser.org exmple:/home/opser_1:/bin/bash


设置用户的过期日期
[[email?protected] ~]# grep opser_1 /etc/shadow
opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::
[[email?protected] ~]# usermod -e “2011-02-01″ opser_1
[[email?protected] ~]# grep opser_1 /etc/shadow
opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7::15006:
我们就简单的给大家介绍这两个参数,其他的自己研究吧!

?


删除用户userdel


这个命令很简单,
[[email?protected] ~]# userdel -h
Usage: userdel [options] LOGIN
-f :强制删除,包括用户的一切相关内容,这个参数是危险的参数,不建议大家使用。详细说明看MAN
-r :删除用户的家目录和用户的邮件池
其实这个-r参数就是删除用户的相关配置文件中的信息
用户账号/密码相关参数:/etc/passwd,/etc/shadow
用户相关参数:/etc/group,/etc/gshadow
用户个人文件数据: /home/username,/var/spool/mail/username

不给大家演示了,自己动手实践吧!

?

注:
1、userdel -r 这个命令使用的时候,一定要确认这个用户的所有数据真的不再使用了。
2、建议在使用这个命令之前,查找出这个帐户的所有数据(find / -user username),确认后再进行操作。

?


2、用户组管理

这也和上面的用户管理差不多,只是修改的文件(/etc/group,/etc/gshadow)不同


增加用户组groupadd

[[email?protected] ~]# groupadd -h
Usage: groupadd [options] GROUP
-g gid :设置用户组,并指定相应的GID
-r :这个参数和我们的useradd -r 是一样的道理
这个命令的使用,我们前面已经涉及到了,也很简单。
[[email?protected] ~]# tail -n 4 /etc/group /etc/gshadow
==> /etc/group <==
yufei:x:500:
opser_1:x:501:
opser.org:x:600:
user_group:x:601:

==> /etc/gshadow <==
yufei:!!::
opser_1:!::
opser.org:!::
user_group:!::

[[email?protected] ~]# groupadd new_group_1
[[email?protected] ~]# groupadd -r new_group_2
[[email?protected] ~]# tail -n 4 /etc/group /etc/gshadow
==> /etc/group <==
opser.org:x:600:
user_group:x:601:
new_group_1:x:602:
new_group_2:x:489:

==> /etc/gshadow <==
opser.org:!::
user_group:!::
new_group_1:!::
new_group_2:!::

?

编辑用户组groupmod

与usermod也是类似的
[[email?protected] ~]# groupmod -h
Usage: groupmod [options] GROUP
-g :修改既有的 GID 数字;
-n :修改既有的组名


看个例子
将刚刚上个指令建立的new_group_2名称改为mygroup,GID为666
[[email?protected] ~]# groupmod -g 666 -n mygroup new_group_2
[[email?protected] ~]# tail -n 4 /etc/group /etc/gshadow
==> /etc/group <==
opser.org:x:600:
user_group:x:601:
new_group_1:x:602:
mygroup:x:666:

==> /etc/gshadow <==
opser.org:!::
user_group:!::
new_group_1:!::
mygroup:!::

注:这个GID建议还是不要随意更改,防止造成系统的GID混乱。

?

删除用户组groupdel

这个命令更简单,没有任何的参数,后面直接跟上想删除的用户组名
注:不能用groupdel -h 或 groupdel –help来查看帮助,只能用man groupdel

[[email?protected] ~]# tail -n 2 /etc/passwd /etc/shadow
==> /etc/passwd <==
yufei:x:500:500:yufei:/home/yufei:/bin/bash
opser_1:x:501:501:opser.org exmple:/home/opser_1:/bin/bash

==> /etc/shadow <==
yufei:$6$VdpG9FMuvcR49tD2$zhfYkufmtPd5jjzYG/lSvErSWPusnrqv52ikQxsRs0sYCBwLOakw8v/cz3nksC6p7l8MhePXC7FCXDhv1YbTM/:14958:0:99999:7:::
opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7::15006:
[[email?protected] ~]# tail -n 5 /etc/group /etc/gshadow
==> /etc/group <==
opser_1:x:501:
opser.org:x:600:
user_group:x:601:
new_group_1:x:602:
mygroup:x:666:

==> /etc/gshadow <==
opser_1:!::
opser.org:!::
user_group:!::
new_group_1:!::
mygroup:!::

?

我们把前面建立和几个用户组给删除
[[email?protected] ~]# groupdel mygroup
[[email?protected] ~]# groupdel new_group_1
[[email?protected] ~]# groupdel opser.org
[[email?protected] ~]# groupdel opser_1
groupdel: cannot remove the primary group of user ‘opser_1′
为什么删除不了opser_1用户组呢?因为这个组里面还有用户。所以在删除用户组前,一定要查看这个组中还有没有成员了。

[[email?protected] ~]# tail -n 3 /etc/group /etc/gshadow
==> /etc/group <==
yufei:x:500:
opser_1:x:501:
user_group:x:601:

==> /etc/gshadow <==
yufei:!!::
opser_1:!::
user_group:!::

?

用户组的管理员设置gpasswd

[[email?protected] ~]# gpasswd
Usage: gpasswd [option] GROUP
?? :没有参数,设置用户组密码
-a : 增加用户到用户组中
-d :从用户组中删除用户
-r :删除用户组的密码
-M :设置用户组成员(多成员)
-A :设置用户组管理员(列表)


我们来看个例子
先建立两个用户,并为其设置密码
[[email?protected] ~]# useradd test_user1
[[email?protected] ~]# passwd test_user1
Changing password for user test_user1.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[[email?protected] ~]# useradd test_user2
[[email?protected] ~]# passwd test_user2
Changing password for user test_user2.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

?

查看这两个用户的相关信息
[[email?protected] ~]# tail -n 2 /etc/passwd /etc/shadow
==> /etc/passwd <==
test_user1:x:502:502::/home/test_user1:/bin/bash
test_user2:x:503:503::/home/test_user2:/bin/bash

==> /etc/shadow <==
test_user1:$6$EL8UBf7P$gZL3N9GJDL6JhBJnwTZYyiOO8d2zu7Ti9B5eDTP7Hb17AT6Xe4/BuiNVBszO/UoycYIBZZygIH3oA3aKDOSA11:14982:0:99999:7:::
test_user2:$6$tTs0BG90$7LLaUwF9pP/g0h4/IPAwH1x4JE.rSXjYP/wbUq2kxPsXM4/7AaniQdi6G85QIfH6.cspo7OTutqPZblbRUUVT/:14982:0:99999:7:::


查看系统中最后加入的用户组(说法有点牵强)
[[email?protected] ~]# tail -n 3 /etc/group /etc/gshadow
==> /etc/group <==
user_group:x:601:
test_user1:x:502:
test_user2:x:503:

==> /etc/gshadow <==
user_group:!::
test_user1:!::
test_user2:!::


把test_user1、test_user2加到user_group组中
[[email?protected] ~]# gpasswd -a test_user1 user_group
Adding user test_user1 to group user_group
[[email?protected] ~]# gpasswd -a test_user2 user_group
Adding user test_user2 to group user_group
[[email?protected] ~]# tail -n 3 /etc/group /etc/gshadow

==> /etc/group <==
user_group:x:601:test_user1,test_user2
test_user1:x:502:
test_user2:x:503:
==> /etc/gshadow <==
user_group:!::test_user1,test_user2
test_user1:!::
test_user2:!::


设置test_user1为user_group组的管理员
[[email?protected] ~]# gpasswd -A test_user1 user_group
[[email?protected] ~]# tail -n 3? /etc/gshadow
user_group:!:test_user1:test_user1,test_user2
test_user1:!::
test_user2:!::
注:这个用户组的管理员的作用就是,可以像root用户一样来管理用户组中其他成员。


设置user_group的密码
[[email?protected] ~]# gpasswd user_group
Changing the password for group user_group
New Password:
Re-enter new password:
[[email?protected] ~]# tail -n 3? /etc/gshadow
user_group:$6$2UZWz/O32$vViBQd.Bu8y.RfUbH/9QFYxqN.t31u7r2PztjfysgnKsJ4SUFBvtc1qg7N89bqBRpqUG1fQNno5ij0ja4B/3M1:test_user1:test_user1,test_user2
test_user1:!::
test_user2:!::

?

切换用户组newgrp

该命令将当前用户切换到相应的用户组
注:前提条件是这个用户组要是该用户的主组或附加组。

?

?

如何在linux下使用userdel和 groupdel删除用户和用户组


userdel很简单,只有一个参数可选 -r ;如果加参数-r ,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除;比如我们现在有个用户murray,其家目录位于/var目录中,现在我们来删除这个用户

userdel murray 注:删除用户murray,但不删除其家目录及文件;
userdel -r murray 注:删除用户murray,其家目录及文件一并删除;

警告: 请不要轻易用-r参数;他会删除用户的同时删除用户所有的文件和目录,切记;如果用户目录下有重要的文件,在删除前请备份;
其实也有最简单的办法,但这种办法有点不安全,也就是直接在/etc/passwd中删除您想要删除用户的记录;但最好不要这样做,/etc/passwd 是极为重要的文件,可能您一不小心会操作失误;

groupdel 是用来删除用户组的;
语法格式:groupdel 用户组
groupdel admin

?

?


debian添加删除用户

?


增加普通用户命令:?
adduser abc

passwd abc

exit

用abc登录

/etc/passwd中保存了用户信息

LINUX创建用户的命令?
useradd -g test -d /home/test1 -s /etc/bash -m test1?
注解:-g 所属组 -d 家目录 -s 所用的SHELL?
删除用户命令?
userdel -r test1?
创建密码命令?
passwd

创建新用户

useradd命令(也能够使用adduser)用来创建新的用户帐号,其命令格式如下:?
表4—19 useradd命令常用选项
常用现象
意 义
-d
配置新用户的登陆目录
-e
配置新用户的停止日期,日期格式为MM/DD/YY
-f
帐户过期几日后永久停权。当值为0时帐号则立即被停权。而当值为-1时则关闭此功能。预设值为-1
-g
使新用户加入群组
-G
使新用户加入一个新组。每个群组使用逗号“,”隔开,不能够夹杂空白字?
-s
指定新用户的登陆Shell
-u
设定新用户的ID值

成功创建一个新用户以后,在/etc/passwd文档中就会增加一行该用户的信息,其格式如下:
〔用户名〕:〔密码〕:〔UID〕:〔GID〕:〔身份描述〕:〔主目录〕:〔登陆Shell〕
其中个字段被冒号“:”分成7各部分。
由于小于500的UID和GID一般都是系统自己保留,不用做普通用户和组的标志,所以新增加的用户和组一般都是UID和GID大于500的。
例如使用如下命令:

[[email?protected]][email?protected][/email]
root〕# useradd user1
将会创建一个名为userl的用户,关于用户管理命令已介绍过,在此也不做更多的介绍了。

4.6.2 配置和修改用户口令passwd

passwd命令用来配置和修改用户命令,只有终极用户和用户自己能够修改密码,其他的普通用户没有修改其他用户密码的权利。其命令如下:
# passwd〔用户名〕
为避免输入密码是被人注意到有多少位,Linux并不采用类似Windows的密码回显〔显示为*号〕,所以,输入的这些字符是看不见的。例如,为新建的userl用户配置密码可使用如下命令:

[[email?protected]][email?protected][/email]
root〕# passwd user1
根据系统的提示信息输入两次密码,系统会显示:
passwd ::all authentication tokens updated successfully
表示修改密码成功了。新建用户的工作只有在该用户配置了口令后才算完成,否则无法使用该用户名登陆。

4.6.3 修改用户信息usermod

usermod命令用来修改用户信息,其命令格式如下:
# usermod〔选项〕〔用户名〕

表4-20 usermod命令常用选项
常用选项
意 义
-d
更新使用者新的登陆目录
-e
配置新用户的停止日期,日期格式为MM/DD/YY
-f
帐户过期几日后永久停权。当值为0时帐号则立即被停权。而当值为-1时则关闭此功能。预设值为-1
-g
更新使用者新用户加入群组
-G
定义使用者为一堆groups的成员。每个群组使用“??”隔开,不能够夹杂空白字
-l
变更用户登陆时的名称,同时使用者目录名也会跟着更动成新的名称
-s
指定新用户Shell
-u
用户ID值,必须为唯一的ID值。用户目录树下所用的文档目录其userID会自动变更,放在拥护目录外的文档则要自行手动更动
例如,下面的命令修改用户信息:

[[email?protected]][email?protected][/email]
root〕# usermod –d/home/user2 –s/bin/bash user2
将用户名user2的主目录路径配置在/home/user1,登陆的Shell配置为/usr/bin/gcc。
一般情况下usermod命令会参照命令指令的部分修改用户帐号信息。但usermod不允许改变正在线上的使用者帐号名称,因此,当用usermod来改变用户帐号信息时,必须确认这名没在电脑上执行任何程式。?
4.6.4  新建组群groupadd

groupadd命令用来建立新的用户组,其命令格式如下:
# groupadd〔选项〕〔用户名称〕
常用选项有:
-g:GID值。除非使用-o参数不然该值必须是唯一,不可相同,数值不可为负。
GID值预设为最小不得小于500而逐次增加。0—499传统上是保留系统帐号使用。
-f:新增的一个已存在的群组帐号,系统会出现错误讯息然后结束groupadd.
假如是这样的情况,不会新增这个群组(假如是这个情况,系统不会在新增一次)。也可同时加上-g选项,当您加上一个GID时,此时GID就不用是唯一值, 可不加-o参数,建好的群组会显示建立后的结果(adding a group as neither –g or –o options were specified),这是Red Hat Linux额外增设的选项。?
4.6.5 删除用户userdel

userdel命令用来删除已存在的用户及相关的文档,其命令格式如下:
# userdel 〔选项〕用户名
userdel命令的常用选项:
-r将用户目录下的文档一并删除。在其他位置上的文档也将一一找出并删除。
Userdel不允许移除正在线上的用户帐号,因此,假如想删除这类用户帐号,必须先杀掉用户在系统上运行的程式才能进行帐号删除。

4.6.6 删除群组groupdel

groupdel命令用来删除已存在的用户组,其命令格式如下:
# groupdel组名
同userdel类似,假如有任何一个组内的用户在上线,就不能移除该用户组,因此,假如组内有用户在线的话,最好先移出该用户,然后在删除该用户。

4.6.7 用户间转换su

su 命令常用于不同用户间转换。其命令格式如下:?
# su〔用户名〕
su命令的常见用法是变成跟用户或终极用户,假如发出不带用户名的su命令,则系统提示输入根口令,输入之后则可换为根用户。假如登陆为根用户,则能够用su命令成为系统上任何用户而无需口令。
例如,假如登陆为user1,要转换为user2,只要用如下命令:
# su user2
然后系统提示输入user2口令,输入正确的口令之后就能够转换到user2。完成之后就能够用exit命令返回到user1。

4.6.8 查看当前在线用户who

who命令主要用于查看当前在线上的用户情况。这个命令很有用。假如用户想和其他用户建立即使通讯,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。
又如,系统管理员希望监控每个登陆的用户此时此刻的所作所为,也要使用who命令。Who命令的常用命令格式和常用选项如下:
# who〔选项〕
命令who常用命令选项如表4-21所示。
表 4-21 命令who常用命令选项
常用选项
意 义
-a
显示任何用户的任何信息
-m
显示运行该程式的用户名,和“who am I”的作用相同
-q
只显示用户的登陆帐号和登陆用户的数量,该选项优先级高于其他任何选项
-u
在登陆用户后面显示该用户最后一次对系统进行操作距今的时间
-H
显示列标题

任何的选项是可选的,例如,使用命令:

[[email?protected]][email?protected][/email]
root〕# who-aH
其中主标题的含义如下表4—22所示。
表4-22 who输出常用标题含义
标题
含义
USER
用户登陆
LINE
用户登陆使用终端
TIME
用户登陆时间
LDIE
用户空闲时间,即至进行操作的时间
PID
用户登陆shell的进程ID

也能够单独使用who命令,这时将显示登陆用户另、使用终端设备连同登陆到系统的时间三项内容

?

?

linux (debian)查看和添加用户或用户组

1、Linux里查看所有用户
linux里,并没有像windows的net user,net localgroup这些方便的命令来管理用户.
?
Xwindows界面的就不说了.
?
(1)在终端里.其实只需要查看 /etc/passwd文件就行了.
(2)看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户.
?
或者用cat /etc/passwd
?
2、用户管理命令
?
useradd 注:添加用户
添加用户以后,会相应的在 /home目录下创建关于该用户的一个文件夹(useradd tuping)
?
?
??????? 给linux增加一个和root相同权限的用户
#useradd -u 0 -o -g 0 username使用 -o参数可以允许建立相同id的用户

增加普通用户命令:?
adduser abc

passwd abc

exit

用abc登录

/etc/passwd中保存了用户信息

LINUX创建用户的命令?
useradd -g test -d /home/test1 -s /etc/bash -m test1?
注解:-g 所属组 -d 家目录 -s 所用的SHELL?
删除用户命令?
userdel -r test1?
创建密码命令?
passwd

1.添加用户

  添加用户的命令为useradd,假设我们添加一个名字为testuser的用户,设置其登录Shell,设置它的其他属性:

  useradd ?Cs /bin/bash ?CG thiz ?Cd /home/testuser testuser

  passwd testuser

  关于useradd的详细帮助可以在man useradd中得到。这里-s参数用来指定用户的启动Shell,如果不希望给用户Shell的许可权,就在/etc/Shells中添加 /dev/null和/usr/bin/passwd,然后指定Shell为/dev/null或者/usr/bin/passwd。第一种情况是根本不 允许用户登录(例如该用户为邮件账号,只允许收发邮件);第二种是只允许登录进来修改密码。-G用来指定用户在属于添加的testuser用户组的同时, 也属于thiz用户组。-d用来指定用户的主目录位置, 这里指定为默认位置/home/testuser(当然也可以不指定,默认创建/home/testuser,并将用户主目录指向该目录)。添加用户以后 就需要使用 passwd 命令为其设置密码。

  对于已经添加的用户,需要修改其属性,可以使用命令usermod,也可以在man usermod中得到更多信息。

  使用Webmin,进入系统信息的用户管理模块。

2.删除用户

  删除用户可以通过命令userdel来完成,这依赖于系统所安装的软件。

  # userdel testuser

  不过需要注意的是删除用户并不会删除为该用户创建的主目录,这样是因为该目录中还有可能保存着有用的文件,如果确信该用户的主目录没有需要的文件了,需要手工删除其主目录,例如:

  # rm -r? /home/testuser

  

  3.修改密码

  修改密码可以使用命令方式:

  # passwd username

  即可对用户密码进行修改。当然在Webmin中提供了修改用户密码的功能,只要选择系统中Change Passwords模块,就会进入修改密码模块。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读