使用对象:Linux初学者
Linux系统中用户和组管理是很重要的一部分内容。许多初学者在学习或刚接触到用户管理的时候会觉得很难理解,命令多、选项多、配置文件也多,用命令可以修改,用配置文件也可以修改,三两下就被绕进去了。其实完全没必要晕,只要了解了用户管理的方式,就会很容易理解命令选项与配置文件之间的关系。下面我们就来了解下用户管理命令与配置文件。
目录
1.5、配置文件/etc/defaults/useradd. 4
一、新建用户
1.1useradd命令
新建用户其实就是增加用户,我们使用useradd命令(user是用户的意思,add是增加的意思,在一起就是useradd)。命令格式为:
useradd USERNAME
输入该命令,执行之后,新的用户就被添加到系统中了。
1.2 passwd文件
Linux系统中用户信息是保存在/etc/passwd文件里面的,用户密码保存在/etc/shadow文件中。所以,刚才的命令执行完之后,会在这两个文件的文件末尾增加关于testuser1的信息,每个文件增加一条信息。
首先,我们来看/etc/passwd文件。使用cat命令打开该文件,在文件的最下方可以看到下图
从图中我们可以看到,testuser1的信息被:(冒号)分成7个部分,我们来简要介绍一下这7个部分的含义:
第一个字段testuser1:表示用户名称
第二个字段x :表示用户密码。不过Centos6和7中密码都被保存在/etc/shadow文件中了,所以这里就不再保存密码了,但是为了和之前旧版本的linux系统兼容,这个字段又不能取消或为空,所以就使用x来代替。
第三个字段1018 :表示系统给用户分配的UID(user id)号码
第四个字段1018 :表示系统给用户分配的GID(group id)号码
第五个字段 :表示用户的描述信息,因为我们创建用户的时候没有添加这个信息,所以这里显示为空白
第六个字段/home/testuser1 :表示用户的家目录位置是/home/testuser1
第七个字段/bin/bash :表示该用户使用的shell是bash
1.3 shadow文件
我们再来看/etc/shadow文件中关于testuser1的信息
同样,可以看到testuser1的信息被:(冒号)分割成9个部分,我们来简单介绍下这9个部分的含义:
第一个字段testuser1 :表示用户的名称
第二个字段!! :表示用户的密码。因为我们刚才没有给testuser1用户设置密码,所以这里用!!代表未给用户设置密码。我们给用户设置的密码都是在这里以密文的方式在这里显示的。
第三个字段17097 : 表示用户创建的时间。从1970年1月1日到刚才创建用户的日期之间的天数。
第四个字段0 :表示用户密码的最小使用时间。0表示用户随时可以修改密码。其他的数字表示从用户修改密码之日起多少天内不能修改密码。
第五个字段99999 :表示用户的密码最长使用时间
第六个字段7 :表示在密码到期前7天对用户发出警告,提示用户密码快到期
第七个字段 :表示用户密码到期后的宽限时间。也就是说用户密码到期之后几天内还可以使用。
第八个字段 :表示用户账户的过期时间
第九个字段 :保留字段。
1.4、配置文件/etc/login.defs
我们此前使用的命令是useradd testuser1,后面并没有跟任何的其他信息,那么为什么系统会自动给用户分配UID GID呢,为什么用户的家目录会创建在/home/下,而且目录名跟用户名一样呢,还有为什么用户的shell是/bin/bash而不是其他的呢?这就要跟我们的配置文件有关了。
Linux系统管理用户是通过该用户的UID来实现的,而不是用户名。所以每个用户都会拥有自己的用户ID即UID。默认情况下,超级管理员root 的UID是0 ,系统用户的UID以及普通用户的UID在不同的Linux版本下也各不相同。
CentOS 6 |
CentOS 7 |
|
系统用户UID范围 |
1–499 |
201–999 |
普通用户UID范围 |
500–60000 |
1000–60000 |
这个范围的定义是由/etc/login.defs文件来控制的。以CentOS 7为例,打开该文件,在文件中可以看到以下信息
这里就定义了系统用户和普通用户的UID范围。我们刚才创建的testuser1用户是普通用户,所以他的ID范围在1000—60000之间。
这个文件除了定义用户UID范围之外,还定义了其他的参数,我们来看一下:
1) 给用户创建邮件的目录
2) 用户密码的相关选项
这里我们看到,默认定义了4个选项:
PASS_MAX_DAYS 99999 密码最长使用期限
PASS_MIN_DAYS 0 密码最短使用期限
PASS_MIN_LEN 5 密码最短长度
PASS_WARN_AGE 7 密码到期前的警告期限
3) 家目录是否创建
4) 用户权限设置
5) 删除用户的时候如果用户组中不存在其他用户的话,是否删除组
6) 用户密码加密方式
1.5、配置文件/etc/defaults/useradd
1)GROUP 表示如果用户创建的时候不指定组的话,默认加入的系统用户组ID
2)HOME 表示用户创建家目录的路径
3)INACTIVE表示用户账户密码过期之后是否马上禁用该账号。-1表示不马上禁用
4)EXPIRE 表示用户账号的过期时间 为空表示永不过期
5)SHELL 表示创建用户的时候默认给新用户使用的shell
6)SKEL 表示创建用户家目录的模板目录,给用户创建哪些文件
7)CREATE_MAIL_SPOOL 表示是否给新用户创建邮件
我们可以通过修改以上的两个配置文件中相应的参数来控制创建新用户的相关信息。
1.6、useradd命令
除了通过修改配置文件,我们也可以在执行useradd命令的时候,给命令添加选项和参数来控制新建用户的信息。
使用方式如下:
useradd [options] 用户名
选项有很多,我们只列举几种常用的:
-u UID 手动给用户指定UID
-g GID 手动给用户指定GID
-G groupname 指定用户属于哪个附加组
-c COMMENT :指定用户的注释信息
-d DIR :指定用户的家目录
-s SHELL:指定用户使用的SHELL
-r :创建系统用户
-N : 不创建用户组,并将用户的主组设置为USER组
我们除了通过查看配置文件来看创建用户的默认设置之外,还可以通过useradd -D命令来查看和修改创建用户的默认设置。
useradd -D [options]
useradd -D 后面不加选项和参数表示显示新增用户的默认配置
-b DIR :表示修改默认选项中的家目录位置
-e 时间:修改默认选项中用户账户的失效时间
-f 数字 :修改默认选项中用户密码到期前的警告天数
-g GID :修改默认选项中用户账号自动加入的GID
-s SHELL : 修改默认选项中用户使用的shell类型
二、用户信息修改
2.1 usermod命令
创建完用户之后,如果需要对用户的信息进行修改,要是用usermod命令。
具体使用格式:
usermod [options] 用户名
常用选项如下:
-u, –uid UID : 修改用户UID为指定的UID
-g, –gid GROUP :修改用户所属基本组ID
-G, –groups GROUP1[,GROUP2,…[,GROUPN]]] :修改用户的附加组,原来的附加组会被覆盖
-a, –append: 与-G一同使用,为用户增加新的附加组
-c, –comment COMMENT : 修改用户注释信息
-d, –home-dir HOME_DIR : 修改用户家目录:用户原有的文件不会转移至新位置。如果需要将文件一同移动,需要和-m一同使用
-m, –move-home: 只能与-d一同使用,用于移动原家目录中的文件
-l, –login NEW_LOGIN:修改用户名
-s, –shell SHELL : 修改用户登录后默认使用的shell
-L, –lock: 锁定用户密码
-U, –unlock: 解锁用户密码
2.2 passwd命令
如果需要变更用户的密码,或者对密码信息进行修改,要使用passwd命令。具体使用格式为:
passwd [OPTIONS] 用户名
passwd 用户名:不加选项表示修改指定用户密码
-l , -u :锁定和解锁用户,锁定之后只是不能登录,切换可以
-d, –delete :删除和清除用户密码
-e, –expire DATE:过期期限,日期。不加时间默认强制让用户下次登录时输入口令
-i DAYS:非活动期限
-n DAYS:最短使用时间
-x DAYS:最长使用时间
-w DAYS: 警告时间
三、用户删除
如果不需要某个用户,删除用户要使用userdel命令。
具体使用格式:
userdel [options] 用户名
-r 表示连同用户的家目录一起删除
四、新建组
我们在新建用户的时候,系统会默认创建一个跟用户同名的组,并把这个组设置为该用户的主组。用户组的相关信息存放在/etc/group以及/etc/gshadow文件中。
4.1 /etc/group文件
该组信息被:(冒号)分为四个部分:
第一部分testuser1 :表示组名称
第二部分x :表示组密码。组密码存放在/etc/gshadow文件中,跟用户名密码存放在/etc/shadow文件类似。
第三部分1018 : 表示该组的GID
第四部分 :表示组内暂时没有其他的用户
4.2/etc/gshadow文件
该文件被冒号分为四个部分:
第一部分testuser1 :表示组名称
第二部分!! :表示组密码。!!表示该组暂未设置密码。
第三部分 :表示该组的管理员。为空表示没有管理员。
第四部分 :表示该组的其他成员。为空表示无其他成员。
4.3 新建用户命令groupadd
testuser1用户,在如果不通过新建用户,怎么增加组呢?跟新建用户一样,新建组也有一个单独的命令groupadd。使用格式为:
groupadd [options] group
-g GID:手动指定GID
-r:创建系统组
五、修改组
修改组属性信息要使用groupmod命令。
其格式为:
groupmod [options] GROUP
-g GID 组名:表示修改指定组的gid
-n :表示修改组名称
-p :表示给组设置密码
六、删除用户组
删除用户组使用groupdel命令。使用格式为:
groupdel [options] GROUP
七、其他命令
除了以上的用户、组管理命令之外,Linux还提供其他的命令来对用户或者组进行修改。
例如:groupmems、chage、chsh、chfn、finger等。
我们只简单的罗列一下,不再进行详细描述命令的使用。如果想获得更加详细的命令使用信息,大家可以使用man帮助进行查看。
原创文章,作者:jacklei,如若转载,请注明出处:http://www.178linux.com/53735