zoukankan      html  css  js  c++  java
  • Linux中的用户和组

    Linux操作系统是多用户操作系统,它允许多个用户同时登录到系统中,使用系统资源,为了使所有用户的工作都能顺利进行,保护每个用户的文件和进程,也为了系统自身的安全和稳定,必须建立起一种机制,使每个用户的权限都能得到规范。为此,首先区分不同的用户,这就产生了用户账户。

    账户实际上就算一个用户在系统中的标识,系统依据账户来区分每个用户的文件、进程、任务等,给每个用户提供特定的环境,这种环境包括:用户的工作目录、Shell版本、X-Window环境的配置等,使每个用户的工作都能独立进行。

    1.Linux的账户:用户账户和组账户

    用户账户:普通用户账户 和  超级用户账户(管理员账户)
    组账户:组是用户的集合。在CentOS中,组有两种类型:私有组和标准组

    当创建一个新用户时,若没有指定他所属于的组,CentOS就建立一个和该用户同名的私有组,此私有组中只包含这个用户自己;标准组可以容纳多个用户,若使用标准组,在创建一个新用户时就应该指定他所属于的组。同一个用户可以同属于多个组。当一个用户属于多个组时,其登录后所属的组称为主组,其他的组称为附加组。

    2.Linux下的账户系统文件

    /etc/passwd:每行定义一个用户帐号,一行中划分为多个字段定义用户账户的属性,各字段间用:分隔;任何用户均可读
    /etc/shadow:加密用户口令;只有root用户可读
    /etc/group:存放组信息;任何用户均可读
    /etc/gshadow:定义用户组口令、组管理员等信息,该文件只有root用户可以访问

    账户管理的实质就是管理上述的4个账户系统文件

    /etc/passwd:每行定义一个用户帐号,一行中划分为多个字段定义用户账户的属性,各字段间用:分隔 ;该文件中的内容示例如下:
    cc:x:1000:1000:cc:/home/cc:/bin/bash
    用户名:口令:用户标识号:组标识号:注释性描述:宿主目录:命令解释器
    口令:此字段存放加密的口令。在此文件中的口令是x,这表示用户的口令是被/etc/shadow文件保护的,所有加密的口令以及和口令相关的设置都保存在/etc/shadow中
    注释性描述:例如存放用户全名等信息
    宿主目录:用户登录后所进入的目录
    命令解释器:指示该用户使用的shell,默认为bash

    /etc/shadow:加密用户口令;只有root用户可读;该文件中的内容示例如下:

    root:$6$p272TJUi$4gsqVUd5DGEKEnsh.Ej7RWgyhjHj.hnwf/KCTnPOZPBqX8gwNvoCAkve/Dg7oYVOtbvuUghLvKydLPNS12tDJ1:17142:0:99999:7:::
    用户名:口令:最后一次修改的时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

    口令:用户的口令,是经过SHA512加密过的
    最后一次修改时间:从1970年1月1日起,到用户最后一次更改口令的天数
    最小时间间隔:从1970年1月1日起,到用户可以更改口令的天数
    最大时间间隔:从1970年1月1日起,到用户必须更改口令的天数
    警告时间:在用户口令过期之前多少天提醒用户更新
    不活动时间:在用户口令过期之后到禁用账户的天数
    失效时间:从1970年1月1日起,到禁用账户的天数
    标志:保留位

    /etc/group:将用户分组当作Linux中对用户进行管理及控制访问权限的一种方式。每个用户都属于某一个组;一个组可以有多个用户,一个用户也可以属于不同的组。当一个用户同时属于多个组时,在/etc/passwd 文件中记录的时用户所属的主组,也就是登录时所属的主组,而其他组称为附加组。用户要访问附加组的文件时,必须首先使用newgrp命令使自己成为所要访问组的成员。组的所有属性都存放在 /etc/group文件中。该文件示例如下:

    root:x:0:
    组名:组口令:GID:组成员

    组口令:由于安全性原因,已不使用该字段保存口令,用"x"占位
    GID:组的识别号,每个组都有自己独有的GID
    组成员:多个成员之间用","分隔,在CentOS7中,如果只有一个组成员,则不显示

    /etc/gshadow 定义用户组口令、组管理员等信息,该文件只有root用户可以访问;该文件示例如下:

    root:::
    组名:组口令:组管理员帐号:组成员

  • 相关阅读:
    一套完整的测试应该由哪些阶段组成?
    测试结束的标准是什么?
    :你的测试职业发展目标是什么?
    您认为做好测试用例设计工作的关键是什么?
    Servlet API中forward()与redirect()的区别?
    AOP 核心概念?
    Spring 中使用了哪些设计模式?
    ArrayList类?
    如何实现拦截器?
    什么是集合?
  • 原文地址:https://www.cnblogs.com/dm-cc/p/6140471.html
Copyright © 2011-2022 走看看