整理自《鸟哥的Linux私房菜》,整理者:华科小涛http://www.cnblogs.com/hust-ghtao/

管理员的工作中,相当重要的一环就是“管理账号”。因为整个系统都是你在管理的,并且所有一般用户的账号申请都必须要通过你的协助才行!所以必须要了解一下如何管理好一个服务器主机的账号。在管理Linux的账号时,我们必须先来了解一下Linux是如何辨别每一个用户的。

1.用户登陆的来龙去脉

1.1 登陆过程

Linux系统上面的用户如果需要登陆主机以取得shell的环境来工作时,需要通过以下步骤:

  • 先寻找/etc/passwd是否有你输入的账号,如果没有则跳出,如果有的话则将该账号对应的UID与GID读出,另外,将账号的主文件夹和shell设置也一起读出。
  • 核对密码。这时Linux会进入/etc/shadow里面找出账号对应的账号与UID,然后核对一下输入的密码与里面的密码是否相符。
  • 如果一切顺利,则登陆成功,取得shell的管控权。

1.2 /etc/passwd文件结构

文件类似于:

每一行代表一个账号,字段之间用“:”隔开,共七个字段,分别是:

账号名称:密码:UID:GID:用户信息说名列:主文件夹:Shell

说明:

  • 密码:早起UNIX系统的密码就是放在这个字段上!但是这个文件的权限是所有程序都能读取,很容易造成密码数据被窃取,因此后来就将这个字段的密码数据放到/etc/shadow中了,所以这里你会看到一个”x”。
  • Shell:默认shell会使用bash,就是在这个字段指定的。这里需要注意的是,有一个shell可以用来替代成让账号无法取得shell环境的登陆操作,那就是/sbin/nologin。

1.3 /etc/shadow 文件结构

很多程序的运行都与权限有关,而权限又与UID/GID有关,因此各个程序当然要读取/etc/passwd来了解不同账号的权限。因此

/etc/passwd的权限需要设置为-rw-r--r--。因为这样的关系密码移到/etc/shadow这个文件,并加了很多的限制。文件结构类似于:

每一行代表一个账号,字段之间用“:”隔开,共九个字段,分别是:

账号名称:密码:最近更改的日期:不可被更改的天数:需要重新更改的天数:警告天数:宽限时间:失效日期:保留

2.有效与初始用户组

看完了和账号直接相关的两个文件,再来看看用户组的配置文件:/etc/group和/etc/gshadow。

2.1 /etc/group 文件结构

文件的内容有点像这样:

每一行代表一个用户组,也是以“:”作为字段分割符,共分为4列,分别是:

用户组名称:用户组密码:GID:支持的账号名称

说明:

  • 用户组密码:通常不需要设置,留给“用户组管理员”。同样已经移到/etc/gshadow中,因此为“x”。
  • 通过图示来了解账号相关文件之间的UID/GID与密码间的关系:

  • 有效用户组与初始用户组。现在就有一个问题了, 一个账号可以加入多个用户组,那么在工作的时候,到底是以哪个用户组为准呢?在/etc/passwd第四列,对应的用户组是初始用户组,用户登陆就会主动取得,不需要再/etc/group第四个字段写入该账号。账号工作时是以有效用户组为准,查看和更改有效用户组的命令分别是groups和newgrp。

2.2 /etc/gshadow的文件结构

文件结构如下:

各个字段含义:

用户组名称:密码:用户组管理的账号:所属账号

说明:

  • 这个文件和创建“用户组管理员”有关。就是账号太多,root管理不过来,就可以创建用户组管理员,负责将账号纳入自己管理的用户组中。

Linux账号管理(一)的更多相关文章

  1. Linux学习之CentOS(十一)-----Linux 账号管理(转)

    Linux 账号管理(转) useraddpasswdchageusermoduserdelfingerchfnchshidgroupaddgroupmodgroupdelgpasswd su(帐号切 ...

  2. Linux 账号管理与 ACL 权限配置

    要登陆 Linux 系统一定要有账号与口令才行,否则怎么登陆,您说是吧?不过, 不同的使用者应该要拥有不同的权限才行吧?我们还可以透过 user/group 的特殊权限配置, 来规范出不同的群组开发项 ...

  3. Linux系统学习之Linux账号管理

    一.基本介绍 Linux用户分为三类,即普通用户.根用户.系统用户. 普通用户指的是所有使用Linux系统的真实用户. 根用户就是root用户,权限最大,它的ID为0,也被称为超级用户,root用户拥 ...

  4. 第十四章、Linux 账号管理与 ACL 权限配置

    1. Linux 的账号与群组 1.1 使用者标识符: UID 与 GID 1.2 使用者账号:/etc/passwd 文件结构, /etc/shadow 文件结构 1.3 关于群组: /etc/gr ...

  5. 第14章 Linux账号管理与ACL权限设置

    Linux的账号与用户组 用户标识符:UID与GID 每一个文件都有一个所有者ID和用户组ID,当我们需要查看文件属性时,系统会根据/etc/passwd和/etc/group的内容,找到对应UID和 ...

  6. Linux账号管理与ALC权限设定(二) 批量增加用户脚本

    接上篇.鸟哥提出了一个问题.就是 如果myuser1用户是这个项目的助理,他只能查看该目录下的内容,而无法修改删除.那该如何操作呢? 首先,不能将该用户加入projecta这个群组,否则他也可以修改删 ...

  7. Linux 账号管理及ACL权限设置,PAM模块简介

    有效群组与初始群组: groups:有效与支持群组的观察 newgrp:有效群组的切换,后面接群组名称 在passwd文件中记录的GID就是默认的GID,就是初始群组 /etc/passwd文件结构 ...

  8. Linux—账号管理及命令使用详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   在Linux系统中,我们常常会看到目录或文件的所属关系: [root@linux01 ~]# ll -d test.sh -rw ...

  9. linux 账号管理与ACL权限设定

    此文涉及命令:useradd.usermod.userdel.passwd.chage.setfacl.getfacl.su.sudo.fingr.chfn.chsh.id.groupadd.grou ...

随机推荐

  1. javascript面向对象——继承

    javascript和其他语言相比,它没有真正意义上的继承,也不能从一个父类extends,要实现它的继承可以通过其他方式来实现: 步骤:1.继承父类的属性 2.继承父类的原型 下面就以一个拖拽为例子 ...

  2. java排序方法中的选择排序方法

    每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完. package array; //选择排序方法 public class arra ...

  3. Linux下通过rm -f删除大量文件时提示"-bash: /bin/rm: Argument list too long"的解决方法

    Linux下通过rm -f删除/var/spool/postfix/maildrop/中大量的小文件时提示: "-bash: /bin/rm: Argument list too long& ...

  4. mongoose 数据库操作 - 分页

    使用mongoose 加入分页方法,临时还没发现什么更好的方法,我使用的方法是,直接在源代码中加入 找到 node_modules/mongoose/lib/model.js打开这个文件.里面加入这段 ...

  5. 找唯一不出现三次而出现1次的数子O(n)位运算算法

    之前两次那个是异或运算处理.这次以为也是类似.可是没想出来. 高富帅想出来了算法,转为bitset,然后加起来 同样的话 要么0+0+0 要么1+1+1,最后剩下的 能够通过%3 算出0 或1.思想是 ...

  6. JAVA ANDROID SOCKET通信检测(SERVER)连接是否断开

    Pre 解决思路 代码后记: 客户端app上的部分代码 调用: 服务器上: 客户端判断服务器是否还活着代码: PRE 在利用socket写通讯程序的时候,想检测服务器是否还活着. 从网上找了很多资料, ...

  7. Android中文API(129) —— AudioManager

    前言 本章内容是android.media.AudioManager,版本为Android 3.2 r1,翻译来自"文炜",欢迎访问他的博客:"http://www.cn ...

  8. 网页制作之html基础学习3-css样式表

    样式:CSS(Cascading Style Sheets,层叠样式表),作用是美化HTML网页. 在样式里面用 /*  */ 进行注释. 1.样式表的基本概念 1.1.样式表分类 1.内联样式表 和 ...

  9. Http方式获取网络数据

    通过以下代码可以根据网址获取网页的html数据,安卓中获取网络数据的时候会用到,而且会用Java中的sax方式解析获取到数据.(sax解析主要是解析xml)具体代码如下: package com.wy ...

  10. IOS常用设计模式之委托模式

    对于iOS开发,举例Cocoa框架下的几个设计模式为大家分析.当然,Cocoa框架下关于设计模式的内容远远不止这些,我们选择了常用的几种:单例模式.委托模式.观察者模式.MVC模式. 委托模式 委托模 ...