/etc/passwd用户记录文件,文件记录着ID和账号与一般身份用户的对应关系

用户至少会有2个ID,用户ID(UserID简UID)和用户组ID(GroupID简GID)。

  /etc/group用户组记录文件,文件记录着ID和用户组名的对应关系

文件利用UID和GID判别所有者和用户组。当要显示文件属性需求时,系统会根据/etc/passwd和/etc/group的内容,找到UID/GID对应的账号与用户组名再显示出来。

  /etc/shadow为专门管理密码相关数据文件

/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

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

  • operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:999:998:User for polkitd:/:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

chrony:x:998:996::/var/lib/chrony:/sbin/nologin

jiangshan:x:1000:1000::/home/jiangshan:/bin/bash

jinyan:x:1001:1001::/home/jinyan:/bin/bash

以‘jinyan’用户为例,其中,1001:1001为UID:GID,UID标识用户,GID标识用户组。

/etc/group

root:x:0:

bin:x:1:

daemon:x:2:

sys:x:3:

adm:x:4:

tty:x:5:

disk:x:6:

lp:x:7:

mem:x:8:

kmem:x:9:

wheel:x:10:

cdrom:x:11:

mail:x:12:postfix

man:x:15:

dialout:x:18:

floppy:x:19:

games:x:20:

tape:x:33:

video:x:39:

ftp:x:50:

lock:x:54:

audio:x:63:

nobody:x:99:

users:x:100:

utmp:x:22:

utempter:x:35:

input:x:999:

systemd-journal:x:190:

systemd-network:x:192:

dbus:x:81:

polkitd:x:998:

ssh_keys:x:997:

sshd:x:74:

postdrop:x:90:

postfix:x:89:

chrony:x:996:

jiangshan:x:1000:

jinyan:x:1001:

/etc/shadow

root:$6$Ue1tISumzuerjoaq$1Y696T4DwWQdL5m9HU3XAvlT3z3TGR2eVSxo5vBId7x2T8hti9SQenCetayvF6UxOR4am0uXWbeg5Kagavzfe0::0:99999:7:::

bin:*:17834:0:99999:7:::

daemon:*:17834:0:99999:7:::

adm:*:17834:0:99999:7:::

lp:*:17834:0:99999:7:::

sync:*:17834:0:99999:7:::

shutdown:*:17834:0:99999:7:::

halt:*:17834:0:99999:7:::

mail:*:17834:0:99999:7:::

  • operator:*:17834:0:99999:7:::

games:*:17834:0:99999:7:::

ftp:*:17834:0:99999:7:::

nobody:*:17834:0:99999:7:::

systemd-network:!!:17960::::::

dbus:!!:17960::::::

polkitd:!!:17960::::::

sshd:!!:17960::::::

postfix:!!:17960::::::

chrony:!!:17960::::::

jiangshan:$6$ZPd3YtMU$4.SDHumdEN9V4jD4L2sa.MZ318jx3yl2ByKQV3mxjxmMfDCXM2IFTEl1MqG/UAqJeSVsltjcnB4NWr4j9X7Hy1:17962:0:99999:7:::

jinyan:$6$3/Py/FGX$RgIA8mFS1CWvSM7GcNYa0CDe3IHcEpbPuZOWrKgPzugEQBnRiNbAsLdliMjcVefoXj9jYOqCofjONbmHRuOiu1:17962:0:99999:7:::

若某用户登录主机以取得shell的环境:在计算机前面利用tty1~tty2的终端机提供的login接口,输入账号和密码;若通过网络,还需要设置ssh远程访问功能;系统后台替你完成的工作:

  1. 系统在/etc/passwd文件中找到输入的账号,并读取出该账号对应的UID与GID(在/etc/group中读取),另外账号的主文件夹与shell设置也一并读出。
  2. 核对密码表,系统在/etc/shadow文件中找出对应的账号与UID,然后核对输入的密码和/etc/shadow文件中账号对应的密码是否相符。
  3. 一切OK,则进入shell阶段。

/etc/passwd文件结构

每一行代表一个账号,有几行系统就有几个账号,大多数为系统所必需的账号。

以/etc/passwd文件第一行为例解读:

root:x:0:0:root:/root:/bin/bash

共7个字段,用:分隔,每个字段分别是:

  1. 账号名称    账号用来对应UID的,例如root的UID对应就是0第3个字段。
  2. 密码,早期是将密码放入该字段中,由于不安全,后来将密码放置在/etc/shadow中,用x填入。
  3. UID  用户标识符,UID的限制如下:

i.              0   系统管理员

ii.              1~499   系统账号(保留给系统使用)

iii.               500~2^32-1   可登录账号 给一般用户使用

  1. GID  与/etc/group有关   /etc/group与/etc/passwd差不多,只是它用来规定组名与GID的对应而已。
  2. 用户信息列表  解释账号而已
  3. 主文件夹  当用户登录后,就会立刻进入到该目录中
  4. Shell   当用户登陆系统后就会取得一个Shell来与系统的内核通信以进行用户操作,这个字段指定shell会使用bash,如该字段为“/bin/bash”。注意:/sbin/nologin Shell可以用来替代成让账号无法取得shell环境的登录操作,如可以用来制作纯pop邮件账号者的数据。

/etc/shadow文件结构  共有9个字段

程序运行都与权限有关,而权限与UID/GID有关,因此各程序需要读取/etc/passwd文件来了解不同账号的权限,因此/etc/passwd文件的权限设置为“-rw-r-r--”。早期密码放置在/etc/passwd文件中,存在着风险,因此发展后期将密码移至/etc/shadow文件中,进行分隔开来,例如:

root:$6$Ue1tISumzuerjoaq$1Y696T4DwWQdL5m9HU3XAvlT3z3TGR2eVSxo5vBId7x2T8hti9SQenCetayvF6UxOR4am0uXWbeg5Kagavzfe0::0:99999:7:::

  1. 账号名称   由于密码也需要和账号对应  必须要和/etc/passwd相同
  2. 密码   经过加密的密码
  3. 最近更动密码的日期
  4. 密码不可被更动的天数(与第3个字段相比)
  5. 密码需要重新更改的天数(与第3个字段相比)
  6. 密码需要更改期限前的警告天数(与第5个字段相比)
  7. 密码过期后的账号宽限时间(密码失效日)(与第5个字段相比)
  8. 账号失效日期   常用来做“收费服务”
  9. 保留字段

/etc/group文件结构  共有4个字段

每一行代表一个用户组。例如:

root:x:0:

  1. 用户组名称
  2. 用户组密码   通常不需要设置,这个设置通常是给“用户管理员”使用,但是密码早已移动到/etc/gshadow文件中了,此字段只会存在一个“x”
  3. GID  用户组ID
  4. 此用户组支持的账号名称   一个账号可以加入多个用户组,某个账号想要加入此用户组,将该账号填入该字段即可。例如想让 jeshy 加入root这个用户组,那么在该字段加入“,jeshy”即“root,jeshy”------ root:x:0:root,jeshy

CentOS7下账号与用户的更多相关文章

  1. Centos7下关于系统用户密码规则-运维笔记

    针对Centos7下的系统用户的密码规则复杂度的设置,处于安全考虑,说明如下: 一.设置密码规则 1)密码长度.有效期 /etc/login.defs文件是当创建用户时的一些规划,比如创建用户时,是否 ...

  2. CentOS7下安装带用户认证的squid服务器(无防火墙)

    1       安装squid服务: yum install squid 安装htpasswd : yum install httpd-tools 2       配置squid配置文件 #该定义需在 ...

  3. 解决Centos7 下 root账号 远程连接FTP,vsftpd 提示 530 Login incorrect 问题

    原文:解决Centos7 下 root账号 远程连接FTP,vsftpd 提示 530 Login incorrect 问题 三步走: 1.vim /etc/vsftpd/user_list 注释掉 ...

  4. CentOS7下安装MySQL并配置远程连接

    一.CentOS7下安装MySQL数据库 CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了. 默认的是MariaDB (MySQL的一个分支,开发这个分支的 ...

  5. Linux 下非root用户使用docker

    Linux 下非root用户使用docker 通常我们使用linux系统的时候,最好是不要直接使用root账号,但是使用Docker的时候,默认又是不能使用非root用户的,关于原因,官方说法如下: ...

  6. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  7. CentOS7下mariadb日常管理

    在CentOS7下,官方提供的mysql的rpm包就是mariadb,可查看mariadb包信息 [root@host ~]$rpm -qi mariadb # 需要先安装该包 Name : mari ...

  8. Centos7 下的SVN安装与配置

    Centos7 下的SVN安装与配置 1.关闭防火墙 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临 ...

  9. CentOS7下单机部署RabbltMQ环境的操作记录

    一.RabbitMQ简单介绍在日常工作环境中,你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务 ...

随机推荐

  1. 关于如何在本地IIS搭建网站

    步骤一: 首先安装与配置IIS服务,可借用百度经验:http://jingyan.baidu.com/article/d5a880eb75f74713f047cc57.html 步骤二: 修改web. ...

  2. linux7 安装SVN

    1.安装Linux虚拟机-- 安装后配置a.停止防火墙# systemctl stop firewalld.service# systemctl disable firewalld.service# ...

  3. HUST1017(KB3-A Dancing links)

    1017 - Exact cover Time Limit: 15s Memory Limit: 128MB Special Judge Submissions: 7270 Solved: 3754 ...

  4. 【代码笔记】iOS-对数组进行排序

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ...

  5. Android Studio 一个完整的APP实例(附源码和数据库)

    前言: 这是我独立做的第一个APP,是一个记账本APP. This is the first APP, I've ever done on my own. It's a accountbook APP ...

  6. 8.2,常用模块介绍:sys,os,time,random

    sys: 介绍:主要包含涉及python编译器与系统交互的函数. 常用函数: import sys print(sys.argv)#本文件名,已经运行该程序时的参数 #[如在命令窗口中python3 ...

  7. Twain Capabilities 转

    转自:http://blog.csdn.net/pamxy/article/details/8629213 Asynchronous Device Events   异步设备事件 CAP_DEVICE ...

  8. linux内核完全剖析——基于0.12内核-笔记(2)-统一编址和独立编址

    IO是什么 ? IO(Input and Output)是输入输出接口.是CPU和其他外部设备(如串口.LCD.触摸屏.LED等)之间通信的接口.一般的,我们说的IO就是指CPU的各种内部或外部外设. ...

  9. 监控文件内容变化,即时写入到新文件(tail)

    监控文件a,如有新内容写入,即时将新内容写入到新文件aa中: fw=open('e:\\aa.txt','ab') with open('e:\\a.txt','rb') as fo: while T ...

  10. SSH批量分发管理

    ssh服务认证类型主要有两个: 基于口令的安全验证: 基于口令的安全验证的方式就是大家一直在用的,只要知道服务器的ssh连接账户.口令.IP及开发的端口,默认22,就可以通过ssh客户端登陆到这台远程 ...