Linux 用户篇——用户管理的配置文件
一、用户管理之配置文件的重要性
在Linux系统中,用户账户的相关信息是存放在相关配置文件中。而Linux安全系统的核心是用户账号,用户对系统中各种对象的访问权限取决于他们登录系统时用的账户,并且Linux系统使用特定的配置文件和工具来跟踪和管理系统中的用户账户。
二、说说配置文件
这里讲述的配置文件分为用户配置文件和用户组配置文件,比如/etc/passwd和/etc/shadow是用户配置文件,/etc/group和/etc/gshadow是用户组配置文件。
(1)首当其冲要讲讲/etc/passwd文件,该文件位于/etc目录下。/etc/passwd是一个标准的文本文件,你可以用任何的文本编辑器修改该文件的内容。如果/etc/passwd文件出现损坏,系统就无法读取它的内容了,这样会导致用户无法正常登录,只用重装Linux系统解决了。/etc/passwd文件包含了一些与用户相关的信息,将用户的登录名匹配对应的UID值。UID即User ID,拥有创建权限的用户创建用户时会分配唯一的用户ID,UID是数值但在登录系统时用的不是UID,而是登录名。
如2-1图所示,/etc/passwd文件的部分信息。每一行就是用户账户的相关信息,每一行包含7个字段的信息:
第1个字段:用户名称,即登录名。
第2个字段:密码标志。该字段都被设置成了x,并不是说所有的用户账户都用相同的密码,这只是一个密码标志而已,用户有无密码都会被设置成x。
第3个字段:UID,即用户ID(User ID)。其中0用来标记超级用户,比如root用户,如果手动更改某一个用户的UID为0,那该用户也会拥有超级用户的权限。1-499这个范围用来标记系统用户,这些用户俗称伪用户是系统上运行的各种服务进程访问资源用的特殊账户,所有运行在后台的服务都需要用一个系统用户账户登录到Linux系统上。500-65535这个范围用户来标记普通用户,比如新创建的用户的UID值就会在这个范围内。
第4个字段:GID,即用户组的ID(用户初始组的ID)。这里的用户组分为初始组和附加组,初始组就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是与这个用户的用户名相同的组名作为这个用户的初始组。附加组就是指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。
第5个字段:用户说明,就是用户的相关描述。
第6个字段:用户的HOME目录的位置。普通用户的HOME目录一般都是/home/用户名/这样的形式,root用户的HOME目录是/root/。
第7个字段:登录之后的shell。

图 2-1
(2)其次是/etc/shadow文件位于/etc目录下,该文件是保存密码相关信息。只有root用户才能访问这个文件,如果root用户编辑了该文件,有可能被更改的用户就登录不上。使用shadow密码系统后,Linux系统可以更好地控制用户密码。它可以控制用户多久更改一次密码,以及什么时候禁用该用户,如果密码未更新的话。
如图2-2所示,在/etc/shadow文件中,系统为每个用户都保存了一条记录,每条记录都有9个字段:
第1个字段:用户名,即登录名。
第2个字段:加密之后的密码,使用SHA512散列加密算法进行加密。如果密码字段位是"!!"或"*"代表没有密码,不能登录。
第3个字段:密码最后一次的修改日期(天数表示),使用1970年1月1日作为标准时间,每过一天时间戳加1。
第4个字段:两次密码的修改时间间隔(和第3个字段相比)。
第5个字段:密码有效期(和第3个字段相比)。
第6个字段:密码到期前的警告天数(和第5个字段相比)。
第7个字段:密码到期后多少天禁用用户。
第8个字段:用户被禁用的日期(用天数表示),使用1970年1月1日作为标准时间,每过一天时间加1。
第9个字段:预留字段给将来使用。

图 2-2
(3)用户组的配置我就不细说了,跟用户的配置文件大同小异。接下来说说用户模板目录/etc/skel/,用户模板目录是作为创建新用户HOME目录的模板。这样就能自动在每个新用户的HOME目录放置默认的系统文件。
Linux 用户篇——用户管理的配置文件的更多相关文章
- Linux 用户篇——用户管理命令之id、whoami、su、chage
一.浅谈id.whoami.su.chage 本篇是续写上一篇<Linux 用户篇——用户管理命令之useradd.passwd.userdel.usermod>. (1)id命令 命令格 ...
- Linux 用户篇——用户管理命令之useradd、passwd、userdel、usermod
一.用户重要,用户管理命令同样重要 用户是Linux系统安全的核心,每个登录Linux系统的用户都会分配相应的权限,这些权限取决于能否访问系统中各种对象.而管理这些用户的相关信息离不开用户管理命令,比 ...
- linux基础之用户和组管理及权限
一.用户和组管理 相关配置文件 /etc/passwd: 用户名 : 密码占位符 : UID : GID : COMMENTS : 家目录 :默认shell /etc/group: 组名 : 组密码占 ...
- Linux系列教程(十四)——Linux用户和用户组管理之相关配置文件
前面我们介绍了软件包管理.首先介绍了rpm包的相关命令,但是我们发现直接安装rpm包会被其依赖性折磨的不行,然后解决办法是yum在线管理,通过yum命令安装rpm包能自动帮助我们解决依赖性.最后又介绍 ...
- linux【第六篇】用户和用户管理及定时任务复习
定时任务复习 1.什么是定时任务? 2.如何编辑查看定时任务(配置文件位置?),语法的特殊字符意义是什么?- * , / 3.书写定时任务有哪些要领? 4.生产如何调试定时任务 5.生产场景配置定时任 ...
- java程序员菜鸟进阶(十五)linux基础入门(三)linux用户和组管理
我们大家都知道,要登录linux操作系统,我们必须要有一个用户名和密码.每一个用户都由一个惟一的身份来标识,这个标识叫做用户ID.系统中的每一个用户也至少需要属于一个"用户分组". ...
- Linux操作系统常用命令合集——第二篇- 用户和组操作(15个命令)
一.前言:本篇介绍用户和组操作的15个命令,在介绍之前我们先来看看几个示例 1.先进入到etc目录下,找到passwd文件,用vi编辑器查看: # vi /etc/passwd 解释:这里面存放着Li ...
- Linux学习--4.用户和组的管理
用户和组的管理 前言 本篇文章主要讲Linux系统下用户和组的概念,还有添加用户和组,修改用户和组的基本操作,会涉及不少与之相关的配置文件与命令的介绍,几乎所有 正文 首先,简单提下概念,用户是操作系 ...
- linux 用户创建、管理、权限分配
(1)su与sudo su:通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证: sudo: sudo扮 ...
随机推荐
- linux内核分析 第四周 扒开系统调用的三层皮(上)
一.用户态.内核态和中断处理过程 系统调用是用户通过库函数方式:库函数帮我们把系统调用封装起来. 内核态:高级别执行,可以使用特权指令,访问任意的物理地址. 用户态:低级别执行,代码范围受到限制. C ...
- 【agc012E】Camel and Oases
Portal --> agc012 Description 有一排点,两点间有一定距离,初始的时候有一个行走值\(v\),如果说两点间距离不超过\(v\),那么可以在这两点间自由行走,如果当前\ ...
- win7右键新建文件夹不见了
http://zhidao.baidu.com/question/175786636169796084.html 看下注册表文件:reg add "HKEY_CLASSES_ROOT\Dir ...
- SFM学习
摘自李翠http://www.cnblogs.com/serser/p/6598621.html SFM 1.相机模型,内参数和外参数矩阵,相机标定: 2.极线约束和本征矩阵:特征点提取与匹配:提取到 ...
- [python]乱码:python抓取脚本
参考: http://www.zhxl.me/1409.html 使用 python urllib2 抓取网页时出现乱码的解决方案 发表回复 这里记录的是一个门外汉解决使用 urllib2 抓取网页时 ...
- 安装vim with python
http://note.youdao.com/noteshare?id=4eaddfef93696451de7ff890a6af3cc4
- UVA - 1262 数学
UVA - 1262 题意: 有两个6*5 的大写字母组成的矩阵,需要找出满足条件的字典序第k小的密码:密码中每个字母在两个矩阵的对应的同一列中都出现过 代码: // 先处理出来每一列可以取的字母,例 ...
- I/O多路复用和异步I/O
一.I/O模式 对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间.所以说,当一个read操作发生时,它会经历两个阶段: ...
- python练习1--用户登入
python版本为python3.51.要求 1)输入用户名密码 2)认证成功后显示欢迎信息 3)输错三次后锁定 2.需求分析 1)用户信息存储在文件中(login/config/user_login ...
- go defer注意点,很容易出错的!!!
1:defer是在return之前执行的 函数返回的过程是这样的:先给返回值赋值,然后调用defer表达式,最后才是返回到调用函数中 返回值 = xxx 调用defer函数 空的return fun ...