在管理linux中,账户的管理是重要的一个环节,它是权限控制的重要的组成部分。也是管理员管理整个linux中十分基础的一部分。
一、用户和组相关的配置文件
/etc/passwd: 用户的帐号信息
/etc/shadow: 用户密码和相关的帐户设定
/etc/group: 组的帐号信息
/etc/gshaow: 组的密码信息
1、/etc/passwd
在passwd文件中,一行代表一个账户的信息,有多少行,就代表有多少个用户。如下,查看前3个用户,可以看到相关的账户配置信息。
1 2 3 4 | [root@bogon /] # head -3 /etc/passwd root:x:0:0:root: /root : /bin/bash bin:x:1:1:bin: /bin : /sbin/nologin daemon:x:2:2:daemon: /sbin : /sbin/nologin |
通过man 5 passwd中,可以看到/etc/passwd的详细解析。
每一个用户的格式为
1 | account:password:UID:GID:GECOS:directory:shell |
(1)account 账户名称,名称不应该出现大写字母。
(2)password 账户的密码表示,在此处显示为x,密码的详细信息会保存在/etc/shadow文件中,详细可浏览下文。
(3)UID 标示账户的ID。
需要注意的是:
0为系统管理员。
1-500为系统用户,可以分配改数字段给系统进程使用。
500-65535为自定义的用户,如果要建立一个普通得账号,使用该数字段。
(4)GID 该账户所属的组ID。组相关的信息保存在/etc/group,详细可浏览下文。
(5)GECOS,General Electric Comprehensive Operating System。其实就是用户的注释信息。
(6)directory 用户的家目录。如root账号,家目录在/root。如果新建一个用户,用户默认家目录在/home/yourAccount。
(7)shell 用户的默认shell,如果为空,默认使用/bin/sh。
2、/etc/shadow
如上文提到,用户的密码详细信息,将保存在/etc/shadow中。同样,每一行代表一个用户的密码详细信息。如下,查看前3个账户密码,可以看到相关的账户信息。
1 2 3 4 | [root@bogon ~] # head -3 /etc/shadow root:b3Vg6K9PN86O6:16673:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7::: |
(1)账号名称。与/etc/passwd下的用户名对应。
(2)密码。经过加密后的密码。可以看到root账户密码加密后是一串复杂的编码。bin该位为*,代表该用户是不允许登陆的。如果在账户密码的第一位加上*,那么,该账户就不能登陆到系统了。
(3)上次更改密码的日期。记录的是从1970 年 1 月 1 日到更改密码时候过经过的天数。
(4)密码不可被更改的天数。设置为0,则随时可以改。
(5)需要重新更改密码的天数。
(6)到达需要重新更改密码的期限前得警告天数。
(7)账户失效的期限。过了失效期限还没有重新设置密码,则账户会被停用
(8)账户取消日期。这个字段跟第三个字段表示的情况一样,都是从1970 年 1 月 1 日开始计算。
(9)被保留下来的位置。
3、/etc/group
用户组的信息将会保存在改文件中,组对应的用户列表,也会保存在里面。同样,每一行代表一个组的详细信息。如下,查看前3个组,可以看到相关的账户信息。
1 2 3 4 | [root@bogon ~] # head -3 /etc/group root:x:0: bin:x:1:bin,daemon daemon:x:2:bin,daemon |
每一个组的格式为
1 | group_name: passwd :GID:user_list |
(1)组名。
(2)组密码。一般不会设置。同样会表示为x,详细信息在/etc/gshaow保存。
(3)组ID。
(4)该组存在的账户。
二、账户管理相关命令
1、useradd
新增一个账户
格式:useradd 选项 账户名称
常用选项:
-u UID:指定新建账户的ID。
-g GID:指定账户所属的基本组。
-G GID: 指定账户所属的附加组。
-c ‘COMMIT’:给新建账户添加注释。
如:
1 | # useradd -u 1100 test |
2、userdel
删除指定的账户
格式:userdel 选项 账户名称
-r 连同改账户的家目录一并删除
如:
1 | #userdel -r test |
3、groupadd
添加一个组
格式:groupadd 选项 组名
-g GID:指定新建组的组ID。
-r 创建系统组
如:
1 | # groupadd -g 1101 testgrp |
4、groupdel
删除指定的组
格式:groupdel 组名
如:
1 | # groupdel testgrp |
5、passwd
给指定的账户设定密码
格式:passwd USERNAME
--stdin :通过标准的输入给指定的账户设定密码
如:
1 2 | # passwd test # echo ’testpwd’ | passwd --stdin test |
6、usermod
修改账户设定的信息
格式:usermod 选项 USERNAME
-u UID:修改账户ID
-g GID:修改账户的组ID
-G GID:修改账户的附加组
-c :修改账户的备注信息
-d :修改账户的家目录路径
-s :修改账户的SHELL
-l :修改账户的名称
-L :lock(锁定)账户
-U :unlock(解锁)账户
如:
1 2 | # usermod -u 1101 test # usermod -l testing test |
7、groupmod
修改组信息
格式:groupmod 选项 GROUPNAME
-g GID:修改指定的组ID
-n :设定新的组名
如:
1 2 | # groupmod -g 502 test # groupmod -n testing test |
8、chage
修改用户的属性
格式:chage 选项 USERNAME
-m :最短使用时间
-M : 最长使用时间
-I :非活动期限
如:
1 | #chage -m 2 testing |
9、id
查看账户的信息
格式:id 选项 USERNAME
-u UID:查看账户ID
-g GID:查看组ID
如:
1 | # id -u testing |
10、su
切换用户
格式 su 选项 USERNAME
如:
1 | # su -root |
综合练习:
1、创建用户mandriva, 其ID为2200, 基本组为distro,组ID为3300, 附加组为peguin;
1 2 3 | [root@bogon /] # groupadd -g 3300 distro [root@bogon /] # groupadd peguin [root@bogon /] # useradd -u 2200 -g distro -G peguin mandriva |
2、创建用户gentoo,其全名为“Gentoo”,默认shell为/bin/tcsh;
1 | [root@bogon /] # useradd -c ‘Gentoo‘ -s /bin/tcsh gentoo |
3、修改mandriva的UID为4400, 基本组为linux, 附加组为distro和gentoo;
1 | [root@bogon /] # usermod -u 4400 -g linux -a -G distro,gentoo mandriva |
4、给gentoo添加密码,并设定其密码最短使用期限为2天,最长为60天,警告为3天,非活动期限为7天;
1 2 | [root@bogon /] # echo "gentoopwd" | passwd --stdin gentoo [root@bogon /] # chage -m 2 -M 60 -I 7 gentoo |
gentoo 账户在/etc/shadow文件中记录的信息变成如下:
gentoo:$6$IdeEfsVq$8Ry23Fj..hKe60swCdYHYpFW9pg6rXIry1n9xnjw.4rUYAC3Pv6A2JueZblguCRJR13R2jC0HD6Q39uMzp.Gu/:16680:2:60:7:7::
本文出自 “凌风2012” 博客,请务必保留此出处http://linshengwei.blog.51cto.com/3523910/1696236
原文地址:http://linshengwei.blog.51cto.com/3523910/1696236