Linux用户与用户组管理相关命令与用户相关的配置文件:
/etc/passwd: 用户的配置文件, 保存用户账户的基本信息;
/etc/shadow : 用户影子口令文件;
/etc/group和/etc/gshadow : 用户组账号文件.
一,passwd用户账号文件
1.“/etc/passwd”文件是UNIX安全的关键文件之一。该文件用于用户登录时效验用户的登录名、加密的口令数据项、用户ID(UID)、默认的用户组ID(GID)、用户信息、用户主目录及登录后使用的shell。
2.“/etc/passwd”文件的每一行保存一个用户的资料,而用户数据按域以冒号“ :”分隔。
/etc/passwd文件中域的含义
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
二,shadow用户影子文件
与Linux /etc/passwd文件不同,Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件,系统管理员应该弄明白Linux /etc/shadow文件中每个字符段的相应的意义,清楚管理时的具体意义。
Linux /etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开。这些字段是:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志。
1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
2)“口令”字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。
3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。
5)“最大时间间隔”指的是口令保持有效的最大天数。
6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。
8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
/etc/shadow文件中域的含义
域
含义
username
用户登录名
password
加密的用户口令
lastchg
表示从1970年1月1日起到上次修改口令所经过的天数
min
表示两次修改口令之间至少经过的天数
max
表示口令还会有效的最大天数,如果是99999则表示永不过期
warn
表示口令失效前多少天内系统向用户发出警告
inactive
表示禁止用户登录前用户名还有效的天数
expire
表示用户禁止登录的时间
flag
保留域,暂未使用
shadow 是 passwd 的影子文件。
在linux中,口令文件在/etc/passwd中,早期的这个文件直接存放加密后的密码,前两位是"盐"值,是一个随机数,后面跟的是加密的密码。为了安全,现在的linux都提供了 /etc/shadow这个影子文件,密码放在这个文件里面,并且是只有root可读的。
/etc/passwd文件的每个条目有7个域,分别是名字:密码:用户id:组id:用户信息:主目录:shell
例如:ynguo:x:509:510::/home/ynguo:/bin/bash
在利用了shadow文件的情况下,密码用一个x表示,普通用户看不到任何密码信息。影子口令文件保存加密的口令;/etc/passwd文件中的密码全部变成x。Shadow只能是root可读,从而保证了安全。
/etc/shadow文件每一行的格式如下:用户名:加密口令:上一次修改的时间(从1970年1月1日起的天数):口令在两次修改间的最小天数:口令修改之前向用户发出警告的天数:口令终止后账号被禁用的天数:从1970年1月1日起账号被禁用的天数:保留域。
三,group和gshadow用户组账号文件
1,group文件
/ect/group 文件是用户组配置文件,即用户组的所有信息都存放在此文件中。
/etc/group 文件的内容可以通过 Vim 看到:
[root@localhost ~]#vim /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
…省略部分输出…
lamp:x:502:
可以看到,此文件中每一行各代表一个用户组。在前面章节中,我们曾创建 lamp 用户,系统默认生成一个 lamp 用户组,在此可以看到,此用户组的 GID 为 502,目前它仅作为 lamp 用户的初始组。
各用户组中,还是以 ":" 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为:
组名:密码:GID:该用户组中的用户列表。
/etc/group的域及其含义
域
含义
group-name
用户组名
group-password
加密后的用户组名
group-id
用户组ID(GID)
group-members
以逗号分隔的成员用户清单
2,gshadow文件
我们借助 Vim 命令查看一下此文件中的内容:
[root@localhost ~]#vim /etc/gshadow
root:::
bin:::bin, daemon
daemon:::bin, daemon
...省略部分输出...
lamp:!::
文件中,每行代表一个组用户的密码信息,各行信息用 ":" 作为分隔符分为 4 个字段,每个字段的含义如下:
组名:加密密码:组管理员:组附加用户列表
/etc/gshadow的域及其含义
含义
group-name
用户组名
group-password
加密后的用户口令
group-members
以逗号分隔的成员用户清单
四,使用命令方式行方式管理用户和组
1,使用user add命令添加用户
useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
选项含义
-u UID
手工指定用户的 UID,注意 UID 的范围(不要小于 500)。
-d 主目录
手工指定用户的主目录。主目录必须写绝对路径,而且如果需要手工指定主目录,则一定要注意权限;
-c 用户说明
手工指定/etc/passwd文件中各用户信息中第 5 个字段的描述性内容,可随意配置;
-g 组名
手工指定用户的初始组。一般以和用户名相同的组作为用户的初始组,在创建用户时会默认建立初始组。一旦手动指定,则系统将不会在创建此默认的初始组目录。
-G 组名
指定用户的附加组。我们把用户加入其他组,一般都使用附加组;
-s shell
手工指定用户的登录 Shell,默认是 /bin/bash;
-e 曰期
指定用户的失效曰期,格式为 "YYYY-MM-DD"。也就是 /etc/shadow 文件的第八个字段;
-o
允许创建的用户的 UID 相同。例如,执行 "useradd -u 0 -o usertest" 命令建立用户 usertest,它的 UID 和 root 用户的 UID 相同,都是 0;
-m
建立用户时强制建立用户的家目录。在建立系统用户时,该选项是默认的;
-r
创建系统用户,也就是 UID 在 1~499 之间,供系统程序使用的用户。由于系统用户主要用于运行系统所需服务的权限配置,因此系统用户的创建默认不会创建主目录。
2,使用usermod命令修改用户信息
usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的crontab档。也需手动更改使用者的at工作档。采用NIS server须在server上更动相关的NIS设定。
usermod命令选项:
-c 用户说明:修改用户的说明信息,即修改 /etc/passwd 文件目标用户信息的第 5 个字段;
-d 主目录:修改用户的主目录,即修改 /etc/passwd 文件中目标用户信息的第 6 个字段,需要注意的是,主目录必须写绝对路径;
-e 日期:修改用户的失效曰期,格式为 "YYYY-MM-DD",即修改 /etc/shadow 文件目标用户密码信息的第 8 个字段;
-g 组名:修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID);
-u UID:修改用户的UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID);
-G 组名:修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件;
-l 用户名:修改用户名称;
-L:临时锁定用户(Lock);
-U:解锁用户(Unlock),和 -L 对应;
-s shell:修改用户的登录 Shell,默认是 /bin/bash。
3,使用userdel命令删除用户
userdel命令用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。
userdel命令选项
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。
4,使用groupadd命令创建用户组
groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
groupadd命令选项
-g:指定新建工作组的id;
-r:创建系统工作组,系统工作组的组ID小于500;
-K:覆盖配置文件“/ect/login.defs”;
-o:允许添加组ID号不唯一的工作组。
5,使用groupmod命令修改用户组属性
groupmod命令更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。
groupmod命令选项
-g:设置欲使用的群组识别码;
-o:重复使用群组识别码;
-n:设置欲使用的群组名称
6,使用groupdel命令删除用户组
groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
标签:文件,passwd,用户组,用户,口令,etc,Linux
来源: https://www.cnblogs.com/XulinTvT/p/14085721.html