美文网首页bash
Bash编程015——用户与组(一)

Bash编程015——用户与组(一)

作者: 若梦儿 | 来源:发表于2019-01-07 21:02 被阅读2次

    Bash编程015——用户与组

    Linux系统是一个多用户系统,允许多个用户同时登录到系统,使用系统资源。当多个用户同时使用系统时,需要区分不同的用户,这就需要一种秩序,规范每个用户的权限。Linux采用用户账户来区分不同的账户,账户实际上是一个用户在系统上的标识,系统根据账户ID来区分每个用户的文件、进程、任务等资源,并给每个用户提供特定的工作环境,使每个用户的工作都能独立进行。

    15.1 介绍

    广义上来讲,Linux账户可以分为用户账户和组账户。

    每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,才能进入系统。用户账户分为两种:普通用户账户和超级用户账户(root,或者叫管理员账户)。普通用户可以使用受限的系统资源,管理员账户拥有绝对的控制权,可以管理普通用户和真个系统。

    组是用户的集合,一般有两种类型的组:私有组和标准组。当创建一个新用户时,若未指定所属组,系统则会创建一个和该用户同名的私有组。标准组可以包含多个用户,在创建新用户时可以明确指定其所属的组。一个用户可以同时属于多个组,此时,其登陆后所属的组称为主组,其他的组称为附属组。

    15.2 账户系统文件

    主要有:/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow四个文件。

    下面逐一介绍这些文件:

    1./etc/passwd

    该文件每行定义一个用户账户,一行中又换分为多个字段定义用户的不同属性,各字段之间用:分隔。

    # 查看当前登录用户和root用户的信息
    cat /etc/passwd | egrep "`whoami`|root"
    # 输出如下:
    root:x:0:0:root:/root:/bin/bash
    ruo:x:1000:1000:ruo,,,:/home/ruo:/bin/bash
    
    1. 用户名字段,这是用户登录系统时使用的用户名,在系统中是唯一的。
    2. 口令字段,存放加密后的口令(密码),这里一般显示为x表示存放在/etc/shadow文件中。
    3. 用户标志号(UID),一个整数,系统内部用它来标识用户,root用户的UID为0。1~499为标准账户,普通用户账户从500开始。
    4. 组标识号(GID),一个整数,系统内部用它来标识用户所属的组。每个用户账号在建立后都会有一个主组,主组的相同的账号GID相同。默认,创建一个用户时建立一个同名的私有组,只有用户本人一个成员。
    5. GECOS,存放用户全名、地理位置等信息。
    6. 主目录位置,存放用户登录系统后进入的目录。
    7. 默认shell

    2./etc/shadow

    /etc/passwd文件对任何用户都可读,加密后的密码存放在/etc/shadow文件中,只有root用户可读。

    # 查看root和当前用户的密码
    sudo cat /etc/shadow | egrep "$(whoami)|ruo"
    root:$6$Jx9MU/2i$nNoe.c6oFiVGuJPH1WkV2IogeTLJ4D3n9tdMQ1up0AT1XWnFBBRzoYoAGneaq0Oqug0wTWiqIIR/n6vTL1.zb0:17900:0:99999:7:::
    ruo:$6$8vKvW/Gv$XKi9zEkammkVaT4/4/Jq4rHFaPsQ.L94c9T1SVdaZKzCOylQQTsSaVfA2x1LBeGQPM8CJjkKtHFusZ291qrnv.:17872:0:99999:7:::
    

    3./etc/group

    该文件记录用户所属的组,一个组可以用多个用户,一个用户也可以属于多个组。当一个用户同时属于多个组时,/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的主组,其他组称为附属组。

    # 常看当前登录用户所属组
    cat /etc/group | grep $(whoami)
    adm:x:4:syslog,ruo
    cdrom:x:24:ruo
    sudo:x:27:ruo
    dip:x:30:ruo
    plugdev:x:46:ruo
    lpadmin:x:113:ruo
    ruo:x:1000:
    sambashare:x:128:ruo
    

    各字段说明:

    1. 组名,该组的名称;
    2. 组口令,已经不再使用该字段保存口令,使用x占位
    3. GID,组的标识号和UID类似
    4. 组成员,属于该组的成员,多个成员间以,间隔

    4./etc/gshadow

    该文件用于定义用户组口令、组管理员等信息,该文件只有root用户可以读取。

    sudo cat /etc/gshadow | grep $(whoami)
    # 输出如下:
    adm:*::syslog,ruo
    cdrom:*::ruo
    sudo:*::ruo
    dip:*::ruo
    plugdev:*::ruo
    lpadmin:!::ruo
    ruo:!::
    sambashare:!::ruo
    

    字段解释:

    1. 组名,组名称
    2. 组口令,保存已经加密的口令
    3. 组的管理员账户,管理员可以对该组添加、删除账户
    4. 组成员,属于该组的用户,多个用户以,间隔

    相关文章

      网友评论

        本文标题:Bash编程015——用户与组(一)

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