足球盘口软件
当前位置: 足球盘口软件 > 前端 >
Linux命令之用户与组管理,用户与用户组管理

Linux的账号和用户组

用户与用户组管理

Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和用户口令。用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录。

linux账号管理相关,linux账号相关

linux系统上的用户登录主机获取shell的环境工作时,是如何进行的呢?

首先在PC前利用tty1~tty7终端机提供的login接口,并输入账号和密码进行登录,输入账号和密码后系统做了什么呢?

a、寻找 /etc/passwd 里面是否有输入的账号,如果没有则跳出,如果有则将该账号对应的 UID 和 GID(在 /etc/group)读出来,此外将该账号的主文件夹和shell设置也一起读出

b 、核对密码表,此时linux会进入到 /etc/shadow 里面找到对应账号的 UID,然后核对刚才输入的密码

c、一切正确,进入shell控制阶段

  1. 介绍

1. 用户和组

登录linux时,需要输入用户账号。linux只认用户ID, 用户ID User ID,简称 UID 用户属于的用户组, Group ID, 简称 GID.

用户与用户组配置文件

用户账号的管理主要涉及到用户账号的添加、删除和修改。

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。,

添加的用户的主要是在用户配置文件中写入新增用户的信息,主要包括以下几个配置文件:用户信息文件vim /etc/passwd,影子文件vim /etc/shadow,组信息文件vim /etc/group,组密码文件 vim /etc/gshadow。

下面我来介绍一下各个文件的内容:

1.用户信息文件vim /etc/passwd

用户名称:密码标志:用户ID(0/1-499/500-65535):GID(用户初始组ID):用户说明:登录后shell

2.影子文件vim /etc/shadow

用户名:加密密码(!或者*表示无密码无法登陆):密码最后一次修改日期:两次密码修改间隔:密码有效期:密码修改前期的警告天数:密码过期后的宽限天数(0:密码过期后立即失效,-1:永远不会失效):账号失效时间

3.组信息文件vim /etc/group

组名:组密码标志:GID:组中附加用户

4.组密码文件 vim /etc/gshadow

组名:组密码:组管理员用户:组中附加用户

1、/etc/passwd 文件结构解析

该文件的每一行都代表一个账号,有几行就有几个账号,里面有很多账号是系统运行所必要的账号

图片 1

由于每一行的结构相同,这里分析第一行作为示例,每个字段是以 “ :”进行分割的,共有7个字段

root  :x    :0   :0  :root  :/root  :/bin/bash
 1     2    3     4    5      6         7

字段1:root 为账号,用来对应 UID

字段2:密码,早起的UNIX系统的密码放置在该字段上,因为这个文件的特性是所有程序都能访问和读取,这样密码很不安全, 就将密码统一放置到 /etc/shadow中了,所以这里看到一个未知数 x.

字段3:UID ,如果UID为0,表示这个账号是系统管理员,1-499保留给系统使用的UID,500-65535给一般用户使用

字段4:GID,这个和/etc/group 有关,规定组名和 GID的对应关系

字段5:用户信息说明列

字段6:用户的主文件夹,该例子中,root账号的主文件夹是/root,普通用户的主文件夹默认为 /home/yourIDname中

字段7:shell,当用户登录系统后就会取得一个shell来与系统的内核通信以便进行用户的操作,为什么shell会使用bash呢?就 是这个字段指定的

  Linux操作系统中,任何文件都归属某一特定的用户,而任何用户都隶属至少一个用户组。用户是否有权限对某文件进行访问、读写以及执行,受到系统严格约束的正式这种清晰、严谨的用户与用户组管理系统。在很大程度上保证了Linux系统的安全。

2. 用户账号

用户账号在linux下与两个文件有关: /etc/passwd 和 /etc/shadow. /etc/passwd 保存用户账号信息。 /etc/shadow 是专门管理密码相关的数据。
/etc/passwd 文件

$ head -4 /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

每行代表一个账号,里面有些账号是系统运行需要的,简称为系统账号, 比如 bin , daemon, adm, nobody 等。
使用 : 分隔,共7个字段: 1: 账号名称 2: 密码 早期保存密码,密码数据现在保存到/etc/shadow 中,所以现在是 x 代替。 3: UID 0:为系统管理员, 1-499: 系统账号, 500-65535: 一般用户账号。 4: GID 组ID 5: 用户信息说明列 6: 主文件夹 用户登录后,会到该用户主目录中,默认的用户主目录为 /home/yourID name 7: shell 用户登录后取到的shell。
/etc/shadown文件

$ head -4 /etc/shadow
root:$1$l0aFE9hs$d1/FIMqIl3foYUl3ETyk10:16353:0:99999:7:::
bin:*:13361:0:99999:7:::
daemon:*:13361:0:99999:7:::
adm:*:13361:0:99999:7:::

查看权限,一般设置为root只读

ll /etc/shadow
-r--------  1 root root 1085 Nov 21 03:40 /etc/shadow

按照:分隔,共9个字段 1:账号名称 2:密码 经过加密的密码字段。 3:最近改动密码的日期 为1970-01-01累加的天数。 4:密码不可被改动的天数 0表示不限制 5:密码需要重新修改的天数 99999计算后为273年, 6:密码需要更改期限前的警告天数 7:密码过期后账号宽限时间 还可以登录,登录后强制修改密码 8:账号失效日期 账号将不能再使用 9:保留字段

用户相关文件

用户除了一些配置文件外还会自动生成一些用户相关文件,主要包括以下这些文件:

家目录:普通用户/home/,用户名超级用户/root/。

用户的邮箱:/var/spool/mail/用户名/。

用户模板目录:/etc/skel/(创建新用户后家目录中会产生的文件)。

2、/etc/shadow 文件结构解析

程序的运行和文件的权限有关,而权限和 UID 和 GID 有关,因此程序要读取 /etc/passwd 来知道不同账号的权限,因此 /etc/passwd 的权限需要设置为 -rw-r--r--这样的情形。为了安全将密码移至 /etc/shadow中

图片 2

root :$6$0PGn...F8W.17D. :17600  :0   :99999  :7   :  :  :
  1         2                3    4      5     6   7  8  9

每一行表示一个账号,共有9个字段,同样也是以 “:”进行字段分隔的

字段1:账号,必须与 /etc/passwd相同才可以

字段2:密码,经过加密之后的密码

字段3:最近更改密码的日期,示例中为 17600,因为时间的基准是1970年1月1日,到1971年1月1日为366

字段4:密码不可被更改的天数,相对于字段3而言,这个字段记录了账号的密码在最近一次更改户需要多少天之后才可以被更改

,为0表示随时可以更改,如果设置为10,设置密码之后,表示10天之内不能被更改

字段5:密码需要重新更改的天数,相对于字段3,为了强制用户不定期更改密码,这个字段可以指定在最近一次更改密码后在多 少天内需要再次更改密码,因此设置之后,必须在这个天数内更改密码,否则这个账号的密码会变为过期特性,如果是 99999,就是293年,表示密码更改没有强制之意

字段6:密码需要更改期限前的警告天数,相对于字段5,依据字段5,系统设置发出告警通知用户再过多少天密码过期的天数

字段7:密码过期后的账号宽限时间(密码失效日),像对于字段5,更新日期(字段3)

  • 重新更改日期(字段5) = 密码有效期日 期,过了该期限,登录账号是系统会强制账号修改密码

字段8:账号失效日期,相对于字段5,也是以1970位时间基准,这个个账号在此字段规定的日期后,将无法使用

字段9:保留字

大篇幅的文字容易混淆,这里举个例子加深理解:

1、最近一次修改密码的时间为2009/02/24,即字段3的值

2、密码不可更改的天数设置为5天,即字段4为5,意味着2009/03/01以前不能修改该账户自己的密码

3、密码需要重新更改的天数为60天,即字段5设置为60天,所以表示日期为2009/04/25,所以用户必须在2009/03/01到 2009/04/25之间的60天内修改密码,否则该密码过期

4、警告日期为7天,即字段6为7,即是密码过期的前7天,表示在2009/04/19-2009/04/25之间,如果用户没有修改密码,系 统会提示修改密码,如果一直到2009/04/25一直没有修改密码,则密码就过期了

5、字段7为5,表示密码过期后的宽泛期,由于在2009/04/25之前都没有修改密码,导致密码过期,但是由于有5天的宽泛期

因此用户还可以使用原来的账号和密码进行登录,不过登录时会出现强制修改密码的情况

 Linux账号分类

3. 用户组

用户组数据保存在/etc/group 文件中

$ head -4 group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm

一行代表一个用户组,文件以 : 分隔,共4列
1: 用户组名称 2: 用户组密码 通常不需要设置,密码文件为 /etc/gshadow 3: GID 4: 用户组支持的用户。
初始用户组initial group: 在/etc/passwd 中的GID为用户初始用户组 有效用户组 一个用户可以有多个组,当前所在用的组为有效用户组

$ groups
root bin daemon

使用groups命令查看用户的组,第一个出现的为有效用户组。
使用 newgrp groupname 可以切换组。

/etc/gshadow 组密码文件

head -4 /etc/gshadow   
root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin,adm

使用:分隔,4列 1:组名称 2:密码 3:用户组管理员账号 4:用户组的所属用户账号。

1. 用户和组 登录linux时,需要输入用户账号。linux只认用户ID, 用户ID User ID,简称 UID 用户属于的用户组, Group ID, 简称...

命令

下面是一些用户管理的命令:

useradd 用户名 →增加新用户

         -u UID    →手工指定用户的UID号

      -d 家目录 →手工指定用户的家目录

         -c 用户说明 →手工指定用户的说明

         -g 组名   →手工指定用户的初始组

         -G 组名  →指定用户的附加组(用,分开)

       -s shell   →手工指定用户的登陆shell。默认是/bin/bash

 

 

 

 

 

passwd命令:

 

 

 

修改用户信息usermod命令:

 

 

 

修改用户密码状态chage:

 

 

 

 

 

修改组groupmod

 

 

 

删除用户userdel:

 

 

 

 

 

id 用户名 →查看用户ID

 

su命令:

 

 

 

env →查看用户环境变量

 

su –root –c “useradd zzz” →不切换root,但是执行useradd命令添加zzz用户

 

3、有效与初始用户组

认知了账号和密码所在文件后,那用户组的配置文件存放在何处呢?

在/etc/passwd 中第4个字段为 GID ,此时需要了解到 /etc/group 和 /etc/gshawod文件

图片 3

同上面,也是以":"进行分隔

字段1:用户组名

字段2:用户组密码,同样密码移至到 /etc/gshadow中

字段3:GID,和 /etc/passwd 中的第4个字段对应

字段4: 此用户组支持的账号名称

一个账号可以加入到多个用户组中,如daemon账户中加入了daemon用户组,用户组之间使用逗号,不要有空格

图片 4

切换到普通账户下,查看其用户组,发现账户rhx支持的用户组为 rhx ,通过vim命令进入到 /eyc/group中,找到GID 为500 的用户所对应的账号,但是这里显示的是空的,因为这是初始用户组,用户一登录就会主动获得,不需要在字段4上填写该用户所支持的账号名称了

图片 5

那什么是有效用户组合初始用户组呢?

所谓的 GID 就是对应的初始用户组,用户一登录就会拥有这个用户组的相关权限

那什么是有效用户组呢?

通过groups命令查询

[root @localhost ~]#groups

查询的结果中第一个组就是用户的有效组了,可以不可以修改有效组呢,当然可以,使用命令newgrp

[root @localhost ~]#newgrp users

/etc/gshadow

图片 6

字段1:用户组名

字段2:密码

字段3:用户组管理的账号

字段4:用户组所属账号 

linux系统上的用户登录主机获取shell的环境工作时,是如何进行的呢? 首先在PC前利用tty1~tty7终端机提供的...

    用户账号    -用来存储单一用户的数据

    用户账号分为:

      超级账户:拥有完全控制权,用户名通常称为root,其UID为0

      普通账户

    系统账户    -这种账户提供给Linux系统本身使用,UID在1-499之间

    真实用户    -UID在500-4,294,967,295之间

    群组账号    -用来存储多个用户的信息,每个群组账号可以用来记录一组用户的数据

      群组账号分类:

        超级用户组:  -root的用户群组称为超级用户组

          超级用户组GID(群组标识符)为0,隶属于超级用户群的成员,不具备系统管理的权利

        系统群组:     -GID范围为1-499

    用户自定义组:  -上述群组外的都是自定义群组GID范围500-4,294,967,293

  2.用户账号文件-passwd

    位于/etc/passwd,每一行保存一个用的资料,用户的数据按域以:分割,每行的数据格式是:

    username:password:uid:gid:userinfo:home:shell

    username:登录名

    password:加密的登录口令

    uid:用户的ID

    gid:用户组ID

    userinfo:用户信息

    home:分配给用户的主目录

    shell:用户登录后将执行的shell(若为空格则默认为/bin/sh)

  3.用户影子文件-shadow

    位于:/etc/shadow,每行保存一条数据,每条用:分割成9个域,格式为

    username:password:lastchg:min:max:warn:inactive:expire:flag

    username:用户登录名

    password:加密的用户口令

    lastchg:表示从1970年1月1日起到上次修改口令所经过的天数

    min:表示两次修改口令之间至少经过的天数

    max:表示口令还会有效的最大的天数,如果是99999则表示永不过期

    warn:表示口令失效前多少天内系统向用户发出警告

    inactive:表示禁止登录前用户名还有效的天数

    expire:表示用户被禁止登录的时间

    flag:保留域,暂未使用

  4.用户组账号文件-group和gshadow

    位于/etc/group和/etc/gshadow

    group的格式是:group_name:group_password:group_id:group_members

    members:以逗号分隔的成员清单

    gshadow的格式是:group_name:group_password:group_members

  5.用户和用户组账号管理命令

 

    useradd  -添加用户

    语法:useradd [参数] {username}

    参数:-u UID   用来指定UID

    -g GROUP      定义用户的群组,群组必须已经存在

    -G GROUP      指定用户的次要的群组,可以指定多个群组,用,连接

    -d HOME       指定用户的主目录

    -s SHELL     指定用户登录执行的程序

    -r      建立一个系统用户的账号

    passwd username    更改username的密码

 

    usermod  -修改使用者账号

    语法:usermod [参数] {username}

    参数:-u UID  修改UID

    -g GROUP     修改主要群组

    -G GROUP     修改次要群组

    -d HOME     修改家目录

    -s SHELL     修改可执行程序

    -l NEWNAME      修改用户名

    -L       锁定账号

    -U     解除锁定

 

    userdel   -删除系统中的用户信息

    语法:userdel [参数] {username}

    参数:-r      删除用户的主目录和邮箱

 

    groupadd  -创建新的用户组

    语法:groupadd [参数] {groupname}

    参数:-g UID   指定用户组的UID

    -r       指定添加的群组成为系统群组

    -f       强制执行,(建立相同UID的群组)

 

    groupmod  -修改用户组属性

    语法:groupmod [参数] {groupname}

    参数:-g GID   修改GID

    -n newName    修改群组的名称

    

    groupdel  -删除用户组

    groupdel groupname

上一篇:没有了 下一篇:没有了
返回顶部