美文网首页程序员
Linux用户详解

Linux用户详解

作者: 唐九十九藏 | 来源:发表于2018-07-27 23:47 被阅读0次

在Linux中,每个文件都是属于一个用户的,而每个用户都属于一个用户组。

在Linux中,可以同时拥有N多个用户,和用户组。

在Linux中,保存用户的信息是在

/etc/passwd        //保存账号的文件

/etc/shadow        //保存密码的文件

/etc/passwd文件解析

通过    vim /etc/passwd  指令可以打开passwd文件,里面数据如下图:

我数了一下,总共有29行,也就是说我的服务器上公共有29个用户。

每一行都代表一个用户。

用户的基本信息以【:】为分割符,写成了一行,我又数了一下,总共有六个冒号,说明每个用户有七个属性。

下面就以root这个用户来讲解每个属性的意思。

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

以冒号为拆分,从左到右排序:


root

账号的名称


x

密码。

在早期,Linux用户的密码就是放在这个位置上的,但是因为/etc/passwd可以被所有程序读取,为了系统安全,于是把密码移到了/etc/shadow文件中。

所以你会发现,在所有的用户中,该位置的值都是x


0

UID 也就是用户ID。

这个ID被使用在了权限管理中,比如文件权限等地方。

UID有一些特殊特性,如下:

1. 当UID=0时,代表这个用户是超级管理员。所以,当你将其他账号,如上图中的test的UID设置为0,那么test也就变成超级管理员了。

2. 习惯上,将1-499的UID保留给操作系统使用,称其为系统账号。但实际上,这只是习惯问题,权限上并没有任何差别。

3.习惯上,将500之后的UID给我们自定义使用,也就是说,我们使用useradd增加的用户的UID默认就是500以后的。


0

GID

用户组ID


root

使用者信息说明栏

这个字段是用户的描述信息


/root

主文件夹

用户登录进来的默认文件夹,/root,则代表root用户的默认主目录是/root,在上图中,我们可以发现apache在该位置的值是 /urs/share/httpd 说民apache这个用户的默认主目录就是 /urs/share/httpd


/bin/bash

用户默认情况下的shell。

在Linux中,有很多类型的shell,每个类型的shell都有所迥异,但每个的主要目的都是与操作系统内核沟通。

反过来,如果这个shell没办法和操作系统内核沟通,那么这个拥有这个shell的用户就没法执行命令了。

基于此原理,如果你不想系统中的某个用户可以登录进系统,可以将该位置的值设置为一些无法与内核沟通的shell,比如:/sbin/nologin

所以,shell为/sbin/nologin的用户是无法登录进系统的。


/etc/shadow文件解析

开文之前,先讲一下/etc/shadow文件出现的历史原因。

通过 ls /etc/passwd -al 指令可以查看 /etc/passwd 文件的权限信息。

-rw-r--r--:说明系统上的所有用户都是可以读取到该文件的,如果将密码放在这个文件,那么就意味着所有人都可以读取到所有用户的信息,只不过除了root,没有人有权限修改这个文件而已。

这就带来了安全问题,为了系统更安全,于是将用户的密码移除到 /etc/shadow 文件里。

通过 ls /etc/shadow -al 指令可以查看 /etc/shadow 文件的权限信息。

----------:说明除了超级管理员(UID=0),谁都无法查看和修改此文件。

通过 vim /etc/shadow,可以打开shadow文件,里面信息如图所示。


root:$6$W1.A5Zr/$VbHWDRA3leWeOlZfcJwXuKfphFftfRMeBToNZInkypJ0LI62fYZWTZyJSAY.FgTGIIdaa0EdqKX7nxDi3G/kd.:17698:0:99999:7:0:16679:


和/etc/passwd一样。

/etc/shadow也是每一行代表一个用户密码。

/etc/shadow的每一行也是以冒号【:】来分割的,数了一下,总共有八个冒号,说明密码总共有九个属性。

下面从左到右排序,分别介绍:


root

用户名称,和/etc/passwd里的第一个位置字段一一对应着。


$6$W1.A5Zr/$VbHWDRA3leWeOlZfcJwXuKfphFftfRMeBToNZInkypJ0LI62fYZWTZyJSAY.FgTGIIdaa0EdqKX7nxDi3G/kd.

加密后的密码。

可通过:authconfig --test | grep hashing

查看密码的加密方式:


17698

最近更改密码的日期

计算规则:从1970 年 1 月 1 日起,过去的秒数。


0

密码不可更改的天数。

如果为0,则随时都可以更改密码。

如果为N(N>0),则代表上一次修改后,经过N天之后才能修改用户的密码。


99999

密码需要重新修改的天数

如果经过该天数后,密码还未修改过,那么在下次登录的时候,会强制修改一次。


7

密码需要变更前期限前的警告天数

7表示在密码过期前的前七天会提醒管理者。


0

密码过期后的宽限日期


16679

账号的失效日期,到这个日期的时候,该用户就无法使用了。


最后一个字段是作为保留字段使用的。


到此,账号的两个文件都已经讲解完毕了。

因为Linux中的账号和密码都是以文件的形式保存的,所以,可以直接通过文件,来更改对应账号的相应属性。

比如:如果root密码忘记了,就可以想办法通过开机的方式进入该文件,修改密码。

相关文章

  • Linux用户详解

    在Linux中,每个文件都是属于一个用户的,而每个用户都属于一个用户组。 在Linux中,可以同时拥有N多个用户,...

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • 扣丁学堂Linux视频教程之Linux用户和用户组管理详解

    今天扣丁学堂给大家介绍一下关于Linux用户和用户组管理详解,首先Linux系统是一个多用户多任务的分时操作系统,...

  • linux

    linux下用户组、文件权限详解 参考https://www.cnblogs.com/123-/p/4189072...

  • Linux I/O模式及select、poll机制

    Linux IO模式及 select、poll、epoll详解 一. 涉及概念 用户空间与内核空间 进程间切换 进...

  • 五种IO模型的特点以及比较

    资料 Linux IO模式及select、poll、epoll详解 系统调用、用户空间、内核空间 为了保证操作系统...

  • Lniux的top命令

    Linux top命令详解 地址:Linux top命令的用法详细详解_南有南无-CSDN博客_linux top...

  • Linux系统目录规范详解

    Linux目录详解 Linux目录详解(RHEL5.4) 由于linux是开放源代码,各大公司和团体根据linux...

  • linux:SUID、SGID详解

    转自: linux:SUID、SGID详解 前言 由于用户在UNIX下经常会遇到SUID、SGID的概念,而且SU...

  • Linux 文件权限

    Linux chmod命令详解linux 文件属性与权限

网友评论

    本文标题:Linux用户详解

    本文链接:https://www.haomeiwen.com/subject/lednmftx.html