美文网首页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——用户与组(一)

    Bash编程015——用户与组 Linux系统是一个多用户系统,允许多个用户同时登录到系统,使用系统资源。当多个用...

  • Bash编程016——用户与组(二)

    Bash编程016——用户与组(二) 用户与组的管理 管理用户与组的命令工具 useradd,添加新的用户 use...

  • Linux shell

    shell既是命令也是编程语言,是用户与linux内核交互的平台。 熟悉bash命令 bash只是shell的一种...

  • ubuntu 常用命令

    用户相关 添加用户 为用户添加bash 查看用户组 添加到组 查看所有用户 查看所有组 文件操作 增加读写权限ch...

  • Ubuntu 新建用户和组

    Ubuntu 新建用户和组 新建用户: ```java #useradd ekko -m -s /bin/bash ``

  • linux学习笔记---3:shell,vim编辑器及变量操作

    了解shell: shell是用户与内核(kernel)进行交互操作的接口,是一种编程语言。 bash是大多数li...

  • bash脚本编程

    bash脚本之编程交互 脚本参数 用户交互,通过键盘输入数据,从而完成变量的赋值操作 bash -n 脚本 检查...

  • 05_03_bash脚本编程之二 条件判断  、05_04_b

    bash脚本编程之二、条件判断 条件判断: 如果用户不存在 添加用户,给密码并显示添加成功; 否则...

  • linux/shell 分析nginx日志

    一、学习资料 高级Bash脚本编程指南 LINUX与UNIX SHELL编程指南 鸟哥的Linux私房菜 IBM ...

  • Bash编程018——权限管理

    Bash编程018——权限管理 18.1权限介绍 Linux是一个支持多用户的系统,为了区分管理不同用户的文件,L...

网友评论

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

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