1、用户与组账号

  • 用户账号:包括实际人员和逻辑性对象(例如应用程序执行特定工作的账号)

    每一个用户账号包含一个唯一的用户 ID 和组 ID

    标准用户是系统安装过程中自动创建的用户账号,其中除 root 是管理者外,其余的都是系统账号

  • 组账号:组是逻辑性单元,用来集合特定的用户,以便于其中的所有成员对文件具有相同的访问权限

    标准组是系统自动添加的,其中除 root 组用来组织管理者外,其余的供程序执行时使用

2、账号信息

(1)用户账号信息

有关用户账号的信息都记录在 /etc/passwd 文件中,其中每一行代表一个用户账号信息

每个用户数据中,以 : 分割不同的字段记录,例如 root 管理员的信息:root​:x:​0:0:root:/root:/bin/bash

其中各个字段的含义列举如下:

  • 登陆名称:即用户账号,由 root 或具有相同权限的管理员指定

  • 密码:通常以 x 表示,如果显示 *,则表示此账号停用,可使用 passwd 命令更改自己的密码

    另外,出于安全性的考虑,最好不要直接在 /etc/passwd 文件中指定密码

  • UID:每一个用户账号都有一个唯一的号码,称为 UID,最大可达 65335

    其中 root 的 UID 为 0,并且 500 之前的 UID 都是预留给系统服务使用的,第一个添加的账号的 UID 是 1000

  • GID:每一个组账号都有一个唯一的号码,称为 GID

    其中 root 所属组 GID 为 0,第一个添加的组的 GID 是 1000

  • 用户信息:账号的附加信息

  • 主目录:用户登陆后直接进入的目录,除 root账号是 /root 外,其他账号默认是 /home/username

  • 登陆 shell:用户登陆时使用的 shell,默认是 /bin/bash,用户可以使用 chsh 命令更改登陆 shell

/etc/shadow 文件主要用于密码保护,它是根据 /etc/passwd 产生的一个文件

在 Ubuntu 安装期间默认启用 Shadow Password 和 MD5 密码保护功能

若在系统中使用 /etc/shadow 文件,则利用 /etc/passwd 文件建立账号的方法将会失效

(2)组账号信息

在进行账号管理时,应以组为管理的基本单位,组的信息记录在 /etc/group 文件中,每一行代表一个组账号数据

每个用户数据中,以 : 分割不同的字段记录,例如 root 管理员所属组的信息:root:x:0

  • 登陆名称:组账号名称
  • 密码:通常以 x 表示
  • GID:组账号 ID
  • 用户列表:账号间以 , 隔开

同样的,对于组账号也有一个对应的 /etc/gshadow 文件用于提高账号的安全性

3、添加账号

(1) 添加用户账号

可以使用 useradd 账号名 命令添加用户账号,其常用的参数如下:

参数 描述
-d 指定账号的登陆目录
-e 指定账号的有效期限
-g 指定 GID
-u 指定 UID
-s 指定账号的登陆 shell

(2)添加组账号

可以使用 groupadd 账号名 命令添加组账号,其常用的参数如下:

参数 描述
-g 指定 GID
-o 覆盖原有 GID

4、修改账号

(1) 修改用户账号

可以使用 usermod 账号名 命令修改用户账号,其常用的参数如下:

参数 描述
-l 指定账号的用户名称
-d 指定账号的登陆目录
-e 指定账号的有效期限
-g 指定 GID
-u 指定 UID
-s 指定账号的登陆 shell
-f 缓冲天数
-c 注释

(2)修改组账号

可以使用 groupmod 账号名 命令修改用户账号,其常用的参数如下:

参数 描述
-g 指定 GID
-o 重复使用

5、删除账号

(1)删除用户账号

删除用户账号需要经过以下几个比较繁杂的步骤:

  • /etc/passwd 文件中删除用户记录
  • /etc/shadow 文件中删除用户记录
  • /etc/group 文件中删除与用户同名的组记录
  • 删除用户主目录
  • 删除用户的电子邮件记录,一般存放在 /var/spool/mold 目录下
  • 删除用户的 arontab 设置,一般存放在 /var/spool/cron 目录下

(2)删除组账号

只需要使用命令 sudo groupdel 组名称 即可,但是要注意此时组中任何一个用户不能在系统登陆

6、密码管理

对于普通用户只能更改自己的密码,使用 passwd 命令即可

对于管理员则可以管理所有用户的密码

  • 删除密码:passwd -d 用户名,删除密码后用户无需输入密码就可以直接登陆
  • 锁定密码:passwd -l 用户名,锁定账号后用户无法继续登陆
  • 打开锁定密码:passwd -u 用户名,注意若此账号使用了空白密码,则需要使用 -f 参数强制打开

除了使用命令管理用户密码之外,还可以使用文件管理用户密码

  • 删除密码:将 /etc/paswswd/etc/shadow 文件中的密码字段中的 x 清除
  • 锁定密码:在 /etc/passwd 文件中账号前面加上 锁定账号
  • 打开锁定密码:在 /etc/passwd 文件中账号前面去掉 即可

【Linux学习笔记相关文章】

Linux学习笔记(五) 账号管理的更多相关文章

  1. Linux学习笔记(六) 进程管理

    1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID, ...

  2. Linux学习笔记12—磁盘管理

    一.查看磁盘或目录的容量 1.  df命令 作用:查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 参数: -I : 查看inodes使用状况 -h: 使用合适的 ...

  3. Linux System Programming 学习笔记(五) 进程管理

    1. 进程是unix系统中两个最重要的基础抽象之一(另一个是文件) A process is a running program A thread is the unit of activity in ...

  4. Linux学习笔记<五>

    管道命令(pipe) 1.把一个命令的输出作为另一个命令的输入 ls -al /etc | less 2.选取命令:cut和grep cut命令可以将一段消息的某段切出来. -d接分隔符,-f是取出第 ...

  5. linux —— 学习笔记(用户管理与权限控制)

    目录:1.用户的创建和管理    2.组的创建和管理 3.文件执行权限的控制 4.不用密码执行sudo 1.用户的创建和管理 用户的创建和管理: useradd.usermod . userdel . ...

  6. Linux学习笔记<五>——<Shell部分>

    管道命令(pipe) 1.把一个命令的输出作为另一个命令的输入 ls -al /etc | less 2.选取命令:cut和grep cut命令可以将一段消息的某段切出来. -d接分隔符,-f是取出第 ...

  7. 嵌入式linux学习笔记1—内存管理MMU之虚拟地址到物理地址的转化

    一.内存管理基本知识 1.S3C2440最多会用到两级页表:以段的方式进行转换时只用到一级页表,以页的方式进行转换时用到两级页表.页的大小有三种:大页(64KB),小页(4KB),极小页(1KB).条 ...

  8. Linux学习笔记 -- 磁盘的管理

    df df命令参数功能:检查文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 语法: df [-ahikHTm] [目录或文件名] 选项与参数: -a ...

  9. linux 学习笔记五 查看文件篇章

    1 diff -y  test.txt  test2.txt 输出源文件与目标文件的全部 分为左右两篮 如下 --------------------------------------------- ...

随机推荐

  1. 利用游标返回结果集的的例子(Oracle 存储过程)JAVA调用方法和.NET调用方法

    在sqlplus中建立如下的内容: 1.程序包 SQL> create or replace package types  2  as  3      type cursorType is re ...

  2. UVaLive 6680 Join the Conversation (DP)

    题意:给出n条发言,让你求最大的交流长度并输出标记顺序. 析:这个题要知道的是,前面的人是不能at后面的人,只能由后面的人at前面的,那就简单了,我们只要更新每一层的最大值就好,并不会影响到其他层. ...

  3. maptalks 如何加载 ArcGIS 瓦片图层

    最近需要加载 ArcGIS 瓦片图层,运行官网加载 ArcGIS 瓦片图层的 demo 是没有问题的.如果把 ArcGIS 瓦片图层 URL 换成是自已发布的 ArcGIS 地图服务,发现加载不出来, ...

  4. [Usaco2018 Open]Talent Show

    Description FarmerJohn要带着他的N头奶牛,方便起见编号为1-N,到农业展览会上去,参加每年的达牛秀!他的第i头奶牛重量为wi,才艺水平为ti,两者都是整数.在到达时,Farmer ...

  5. ACM_求N^N的前5位数和后5位数(数论)

    NNNNN Time Limit: 2000/1000ms (Java/Others) Problem Description: 对于整数N,求N^N的前5位和后5位(1057题加强版) Input: ...

  6. ViewPager(3)用viewpager实现tabhost

    1.示例 2.代码 2.1 TabViewPagerMain.java import android.graphics.drawable.Drawable; import android.os.Bun ...

  7. c++类的内存布局

    问题: 考察了reinterpret_cast和static_cast的区别.顺道发现了一个可以查看c++内存布局的工具(在VS中). 结果: 前两个输出的地址形同,后一个不同. class A{in ...

  8. Java 8 (10) CompletableFuture:组合式异步编程

    随着多核处理器的出现,提升应用程序的处理速度最有效的方式就是可以编写出发挥多核能力的软件,我们已经可以通过切分大型的任务,让每个子任务并行运行,使用线程的方式,分支/合并框架(java 7) 和并行流 ...

  9. Apache Calcite项目简介

    文章导读: 什么是Calcite? Calcite的主要功能? 如何快速使用Calcite? 什么是Calcite Apache Calcite是一个动态数据管理框架,它具备很多典型数据库管理系统的功 ...

  10. js截取字符串 区分中英文

    方法如下: //在一个字符串中截取前面部分文字,汉字.全角符号按2个占位,数字英文.半角按一个占位,未显示完的最后加入“……”. //适合多行显示. function suolve(str, sub_ ...