Linux用户及组相关文件介绍
1. 用户和组相关的配置文件
Linux用户和组的主要配置文件:
Linux用户和组的主要配置文件:
/etc/passwd: 用户及其属性信息(名称、UID、主组ID等),可以用vipw=vi /etc/passwd进行修改信息 通过pwck验证;
/etc/group: 组及其属性信息,同样可以通过vigr = vi /etc/group 进行修改信息 通过grpck验证;
/etc/shadow: 用户密码及其相关属性;
/etc/gshadow: 组密码及其相关属性。
/etc/group: 组及其属性信息,同样可以通过vigr = vi /etc/group 进行修改信息 通过grpck验证;
/etc/shadow: 用户密码及其相关属性;
/etc/gshadow: 组密码及其相关属性。
1.1. /etc/passwd 文件 (1行7列)
系统用户配置文件,是用户管理中最重要的一个文件。
它记录了Linux系统中每个用户的一些基本属性,并且 对所有用户可读。
/etc/passwd中 每一行记录 对应 一个用户,每行记录又被冒号 (:)分割,其格式和具体含义如下:
用户名 : 口令 : 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 默认shell
用户名: 是代表用户账号的字符串。
口令: 存放着加密后的用户口令,虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。
因此,现在许多Linux 版本都使用了shadow技术,把真正加密后的用户口令存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如用“x”或者“*” 来表示。
用户标识号: 就是用户的UID,每个用户都有一个UID,并且是唯一的,通常UID号的取值范围是0~65535,0是超级用户root的标识号,1~99由系统保留,作为管理账号;
普通用户的标识号从100开始。而在Linux系统中,普通用户UID默认从500开始。UID是linux下确认用户权限的标志,用户的角色和权限都是通过UID来实现的,因此多个用户公用一个UID是非常危险的,会造成系统权限和管理的混乱。
例如:将普通用户的UID设置为0后,这个普通用户就具有了root用户的权限,这是极度危险的操作。因此要尽量保持用户UID的唯一性。
普通用户的标识号从100开始。而在Linux系统中,普通用户UID默认从500开始。UID是linux下确认用户权限的标志,用户的角色和权限都是通过UID来实现的,因此多个用户公用一个UID是非常危险的,会造成系统权限和管理的混乱。
例如:将普通用户的UID设置为0后,这个普通用户就具有了root用户的权限,这是极度危险的操作。因此要尽量保持用户UID的唯一性。
组标识号: 就是组的GID,与用户的UID类似,这个字段记录了用户所属的用户组。
它对应着/etc/group文件中的一条记录。
它对应着/etc/group文件中的一条记录。
注释性描述: 字段是对用户的描述信息,比如用户的住址、电话、姓名等等。
主目录: 也就是用户登录到系统之后默认所处的目录,也可以叫做用户的主目录、家目录、根目录等等。
默认shell: 就是用户登录系统后默认使用的命令解释器,shell是用户和linux内核之间的接口,用户所作的任何操作,都是通过shell传递给系统内核的。linux下常用的shell有:sh、bash、csh等。
管理员可以根据用户的习惯,为每个用户设置不同的shell。
1.2. /etc/shadow 文件(1行9列)
用户影子文件,由于/etc/passwd文件是所有用户都可读的,这样就导致了用户的密码容易出现泄露,因此,linux将用户的密码信息从/etc/passwd中分离出来,单独的放到了一个文件中,这个文件就是/etc/shadow,该文件只有root用户拥有读权限,从而保证了用户密码的安全性。
下面介绍下/etc/shadow文件内容的格式:
用户名 : 加密口令 : 最后一次修改时间 : 最小时间间隔 : 最大时间间隔 : 警告时间 : 不活动时间 : 失效时间 : 保留字段
用户名: 与/etc/passwd文件中的用户名有相同的含义。
加密口令: 存放的是加密后的用户口令字串,如果此字段是“*”、“!”、“x”等字符,则对应的用户不能登录系统。
最后一次修改时间: 表示从某个时间起,到用户最近一次修改口令的间隔天数。可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化。
最小时间间隔: 表示两次修改密码之间的最小时间间隔。
最大时间间隔: 表示两次修改密码之间的最大时间间隔,这个设置能增强管理员管理用户的时效性。
警告时间: 表示从系统开始警告用户到密码正式失效之间的天数。
不活动时间: 此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统不再让此用户登录,也不会提示用户过期,是完全禁用。
失效时间: 表示该用户的帐号生存期,超过这个设定时间,帐号失效,用户就无法登录系统了。如果这个字段的值为空,帐号永久可用。
保留字段: linux的保留字段,目前为空,以备linux日后发展之用。
1.3. /etc/group 文件(1行4列)
用户组配置文件,用户组的所有信息都存放在此文件中。
下面介绍下/etc/group文件内容的格式:
组名 : 口令 : 组标识号 : 组内用户列表
组名: 是用户组的名称,由字母或数字构成。与/etc/passwd中的用户名一样,组名不能重复。
口令: 存放的是用户组加密后的口令字串,密码默认设置在/etc/gshadow文件中,而在这里用 “x” 代替,linux系统下默认的用户组都没有口令,可以通过gpasswd来给用户组添加密码。
组标识号: 就是GID,与/etc/passwd中的组标识号对应。
组内用户列表: 显示属于这个组的所有用户,多个用户之间用逗号分隔。
1.4. /etc/gshdow 文件(1行4列)
组密码及其相关属性。
下面介绍下/etc/gshdow文件内容的格式:
群组名称 : 群组密码 : 组管理员列表 : 以当前组为附加组的用户列表
群组名称: 就是群组名称
群组密码:
组管理员列表: 组管理员的列表,更改组密码和成员
以当前组为附加组的用户列表: (分隔符为逗号)
1.5. 总结4个文件
/etc/passwd文件格式 一共7列:
login name:登录用名(wang)
passwd:密码 (x) 在早期版本这里存的的确是密码目前已经变成占位符x,真正的密码文件已经移动到/etc/shodow下
UID:用户身份编号 (1000)
GID:登录默认所在组编号 (1000)
GECOS:用户全名或注释
home directory:用户主目录 (/home/wang)
shell:用户默认使用shell (/bin/bash)
/etc/shadow文件格式 一共有9列:
登录用名
用户密码:一般用sha512加密
从1970年1月1日起到密码最近一次被更改的时间
密码再过几天可以被变更(0表示随时可被变更)
密码再过几天必须被变更(99999表示永不过期)
密码过期前几天系统提醒用户(默认为一周)
密码过期几天后帐号会被锁定
从1970年1月1日算起,多少天后帐号失效
保留字段
/etc/group文件格式 一共分为4列:
群组名称:就是群组名称
群组密码:通常不需要设定,密码是被记录在 /etc/gshadow
GID:就是群组的 ID
以当前组为附加组的用户列表(分隔符为逗号)
/etc/gshdow文件格式 一共分为4列:
群组名称:就是群组名称
群组密码:
组管理员列表:组管理员的列表,更改组密码和成员
以当前组为附加组的用户列表:(分隔符为逗号)
2./etc/login.defs文件
用来定义创建一个用户时的默认设置,比如指定用户的UID和GID的范围,用户的过期时间、是否需要创建用户主目录等等。
3./etc/default/useradd文件
当通过useradd命令不加任何参数创建一个用户后,用户默认的主目录一般位于/home下,默认使用的shell是/bin/bash,这些都是存在于/etc/default/useradd这个文件中。
/etc/default/useradd文件定义了新建用户的一些默认属性,比如用户的主目录、使用的shell等等,通过更改此文件,可以改变创建新用户的默认属性值。
改变此文件有两种方法:
一种是通过文本编辑器方式更改;
另一种是通过useradd命令来更改。
这里介绍一下第2种方法:
另一种是通过useradd命令来更改。
这里介绍一下第2种方法:
useradd命令加“-D”参数后,就可以修改配置文件/etc/default/useradd,使用的一般格式为:
1|useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]
每个选项详细含义如下:
-g default_group
表示新建用户的起始组名或者GID,组名必须为已经存在的用户组名称,GID也必须是已经存在的用户组GID。与/etc/default/useradd文件中“GROUP”行对应。
表示新建用户的起始组名或者GID,组名必须为已经存在的用户组名称,GID也必须是已经存在的用户组GID。与/etc/default/useradd文件中“GROUP”行对应。
-b default_home
指定新建用户主目录的上级目录,也就是所有新建用户都会在此目录下创建自己的主目录。与/etc/default/useradd文件中HOME行对应。
指定新建用户主目录的上级目录,也就是所有新建用户都会在此目录下创建自己的主目录。与/etc/default/useradd文件中HOME行对应。
-s default_shell
指定新建用户默认使用的shell,与/etc/default/useradd文件中“SHELL”行对应。
指定新建用户默认使用的shell,与/etc/default/useradd文件中“SHELL”行对应。
-f default_inactive
指定用户帐号过期多长时间后就永久停用,与/etc/default/useradd文件中“INACTIVE”行对应。
指定用户帐号过期多长时间后就永久停用,与/etc/default/useradd文件中“INACTIVE”行对应。
-e default_expire_date
指定用户帐号的过期时间。与/etc/default/useradd文件中“EXPIRE”行对应。
指定用户帐号的过期时间。与/etc/default/useradd文件中“EXPIRE”行对应。
4./etc/skel目录
在创建一个新用户后,会在新用户的主目录下看到类似.bash_profile, .bashrc, .bash_logout等文件,这些文件是怎么来的呢,如果想让新建立的用户在主目录下默认拥有自己指定的配置文件,该如何设置呢?
在创建一个新用户后,会在新用户的主目录下看到类似.bash_profile, .bashrc, .bash_logout等文件,这些文件是怎么来的呢,如果想让新建立的用户在主目录下默认拥有自己指定的配置文件,该如何设置呢?
/etc/skel目录就是解决这个问题的,/etc/skel目录定义了新建用户在主目录下默认的配置文件,更改/etc/skel目录下的内容就可以改变新建用户默认主目录的配置文件信息。
浙公网安备 33010602011771号