第三章 用户管理

3.1 用户/组概览

Linux系统是多用户、多任务的分时操作系统,系统上每一个进程都有一个特定的文件,每个文件都被一个特定的用户所拥有。每个用户都属于一个用户组或者多个组,系统可以对一个用户组中的所有用户进行集中管理。

3.1.1 用户标识:UID与GID

Linux系统并不能识别用户名信息,所以每个用户都有唯一的系统可识别的UID。id命令可以查看当前用户登录信息。UID为用户的ID,GID为用户所属组的ID,groups为用户所有组的ID。

3.1.2 用户/组相关文件

在Linux系统中,所有用户的用户名和密码都存放在/etc/passwd和/etc/shadow这两个文件中。在/etc/passwd文件中,一行记录对应一个用户,每行记录又被冒号分隔为七个字段,依次为用户名称、密码占位符、用户UID、主组GID、注释性描述、用户主目录、用户的Shell;在/etc/shadow文件中,每行记录也由冒号分隔为九个字段,依次为用户名称、加密后的密码、最近改动密码时间、密码不可变更时间、密码重新变更时间、密码过期时间、密码过期宽恕时间、用户失效时间、保留。

3.1.3 超级用户

root用户可以拥有所有系统权限,而且root用户有权力覆盖文件系统上的所有普通权限。系统中大多数设备只能由root控制,如安装或删除软件、管理系统文件和目录等。

3.2 管理用户/组

管理用户与用户组主要是创建、更改与删除等操作。

3.2.1 创建用户/组

使用useradd命令创建用户,不指定任何选项,然后使用grep命令过滤出该用户信息。如果在使用useradd命令时加入了错误的设置数据,或者要对一些信息进行详细的修改,除了直接在/etc/passwd和/etc/shadow这两个文件中修改,也可以使用usermod与gpasswd命令。一个用户可以属于很多组。用户组的信息保存在/etc/group文件中,上面创建的组在该文件的尾部,使用tail命令查看新创建组并没有成员。

3.2.2 删除用户/组

如果一个用户需要被删除,可以使用userdel命令,但若想同时在/home目录与mail spool中删除该用户,则需要添加“-r”参数。若用户已不存在,可以使用“rm-rf”手动删除。

删除一个用户组可以使用groupdel命令,如果某个初始用户正在使用该用户组,则无法删除,此时需要修改该用户的GID或者直接删除该用户。

3.2.3 修改用户密码

任何用户都可以通过passwd命令修改自己的密码,只有root用户可以修改其他用户的密码。普通用户修改密码需要提供原密码。

3.2.4 安全用户

在创建用户时,通过“-s”参数指定用户的登录Shell为/sbin/nologin,可以将其设置为安全用户。当指定某个用户的登录Shell为/sbin/nologin时,此用户无论通过本地还是远程登录的方式都将不能登录系统,也无法实现系统管理。该用户仍可以使用FTP和邮件服务者这种不需要登录系统的服务。因此,这样的用户一般称为安全用户。

3.2.5 配置文件

/etc/login.defs与/etc/default/useradd是命令useradd的配置文件,决定useradd创建用户默认的参数,文件的配置对root用户无效。打开/etc/login.defs文件,第15行为邮件目录,第25~28行为密码相关配置,第71行为密码相关配置。

3.2.6 su/sudo命令

su命令可以进行身份切换,普通用户切换至root用户需要密码,root用户切换至普通用户则不需要密码;加入wheel组的普通用户可以使用sudo命令来执行系统相关操作,用户使用sudo时,必须先输入密码,之后有5分钟的有效时间,超过时限则必须重新输入密码。

3.3 本章小结

本章首先介绍用户与用户组标识符的意义、用户的Shell作用以及如何对用户与用户组进行增、删、改、查等操作;

其次,讲解了如何设置在/etc/passwd和/etc/shadow这两个文件以及useradd的文件配置;最后,演示了用户如何使用su命令进行身份切换,普通用户如何使用sudo命令提权。

Linux第二次周总结的更多相关文章

  1. Linux第二次学习笔记

    #Linux第二次实验(第三周) 学习目标 熟悉Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 熟练使用gcc编译器的常用选项 熟练使用gdb调试技术 熟悉makefile ...

  2. 高手养成计划基础篇-Linux第二季

    高手养成计划基础篇-Linux第二季   本文来源:i春秋社区-分享你的技术,为安全加点温度   前言 前面我们学习了文件处理命令和文件搜索命令,简单的了解了一下Linux,但是仅仅了解这样还不行,遇 ...

  3. Linux第五周学习总结——扒开系统调用的三层皮(下

    Linux第五周学习总结--扒开系统调用的三层皮(下) 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/co ...

  4. Linux第六周学习总结——进程额管理和进程的创建

    Linux第六周学习总结--进程额管理和进程的创建 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/cour ...

  5. Linux第七周学习总结——可执行程序的装载

    Linux第七周学习总结--可执行程序的装载 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/course/ ...

  6. chattr - 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性

    SYNOPSIS(总览) chattr [ -RV ] [ -v version ] [ mode ] files... DESCRIPTION(描述) chattr 修改文件在Linux第二扩展文件 ...

  7. lsattr - 显示文件在Linux第二扩展文件系统上的特有属性

    SYNOPSIS(总览) lsattr [ -RVadv ] [ files... ] DESCRIPTION(描述) lsattr 显示文件在Linux第二扩展文件系统上的特有属性 OPTIONS( ...

  8. Linux第二周学习总结——操作系统是如何工作的

    第二周学习总结--操作系统是如何工作的 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/course/UST ...

  9. 20135316王剑桥 linux第二周课实验笔记

    Linux中命令格式为: command [options选项] [arguments参数] //中括号代表是可选的,即有些命令不需要选项也不需要参数 ls或ls .显示是当前目录的内容,这里“.”就 ...

  10. 20135337朱荟潼 Linux第二周学习总结——操作系统是如何工作的

    一.计算机是如何工作的--总结 三个法宝 存储程序计算机.函数调用堆栈.中断机制 二.堆栈 1.是c语言程序运行时必须的一个记录调用路径和参数的空间. 函数调用框架.传递参数.保存返回地址.提供局部变 ...

随机推荐

  1. 【python基础】文件-初识文件

    文本文件可存储的数据量是非常多的.每当需要分析或修改存储在文件中的信息时,首先就是读取文件到内存中,为此可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取. 1.读取文件 1.1读取整个文件 ...

  2. 在命令行按下tab键之后, 发生了生么?

    1. 引言 2. complete命令 3. 自定义补全列表 4. 动态补全列表 5. compgen命令 6. 别名的自动补全 7. 补全规则永久生效 8. 自动加载 9. 参考 1. 引言 当我们 ...

  3. Java String、StringBuilder、StringBuffer类

    1.String类 创建字符串对象后,字符串对象不可以发生改变,并且这个字符串对象存储在方法区中的字符串常量池中. 即使想改变字符串对象,那么也只是在字符串常量池中重新创建了一个字符串对象而已. 2. ...

  4. Python读取本地文件时出现错误UnicodeDecodeError

    Python读取本地文件时出现错误UnicodeDecodeError: 'gbk' codec can't decode byte 0x94 in position 5702: illegal mu ...

  5. JMH – Java基准测试

    官方资源 官方Github样例 应用场景 对要使用的数据结构不确定,不知道谁的性能更好 对历史方法代码重构,要评判改造之后的性能提升多少 (我要做的场景) 想准确地知道某个方法需要执行多长时间,以及执 ...

  6. 《Effective C++ 改善程序与设计的55个具体做法》读书笔记

    1 .让自己习惯C++ 条款01 视C++为一个语言联邦 C Object-Oriented C++ Template C++ STL C++高效编程守则视情况而变化,取决于你使用C++的哪一部分. ...

  7. mac shell终端命令行快捷键

    Ctrl + d 删除一个字符,相当于通常的Delete键(命令行若无所有字符,则相当于exit:处理多行标准输入时也表示eof) Ctrl + h 退格删除一个字符,相当于通常的Backspace键 ...

  8. Stable Diffusion AIGC:3步成为P图大师

    摘要:instructPix2Pix文字编辑图片是一种纯文本编辑图像的方法,用户提供一张图片和文本编辑指令,告诉模型要做什么,模型根据编辑指令编辑输入的图像,最终输出用户想要的图像. 本文分享自华为云 ...

  9. Vue基础介绍

    一.Vue基本介绍 1.Vue.js目前最火的的一个前端框架,三大主流前端框架之一.与其他重量级框架不同的是,Vue采用自底向上增量开发的设计.Vue的核心库只关注视图层. 2.Vue.js是一套构建 ...

  10. 跟运维学 Linux - 01

    跟运维学 Linux - 01 运维的诞生 运维工程师有很多叫法:系统运维.Linux 工程师.系统管理员... 网管可以说是运维工程师最早的雏形.在个人电脑未普及时,大家去网吧玩游戏. 玩家:&qu ...