第三章 用户管理

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. Kafka 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

    如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? >幂等性,通俗点说,就一个数据,或者一个请求,给你重复来多次,你得确保对应的数据是不会改变的,不能出错. kafka 的机制:  K ...

  2. ##Can not deserialize instance of java.lang.String out of START_OBJECT token

    请求中定义了一个String字段,该字段主要是一个JSON Object字符串,对应的Java PO的相关字段类型是String. 但是测试的时候传的参数是JSON对象,例如{"aa&quo ...

  3. 【笔试实战】LeetCode题单刷题-编程基础 0 到 1【三】

    682. 棒球比赛 题目链接 682. 棒球比赛 题目描述 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你 ...

  4. 「Python实用秘技15」pandas中基于范围条件进行表连接

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第15 ...

  5. 用git bash 生成 hexo 博客文件,报错node: command not found

    有git bash,也安装了node.js, 为什么在bash里面会说node: command not found? 电脑有段时间不能上网,下载了360系统急救箱,删了很多文件,包括一些exe文件, ...

  6. idea专业版和idea社区版整合Tomcat,并将war包部署

    目录 一.idea专业版部署 二.idea社区版部署 三.错误案例 开发过程中,由于需要运用云平台,所以从新配置开发环境,其它或多或少有些许问题,但解决起来较为轻松.而对于部署注册中心Eureka时, ...

  7. 进程相关API

    ID与句柄 如果我们成功创建一个进程,CreateProcess函数会给我们返回一个结构体,包括四个数 据:进程编号(ID).进程句柄.线程编号(ID).线程句柄. 进程ID其实我们早见过了,通常我们 ...

  8. 2021-3-9 保存csv格式文件

    public void SaveCSV(DataTable dt, string fullPath) { FileInfo fi = new FileInfo(fullPath); if (!fi.D ...

  9. OpenCV实战:从图像处理到深度学习的全面指南

    本文深入浅出地探讨了OpenCV库在图像处理和深度学习中的应用.从基本概念和操作,到复杂的图像变换和深度学习模型的使用,文章以详尽的代码和解释,带领大家步入OpenCV的实战世界. 1. OpenCV ...

  10. Docker使用教程及常用命令

    Docker是一个开源的应用容器引擎,允许开发者将应用以及依赖打包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows上.它非常适用于持续集成与持续交付(CI/CD). 1. 安装 ...