一.linux用户与组的概念
linux是多用户多任务的操作系统,在同一时间内多个用户可以同时登陆系统,使用服务器所提供的计算能力,这篇文章就简单讲述一下linux下用户相关的操作。
二.linux用户与组相关的配置文件详细讲解
linux使用纯文本文件记录系统的配置信息,用户相关的信息主要记录在以下几个文件中:
/etc/passwd 用户登录名,uid等信息
/etc/shadow 用户密码相关
/etc/group 用户组名,gid等信息
/etc/gshadow 用户组密码相关信息
1.passwd文件说明
使用more命令可以查看passwd文件中的内容,取出其中的几行,如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
.
.
.
hex:x:500:500:rhel5.8:/home/hex:/bin/bash
可以看到每一行都由:分隔出7列,每一列的含义可以使用man命令进行查看:
# man 5 passwd
现在取最后一行为例进行简单的说明:
hex:x:500:500:rhel5.8:/home/hex:/bin/bash
1.登陆名
此处的用户名为hex
2.密码
x 表示密码记录在/etc/shadow文件中,如果为空或!!表示不允许登陆;
3.用户ID
此处这个hex用户的uid为500,为一般用户;
在linux系统中,uid为0的是管理员用户(管理员唯一),默认登陆名为root,管理员在系统中,是神一般的存在,拥有任何操作的权力,不使用root登陆系统是一个很好的习惯,毕竟你是一个凡人,凡人难免会犯错。
1--499为系统用户,系统用户是为服务或系统进程所指定的用户,一般不能登陆系统。
500--60000为一般用户,就是平常操作使用的用户,例如hex
4.组ID
一般情况下,在新建一个用户时,如非特殊指定,系统会自动创建一个组作为该用户的基本组,组ID与用户ID值相同。
5.用户的备注信息(comment)
6.用户的家目录
root的家目录为/root,一般用户的家目录在/home路径下
7.用户的shell
用户所有可选的shell在/etc/shells文件中可以找到,注意/sbin/nologin表示不允许登陆,一般情况下可以使用/bin/bash
2.shadow文件简要说明
从以上可以看出,passwd文件中记录的第2的密码字段绝大多数为x,表示用户的密码在shadow文件中,使用more查看shadow文件中的内容:
root:$1$DimMnyB4$4idLBpzEbC0seqCaQc7tS.:16456:0:99999:7:::
bin:*:16456:0:99999:7:::
.
.
.
hex:$1$DimMnyB4$4idLBpzEbC0seqCaQc7tS.:16456:0:99999:7:::
同样使用man 5 shadow
命令可以查看每个字段的具体信息,现在做一个简单的说明:
1.登陆名
2.加密后的密码
3.从1970-1-1到上次密码修过所经过的天数,(就是指上次修改密码的日期)
4.密码将被允许修改之前的天数 (0 表示“可在任何时间修改” )
指从设置或修改密码那天起,密码在多少天内不允许被改变;例如我是root用户,在今天给hex用户设置了一个密码,并且想让这个密码在其后的7天内都不允许修改,那么可以把这个字段的值设置为7,一般很少使用。
5.两次修改口令间隔最多的天数;
这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;
6.提前多少天警告用户口令将过期
当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;
7.在口令过期之后多少天禁用此用户
此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;
8.用户过期日期
此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;
9.保留字段,目前为空,以备将来Linux发展之用
以上信息不需要记忆,只需要了解有哪几个文件与系统管理相关,实际过程中,可以随时通过man命令来查看具体细节。