转载自:https://www.sohu.com/a/320177323_505901

/etc/passwd文件:

系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读(r)操作。

查看文件内容:

/etc/passwd文件内容非常规律,每行记录对应一个用户

每行用户信息都以":"作为分隔符,划分为7个字段。

如下图各个字段含义:

下面逐个介绍一下:

01 用户名

用户名仅是为了方便用户记忆。

Linux系统是通过UID来识别用户身份,分配用户权限。

/etc/passwd文件中定义了用户名和UID之间的对应关系。

关于UID详解请参考:

Linux中的UID和GID的含义

02 密码

"x":表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件。

如下图:

Linux系统把真正的加密密码串放置在/etc/shadow文件中,此文件只有root用户可以浏览和操作,最大限度地保证了密码的安全。

补充:

注意!!!,虽然"x"并不表示真正的密码,但也不能删除,如果删除了 "x",那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以)。

03 UID

UID:用户ID。

每个用户都有唯一UID,Linux 系统通过UID来识别不同的用户。

实际上,UID 就是一个 0~65535 之间的数,不同范围的数字表示不同的用户身份。

0:超级用户。

UID为0就代表这个账号是管理员账号。

1~499:系统用户。

此范围的UID保留给系统使用。

500~65535:普通用户。

例如:我们的odysee用户UID=1000。

关于UID详解请参考:

Linux中的UID和GID的含义

04 GID

简称"组ID",表示用户初始组组ID号。

解释一下初始组和附加组的概念。

(1) 初始组

指用户登陆时就拥有这个用户组的相关权限。每个用户的初始组只能有一个,通常就是将和此用户的用户名相同的组名作为该用户的初始组。比如说,我们手动创建用户 odysee,在建立用户odysee同时,就会建立odysee组作为odysee用户的初始组。

(2) 附加组

用户可以加入多个其他的用户组,并拥有这些组的权限。

每个用户只能有一个初始组,除初始组外,用户再加入其他的用户组,这些用户组就是这个用户的附加组。附加组可以有多个,而且用户可以有这些附加组的权限。

注意:

这里的GID字段是指初始组。

05 描述性信息

此字段只是用来解释这个用户的意义而已。

06 主目录

通常称为用户的主(家)目录。

例如:root主目录为/root,普通用户odysee的主目录为/home/odysee。

07 默认Shell

Shell是Linux的命令解释器,用户和Linux内核之间沟通的桥梁。

Shell命令解释器的功能就是将用户输入的命令转换成系统可以识别的机器语言。

通常情况下,Linux系统默认使用的命令解释器是/bin/bash,当然还有其他命令解释器。

文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux28052 人正在系统学习中

[转帖]/etc/passwd文件 各个字段详解的更多相关文章

  1. Kubernetes YAML 文件全字段详解

    Kubernetes YAML 文件全字段详解 Deployment yaml 其中主要参数都在podTemplate 中,DaemonSet StatefulSet 中的pod部分一样. apiVe ...

  2. Linux "ls -l"文件列表权限详解

    ls Linux "ls -l"文件列表权限详解 1.使用 ls -l 命令 执行结果如下(/var/log) : drwxr-x--- root adm -- : apache2 ...

  3. IIS日志字段详解

    IIS日志字段详解 抓住8月的尾巴,弥补下这个月的空白,事情太多,忘了写博客这回事了. IIS日志字段设置                                          网站运营时 ...

  4. WAL日志文件名称格式详解

    转自:http://blog.osdba.net/534.html WAL日志文件名称格式详解 PostgreSQL的WAL日志文件在pg_xlog目录下,一般情况下,每个文件为16M大小: osdb ...

  5. JPEG文件编/解码详解

    JPEG文件编/解码详解(1) JPEG(Joint Photographic Experts Group)是联合图像专家小组的英文缩写.它由国际电话与电报咨询委员会CCITT(The Interna ...

  6. Kubernetes K8S之通过yaml文件创建Pod与Pod常用字段详解

    YAML语法规范:在kubernetes k8s中如何通过yaml文件创建pod,以及pod常用字段详解 YAML 语法规范 K8S 里所有的资源或者配置都可以用 yaml 或 Json 定义.YAM ...

  7. HTTP首部字段详解

    HTTP首部字段详解 在HTTP/1.1规范中定义了47种首部字段,总共分为四大类: 通用首部字段 -- 请求报文和响应报文两方都会使用的首部 请求首部字段 -- 从客户端向服务器端发送请求报文时使用 ...

  8. Multipart/form-data POST文件上传详解

    Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...

  9. atitit.mp4 视频文件多媒体格式结构详解

    atitit.mp4 视频文件多媒体格式结构详解 1. 一.基本概念1 2. MP4文件概述2 3. mp4是由一个个“box”组成的,2 4. 典型简化mp43 5. Fragments5 6. r ...

  10. C#文件后缀名详解

    C#文件后缀名详解 .sln:解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息. .csproj:项目文件,创建应用程序所需的引用.数据连接.文件夹和文件的信息. .aspx:W ...

随机推荐

  1. 基于Fabric的性能测试与调优实践

    摘要:本文聚焦Fabric核心业务,构建一个测试模型,对社区原生的Fabric和华为云区块链(基于Fabric)进行实测,识别社区原生Fabric的性能瓶颈,并尝试通过华为区块链提供的动态伸缩.快速P ...

  2. 论文解读丨CIKM'22 MARINA:An MLP-Attention Model for Multivariate Time-Series Analysis

    摘要:华为云数据库创新Lab在论文<MARINA: An MLP-Attention Model for Multivariate Time-Series Analysis>中提出了华为自 ...

  3. 云图说|每个成功的业务系统都离不开APIG的保驾护航

    摘要:华为云API网关(APIG)是为企业开发者及合作伙伴提供的高性能.高可用.高安全的API托管服务, 帮助企业轻松构建.管理和部署不同规模的API. 本文分享自华为云社区<[云图说]第243 ...

  4. 火山引擎 DataTester:如何用 A/B 测试做产品增长?

    技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着如今越来越高的获客成本,用户拉新变得不再容易:而且由于获客成本的增高,让用户留存也变得更加重要.同时,一个产品的使 ...

  5. Intellij IDEA、 Pycharm 格式化换行,竖线修改 最大 分隔 线

    Intellij IDEA. Pycharm 等开发工具,超过 竖线,Ctrl + L 格式化时,就会换行 格式化后,现在的显示器分辨率高,这样右边一大片空白,看起来很不舒服 File -> S ...

  6. SpringBoot 开发环境热部署

    开发修改代码后,无需重启idea的服务. 1 模块中添加依赖 <dependency> <groupId>org.springframework.boot</groupI ...

  7. selenium 访问无等待

    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities desired_capabilities ...

  8. 0x03~04 前缀和与差分、二分

    A题:HNOI2003]激光炸弹 按照蓝书上的教程做即可,注意这道题卡空间用int 而不是 long long. int g[5010][5010]; int main() { ios_base::s ...

  9. 全国城市地级市区县sql

    全国城市地级市区县sql CREATE TABLE `region` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar( ...

  10. list求交集、并集、差集等//post或者get请求方法

    package com.siebel.api.server.config.rest; import com.google.common.base.Joiner; import com.google.c ...