第一章:Linux‘’用户和组的管理‘’

第一章:Linux‘’用户和组的管理‘’

  • @一、Linux用户身份概述

    • @1.1 Linux用户介绍

    • @1.2 三个重要passwd,shadow,group文件的介绍

      • @1.2.1 passwd文件
      • @1.2.2 shadow文件
      • @1.2.3 group文件
  • @二、创建Linux用户

    • @2.1 添加Linux用户——useradd
    • @2.2 设置Linux用户密码——passwd
  • @三、管理Linux用户

    • @3.1 设置Linux用户账号——usermod
    • @3.2 删除Linux用户账号——userdel
  • @四、创建与管理Linux用户组

    • @4.1 创建Linux用户组——groupadd

    • @4.2 管理Linux用户组——groupdel groupmod

      • @4.2.1 删除用户组
      • @4.2.2 修改用户组
  • @五、查看用户UID、GID、groups

  • 学习目标:
    • 描述Linux系统上用户和组的用途
    • 配置sudo权限
    • 创建、修改、删除本地用户
    • 创建、修改、删除本地组
    • 创建、修改、删除本地组

一、Linux用户身份概述

用户账户是为在不同的人员和不同的程序间提供隔离,对外,用户使用用户名供人们使用。对内,系统分配唯一标识号(UID)来区分不同的账户。操作系统内部,每一个程序都作为特定用户执行。每一个文件,都属于特定的用户。

1.1 Linux用户介绍

用户账户有三种主要类型:超级用户、系统用户和普通用户

  1. 超级用户账号用于管理系统,超级用户的名称为root,其账户UID为0.超级用户对系统具有完全访问权限。
  2. 系统用户账号供系统服务进程使用,用户无法使用系统用户账户以交互方式登陆。
  3. 普通用户账号用于处理日常工作的普通用户账号。

Linux用户有以下三类,每一个用户都有一个数值,称为UID

超级 用户root 系统用户 普通用户
权限 具有一切权限 为了满足相应的系统进程对文件属主的要求而建立的系统用户不能用来登录 由管理员赋予的一般权限
功能 管理系统的各项功能,如添加/删除用户、启动/关闭服务进程、开启/禁用硬件设备 功能:Linux系统正常工作所必需的内建的用户,例如:bin、daemon、adm、lp等 由管理员创建的用于日常工作的用户
UID 0 1~999 从1000开始
  • Linux不像Windows那样有专门的数据库用来存放用户的信息,LinuxLinux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有/etc/passwd/etc/shadow/etc/group这几个。
  • 账号的管理实际上就是对这几个文件的内容进行添加、修改和删除
    记录行的操作。
  • Linux系统为了自己的安全,默认情况下只允许超级用户更改它们。
/etc/passwd 用户帐号信息保存在passwd文件中(重要)
/etc/shadow 用户的加密口令保存在shadow文件中(重要)
/home/teacher 用户的宿主目录是home目录中与用户名称相同的目录
/etc/group 用户的初始配置文件来在skel目录(配置模版)
/etc/skel 用户的初始配置文件来在skel目录(配置模版)

1.2 三个重要passwd,shadow,group文件的介绍

1.2.1 passwd文件

(1)/etc/passwd文件每一行都表示的是一个用户信息,一行有7个字段;每个段位用分割。

[root@VM-16-3-centos ~]# cat -n /etc/passwd1  root:x:0:0:root:/root:/bin/bash2  bin:x:1:1:bin:/bin:/sbin/nologin3  daemon:x:2:2:daemon:/sbin:/sbin/nologin4  adm:x:3:4:adm:/var/adm:/sbin/nologin

(2)每一段的解释:

账号名称 :密码 : UID : GID : 个人资料 : 主目录 : Shell
root:      x:     0:     0:      root:   /root:   /bin/bash
第一       第二   第三    第四     第五       第六    第七
  • 第一字段:用户名(也被称为登录名)
  • 第二字段:密码;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow 文件中
  • 第三字段:UID ;用户ID
  • 第四字段:GID;用户组的ID
  • 第五字段:用户名全称,这是可选的 注释性的说明
  • 第六字段:用户的家目录所在位置;root 这个用户的家目录是/root
  • 第七字段:用户所用SHELL 的类型,root用的是 bash;所以设置为/bin/bash

1.2.2 shadow文件

(1)在/etc/passwd文件中,有一个字段是用来存放经过加密的密码。我们先来看以下passwd文件的权限。

[root@VM-16-3-centos ~]# ll -d /etc/passwd
-rw-r--r-- 1 root root 1255 Feb 28 14:45 /etc/passwd

(2)可以看到任何用户对它都有读的权限。为了保证系统的正常运行和安全,Linux系统对密码提供了更多一层的保护,即把加密后的密码重定向到另一个文件/etc/shadow。

[root@VM-16-3-centos ~]# ll -d /etc/shadow
---------- 1 root root 717 Feb 28 14:45 /etc/shadow

(3)shadow文件一共有9个字段来表示跟密码有关的部分,每个字段用‘’来分隔。

[root@VM-16-3-centos ~]# cat /etc/shadow
root:$1$jsCNhEKR$yxMUZ8ZcIhGOpkn06irDB/:19051:0:99999:7:::

(4)每一段的解释

root:$1$jsCNhEKR$yxMUZ8ZcIhGOpkn06irDB/:19051:0:99999:7:::root  :$1$jsCNhEKR$y/      :19051         :0         :99999         :7          :        :       :
用户名    密码          最后一次修改时间  最小时间间隔  最大时间间隔    警告时间   不活动时间  失效时间  标志    
  • 用户名:和/etc/passwd文件中相对应的用户名。
  • 密码:存放加密后的口令(密码)。密码字段为“*”表示用户被禁止登录,为“!!”表示密码未设置,为“!”表示用户被锁定。
  • 最后一次修改时间:用户最后一次修改口令的时间(从1970-1-1起计的天数)。
  • 最小时间间隔:两次修改口令允许的最小天数。
  • 最大时间间隔:口令保持有效的最多天数,即多少天后必须修改口令。
  • 警告时间:从系统提前警告到口令正式失效的天数。
  • 不活动时间:口令过期多少天后,该账号被禁用。
  • 失效时间:指示口令失效的绝对天数(从1970-1-1开始计算)。
  • 标志:未使用。

1.2.3 group文件

(1)Linux的组:私有组、系统组、标准组之分。

  • 私有组:建立账户时,若没有指定账户所属的组,系统会建立一个组名和用户名相同的组,这个组就是私有组,这个组只容纳了一个用户。
  • 标准组:可以容纳多个用户,组中的用户都具有组所拥有的权利。
  • 系统组: Linux系统正常运行所必需的,安装Linux系统或添加新的软件包会自动建立系统组。

(2)组的名称:组的密码 gid:组成员

[root@VM-16-3-centos ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:   x:     3:
组名   组密码  gid 组成员 

二、创建Linux用户

2.1 添加Linux用户——useradd

  1. 使用adduser / useradd命令创建账户时,默认的用户家目录会被存放在/home目录中,默认的Shell解释器为/bin/bash,而且默认会创建一个与该用户的基本用户组。
  2. 语法格式:useradd【选项】用户名 表示创建一个用户 默认该用户的家目录在/home/用户名 登陆该用户会默认切换到该用户的家目录下
  3. 常用选项

注意区分大小写

命令 所执行的操作
-e 账户的到期时间,格式为YYYY-MM-DD
-u 指定该用户的默认UID
-d 指定用户的家目录(默认为/home/username),使用语法 useradd -d /home/username username 表示创建一个用户叫username 并把它的家目录在home username下
-g 指定一个初始的已存在用户基本组
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认Shell解释器
  1. 实例

(1)在系统中添加Linux用户test,观察添加用户后系统有什么变化?

[root@VM-16-3-centos ~]# useradd test

(2)在/etc/passwd文件中会看到增加了一行:

[root@VM-16-3-centos ~]# tail -l /etc/passwd
test:x:1001:1001::/home/test:/bin/bas

(3)在home目录下出现test同名宿主目录,test对/home/test目录有所有权限,其他用户无任何权限。

[root@VM-16-3-centos ~]# cd /home/
[root@VM-16-3-centos home]# ll
drwx------ 2 test       test       4096 Apr 27 17:33 test

(4)在/etc/group文件中也会增加一行

[root@VM-16-3-centos home]# tail -l /etc/group
test:x:1001:

(5)在/etc/shadow文件中也会增加一行:

[root@VM-16-3-centos ~]# tail -l /etc/shadow
test:!!:19109:0:99999:7:::
  • Linux的权限

    c8177f3e6709c93d1a907ea5903df8dcd1005405.png

pwd​​ 命令可以显示当前在哪个目录下

2.2 设置Linux用户密码——passwd

  1. passwd命令用于修改用户密码、过期时间、认证信息等
  2. 普通用户只能使用passwd命令修改自身系统密码,而root管理员则有权限修改其他所有人飞密码。并且root管理员在Linux系统中修改自己或他人的密码时不需要验证旧密码。
  3. 语法格式:passwd【选项】【用户名】
  4. 常用选项:注意大小写
命令 所执行的操作
-d 使改账户可以用空密码登录
-l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
-S 显示用户的密码是否被锁定,以及密码所采用的加密方式
-e 强制用户在下次登录时修改密码

三、管理Linux用户

3.1 设置Linux用户账号——usermod

  1. usermod命令用于修改用户的属性。用户的信息保存在/etc/passwd文件中,可以用文本编辑器来修改其中的用户参数项目,也可以用usermod命令修改已经创建的用户信息,例如用户的UID、基本扩展用户组、默认终端等。
  2. 语法格式:usermod【选项】用户名
  3. 常用选项:注意大小写
选项 所执行的操作
-c comment 改变用户的注释(备注),如:全名、地址、办公室电话、家庭电话等
-d -m dir 改变用户的主目录 参数-m与参数-d可以连用,可重新指定用户的家目录并把旧的文件转移过去
-e 修改用户的有效日期 格式 YYYY-MM-DD
-L 锁定用户密码,使密码无效。锁定用户禁止其登录系统
-U 解除密码锁定,解锁用户,允许其登录系统
-f days 在密码到期的days天后停止使用账户
-g GID或组名 修改用户的所属基本组
-G 变更扩展用户组
-l name 更改账户的名称,必须在该用户未登录的情况下才能使用
-p 修改用户的密码
-u UID 改变用户的UID为新的值,改变用户的UID时主目录下所有该 用户所拥有的文件或子目录将自动更改UID,但对于主目录之 外的文件和目录只能用chown命令手工进行设置
-s Shell 修改用户的登录shell

3.2 删除Linux用户账号——userdel

  1. 语法格式:userdel【选项】用户名
  2. 常用选项:
选项 所执行的操作
-f 强制删除用户
-r 删除用户时将用户主(家)目录下的所有内容一并删除,同时删除用户本地邮件存储的目录或文件,对于用户在别的目录下所拥有的文件只能手动删除
  1. 如果我们确认某位用户后续不会再登陆到系统中,则可以通过userdel命令删除该用户的所有信息。在执行删除操作时,该用户的家目录默认会保留下来,此时可以使用-r参数将其删除 。

四、创建与管理Linux用户组

4.1 创建Linux用户组——groupadd

  1. 为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同一个组里面,这样便可以针对一类用户统一安排权限
  2. 语法格式:groupadd【选项】群组名
  3. 常用选项:
选项 所执行的操作
- g GID 指定新组的GID,默认值是已有的最大的GID加1
-r 建立一个系统专用组,与-g不同时使用时,则分配一个1~999的GID

4.实例

[root@VM-16-3-centos ~]# groupadd -g 2000 test1
/*表示添加一个新组,组ID为2000,组名为test1*/
  1. 注意:上面已经介绍了普通用户UID是从1000开始的

4.2 管理Linux用户组——groupdel groupmod

4.2.1 删除用户组

  1. groupdel命令: 删除指定名称的用户组帐号
  2. 语法格式:groupdel 群组名
  3. 注意! :需要从系统上删除群组时,可用groupdel指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后(删除用户上面说明了),才能删除群组。

4.2.2 修改用户组

  1. groupmod命令:修改用户组的相关信息

五、查看用户UID、GID、groups

  1. 此命令可以查看用户的相应信息。
  2. 语法格式:id 【要查找的用户名称】
命令 所执行的操作
id 使用ID命令显示当前已登录的用户信息
id username 使用id username显示其他用户的信息
/*1.使用id命令显示当前已登录的用户信息*/
[root@VM-16-3-centos ~]# id
uid=0(root) gid=0(root) groups=0(root)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/787704.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

远程观看群晖里面的视频(webdav)

前言 本文使用 webdav 服务加 tvbox 来实现远程播放群晖中的视频,关于 webdav 服务曾在[[黑群晖同步obsidian]] 中提及。本次也是使用类似的操作方式 配置黑群晖 配置 webdav 并创建共享文件夹 为了方便,此处我直接复制了黑群晖同步 obsidian 这篇博客中相关内容 首先下载套件…

远程观看群晖里面的视屏(webdav)

前言 本文使用 webdav 服务加 tvbox 来实现远程播放群晖中的视频,关于 webdav 服务曾在[[黑群晖同步obsidian]] 中提及。本次也是使用类似的操作方式 配置黑群晖 配置 webdav 并创建共享文件夹 为了方便,此处我直接复制了黑群晖同步 obsidian 这篇博客中相关内容 首先下载套件…

java连接sqlite数据库

首先下载jar包(每种数据库有自己jar包) 然后idea里创建新项目并且在项目里创建lib文件里面放jar包 接着导入jar包然后apply->ok 这样就连上 如果要可视化数据库DB Browser最后测试连接Test Connection看数据库连上没 结果:

Adobe Lightroom Classic LRC v13.5 下载及安装教程 (图像后期处理软件)

前言 Adobe Lightroom Classic为您提供强大的一键式工具和高级控件,使您的照片看起来很棒。轻松整理桌面上的所有照片,并以多种方式共享。使用Lightroom Classic,您需要具备所有桌面编辑工具,才能充分发挥照片的作用。增强色彩,使沉闷的镜头充满活力,去除分散注意力的物体…

详细分析平衡树-红黑树的平衡修正 图文详解(附代码) (万字长文)

目录红黑树简述性质/规则主要规则:推导性质:红黑树的基本实现struct RBTreeNodeclass RBTree红黑树的插入红黑树插入修正前言什么时候需要变色:变色的基础:为什么需要旋转与变色变色:旋转需要修正的所有情况先认识最简单的情况1. 叔叔是红色结点注意:2.没有叔叔结点3. 叔叔是黑…

手搓平衡搜索树-红黑树 平衡修正 图文详解 (万字长文)

目录红黑树简述性质/规则主要规则:推导性质:红黑树的基本实现struct RBTreeNodeclass RBTree红黑树的插入红黑树插入修正前言什么时候需要变色:变色的基础:为什么需要旋转与变色变色:旋转需要修正的所有情况先认识最简单的情况1. 叔叔是红色结点注意:2.没有叔叔结点3. 叔叔是黑…

语言图像模型大一统!Meta将Transformer和Diffusion融合,多模态AI王者登场

前言 就在刚刚,Meta最新发布的Transfusion,能够训练生成文本和图像的统一模型了!完美融合Transformer和扩散领域之后,语言模型和图像大一统,又近了一步。也就是说,真正的多模态AI模型,可能很快就要来了! 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技…

vue-cli中chainWebpack的使用

前言 在项目开发中我们难免碰到需要对webpack配置更改的情况,今天就主要来讲一下在vue.config.js中对一些配置的更改,简单介绍一下loader的使用;用configureWebpack简单的配置;用chainWebpack做高级配置;包括对loader的添加,修改;以及插件的配置 1、首先简单介绍一下web…

元气日语 Genki-1 第 3 课 约会

课文 I たけし: メアリーさん、週末はたいていなにをしましか。 メアリー: そうですね。たいていうちで勉強します。でも、ときどき映画を見ます。 たけし: そうですか...。じゃあ、土曜日に映画を見ませんか。 メアリー: 土曜日はちょっと…。 たけし: じゃあ、日曜…

ICML 2024 | 全新图卷积!Mila和华为提出CKGConv:连续卷积核的图卷积网络

前言 在ICML2024上,来自麦吉尔大学, Mila魁北克人工智能研究所以及华为诺亚方舟实验室的研究者发表了一个基于连续卷积核(continuous kernel)的全新图卷积算子(图连续卷积CKGConv),基于此算子的纯图卷积网络(CKGCN)在多个图任务中同样能够达到媲美SOTA图Transformer的性能。…

ArcGIS创建渔网工具的使用方法

本文介绍在ArcMap软件中,通过“Create Fishnet”工具创建渔网,从而获得指定大小的矢量格网数据的方法~本文介绍在ArcMap软件中,通过“Create Fishnet”工具创建渔网,从而获得指定大小的矢量格网数据的方法。首先,我们在创建渔网前,需要指定渔网覆盖的范围。这里我们就以四…

Macos系统使用JPackage打包dmg

JPackage打包工具 从 Java 14 开始,jpackage 是 Oracle 加入 JDK 的一个工具用于打包 Java 应用程序为本地安装包,例如 Windows 上的 EXE 文件,macOS 上的 DMG 文件或者 Linux 上的 DEB 和 RPM 文件。 JPackage打包dmg命令 示例 ./jdk17/bin/jpackage \ --type dmg \ --inpu…