第三章 用户管理

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. Java求数组元素的最大值和最小值

    代码如下: public static void main(String[] args) { int [] a = {1,2,3,88,2,90}; int max = a[0]; int min = ...

  2. Python运维开发之路《WEB框架:Django》

    一.Web框架的本质 所有的web框架.web请求:本质上都是:socket 浏览器:socket客户端 服务器:socket服务端 1. socket服务端 import socket def ha ...

  3. [Spring+SpringMVC+Mybatis]框架学习笔记:前言_目录

    下一章:[Spring+SpringMVC+Mybatis]框架学习笔记(一):SpringIOC概述 前言 本笔记用于记录本人(Steven)的SSM框架学习历程,仅用作学习.交流,不用于商业用途, ...

  4. Git 环境配置(详解版)

    前言 Git下载官网:https://git-scm.com/downloads 本次使用Github为配置前提(Gitee步骤类似) 环境搭建 1.git安装好去GitHub上注册一个账号,注册好后 ...

  5. Mysql基础8-多表查询

    一.多表关系 一对多或者多对一 案例:部门与员工的关系 关系:一个部门对应多个员工,一个员工对应一个部门(不考虑跨部门的特殊情况) 实现:在多的一方建立外键,指向一的一方的主键,这里员工表是多的的一方 ...

  6. 号外号外!首届开源 AI 游戏挑战赛圆满结束!

    北京时间 7 月 8 日到 7 月 10 日, 我们举办了 首届开源 AI 游戏开发挑战赛.这是一场激动人心的赛事活动,游戏开发者在紧迫的 48 小时内使用 AI 创造.创新有创意的游戏. 本次赛事活 ...

  7. RocketMq消费原理及源码解析

    消费原理概览 先简单说下常见的rocketMq的部署方式,上图中broker为真正计算和存储消息的地方,而nameServer负责维护broker地 图中右侧consume message部分即是本文 ...

  8. 使用 python 快速搭建http服务

    python -m SimpleHTTPServer 8888 使用上面的命令可以把当前目录发布到8888端口. 直接浏览器访问 但是这条命令是当前运行的,不是后台运行的,也就是说如果Ctrl + C ...

  9. 从ABNF读懂HTTP协议格式

    定义 HTTP(Hyper Text Transfer Protocol)超文本传输协议 HTML( Hyper Text Markup Language)超文本标记语言 URI(Uniform Re ...

  10. [mysql]定制封装MySQL的docker镜像

    前言 基于MySQL的原版镜像做一些个性化配置修改,封装/etc/my.cnf文件到镜像中,并且支持通过环境变量修改innodb_buffer_pool_size.server_id以及自动配置inn ...