[8-25]用户管理和权限管理知识梳理

本文旨在复习Linux中用户管理、权限管理,基本原理,基本命令。

知识储备


  • 用户是系统资源分配的基本单位[请注意不是最小单位,最小单位应该是进程]
  • 一个用户在登录计算机,并取得资源执行A进程整个过程,步骤如下:

  • 和用户相关的文件/etc/passwd、/etc/shadow
  • 和组相关的文件/etc/group、/etc/gshadow
  • 本文以这4个文件为核心来讲解用户管理和权限管理

用户基本概念


  • “用户”,对人而言使用username描述标识的;对Linux,是用UID来描述和标识的;
  • Linux把输入的username ----> 解析成对应的 UID,在CentOS上用32bits存储UID,但实际上只用16bits,这意味着通常用户的UID范围是0-65535
  • 用户分类 UID
    • 管理员:0
    • 普通用户:0-60000 [请注意 60000-65535 通常不分配,后文讲到创建用户的默认配置文件时会解释]
    • 系统用户:CentOS 6.x为 1-499  CentOS7.x为1-999
    • 登录用户:CentOS 6.x为 500+   CentOS7.x为1000+
  • 创建用户的步骤

  • 当我们创建一个普通用户没有指定家目录、默认shell为何能成功呢?因为在使用useradd命令时候会读取创建用户的默认配置文件/etc/default/useradd和/etc/login.defs填写相关参数;
  • 创建好的用户相关信息会同步修改到/etc/passwd、etc/shdow、/etc/group等文件中

用户相关文件/etc/passwd


  • /etc/passwd存储着用户相关信息,每行一个用户,以分隔,共7个字段

密码相关文件/etc/shadow


  • /etc/shadow存储着真正的密码,以及和密码相关的比如最长期限、警告期、非活动期等等;
  • 同样以:分隔,一共有9个字段,字段内容如下,另外一个用户占一行哦。

  • 很多人都关注密码文件,从/etc/passwd只能看到x密码占位符,他们不死心,找到/etc/shadow后觉得“有机可循”,真的是这样吗?
  • /etc/shadow中第二个字段是密码串,其实是三个子密码串以$连接而成

    • $6$第一个字串,表示加密类型,加密类型支持md5,sha1【160位】,sha224,sha256,sha384,sha512等等,在CentOS 6.x和7.x上,默认使用的是sha512加密,我们得出6是sha512加密 对吗?
    • $NzG0v5Vyxmdu2n$第二个字串,sort,加盐。在对用户密码单向加密的时候,其实是生成一个随机的sort+用户密码,对这个整体单向加密,这样即便用户密码相同,由于sort不同,在shadow也不同
    • $PxariU7Ag 第三个字串,这里就是整体单向加密后的加密串了
  • 单向加密的2个特色:雪崩效应、定长输出

用户管理命令



常用的用户管理命令Useradd、usermod、passwd、userdel

Useradd 创建用户、可以通过附加参数来指定相关信息

Usage:useradd [OPTIONS]... LOGIN

常用参数

-r        创建系统用户 1-499 或者 1-999-u UID    指定UID 默认创建应该是500+或者1000+-g GID    指定用户所属的基本组,如果不指会默认创建一个同名的组,如果指定,那么该组必须存在;-c ‘XXX’  注释信息,引号,全名信息-d /Path  指定用户组目录路径,不能实现存在,否则其用户配置文件不会被复制过去-s Shell  设定用户的默认shell-G GID1.. 指定所属的附加组 可多个-D        修改默认选项的,-M        不创建家目录,请注意如果默认创建系统用户那么是不会给家目录的Cat /etc/shells 

Usermod 修改用户相关信息,想修改什么就附加一个参数+指定参数的值

passwd    修改用户密码、也可以修改密码最短、最长使用期限、非活动区间、锁定、解锁等等

Usage:passwd [OPTIONS]... <acountName>            root可以直接修改别用户密码

普通用户只能修改自己的密码, 普通用户使用该命令无法附加参数,请参考《SUID》

补充密码复杂性策略:

    • 使用数字、小写字母、大写字母、特殊字符四类中至少三类;
    • 足够长;
    • 使用随机密码;
    • 定期更换;

userdel    删除用户,请注意默认删除用户不会删除用户家目录、/var/spool/mail也不会删除

-r 参数可以同时删除该用户的家目录

组基本概念


  • 组是一个容器,一端他容纳着各个用户,一端连接这权限,将用户和权限关联起来;
  • 组分类 GID
    • 管理员组0
    • 普通组:
    • 系统组:CentOS 6.x为 1-499  CentOS7.x为1-999
    • 用户组:CentOS 6.x为 1-499  CentOS7.x为1-999
  • 还有一种分类方式
    • 基本组:用户有且只有一个基本组,请注意私有组是附加组但只有一个成员
    • 附加组:一个用户可以同时属于多个附加组,继承多个权限
  • 组相关的文件主要有/etc/group、/etc/gshadow

组信息相关文件/etc/group


  • /etc/group存储着组相关信息,以:分隔,共4个字段;


组密码相关文件/etc/gshadow



  • /etc/gshadow存储着组密码和其他相关信息,以:分隔,共4个字段;

看到这里也许你很迷糊,用户密码理解起来很容易,那么组密码究竟干嘛的?

--->     实现组切换的作用

默认创建一个文件,属主是用户自身,属主是创建用户的基本组

Newgrp:切换其他组为自己的基本组

    • 本来就是自己的附加组,切换无需密码
    • 如果不是自己的附加组,要密码

组管理命令



常用的组管理命令Groupadd、groupmod、gpasswd、groupdel

Groupadd 创建组、可以通过附加参数来指定相关信息

Usage:groupadd [OPTIONS]... Name

常用参数

-g GID     指明组ID:如果不指定的话,GID会是组账号文件中最近添加组ID[最后一个组ID]加1-r         创建系统组-p         创建组并指定组密码哦-f         如果组已经存在,那么使用force可以强制覆盖并创建组

Groupmod 修改组相关属性,同usermod,参数同groupadd

gpasswd    修改组密码,用法同passwd

groupdel    删除组

其他用户、组管理相关的小命令

Chage 修改用户账号及密码的属性,常用选项-d -E -m -M -W
chsh 修改用户shell,同步到/etc/passwd,常用选项-s shell 或 --list-shells可查看shells
chfn 补全注释,同步到/etc/passwd,如果有多个comment会以,隔开,常用选项-f -o -p -h
finger 通过finger 用户名来查看具体的comment信息
whoami 显示当前有效账号
who 显示登陆信息包含每一个通过某终端登陆进来的会话,常用选项-r -u
w 显示谁登陆了,以及当前正在做啥子哟
id 显示当前用户的UID、GID、Groups
pwck 验证密码文件的完整性,比如用户指定的家目录不存在会提示是否删除
grpck 验证组文件的完整性
Newgrp 切换其他组为自己的基本组
Su switch user,切换用户以其他用户的身份执行命令
Su USERNAME
非完全切换;保留当前用户所有属性,临时切换,非登陆式切换

Su - USERNAME
或者su -l User Name:完全切换,登陆式切换

       Root切换到别的任意 不需要输密码

普通用户不管切换到谁 都需要目标的密码

仅以指定用户的身份执行指定的命令

格式:su - username COMMAND [Option ]... [ARGES]....

时间: 2024-12-27 22:18:56

[8-25]用户管理和权限管理知识梳理的相关文章

Linux用户及文件权限管理

用户及文件权限管理 一.实验介绍 1.1 实验内容 Linux 中创建.删除用户,及用户组等操作. Linux 中的文件权限设置. 1.2 实验知识点 Linux 用户管理 Linux 权限管理 二.Linux 用户管理 通过第一节课程的学习,你应该已经知道,Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁

Linux 基础入门----用户及文件权限管理

用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李雷”和“韩梅梅”都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制 ,不同用户不可以轻易地查看.修改彼此的文件. 下面我们就来学

NopCommerce源代码分析之用户验证和权限管理

目录 1.  介绍 2.  UML 2.1  实体类UML图 2.2  业务相关UML图 3.  核心代码分析 3.1  实体类源代码 3.2  业务相关源代码 3.3  相关控制器源代码 3.4  相关View源代码 4.  总结 1.  介绍 1.1  nopcommerce介绍 nopcommerce是国外的一个高质量的开源b2c网站系统,基于EntityFramework4.0和MVC3.0,使用Razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现的. nopcomm

MySQL数据库(7)_用户操作与权限管理、视图、存储过程、触发器、基本函数

用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" IDENTIFIED BY "密码"; 方法二: INSERT语句创建 INSERT INTO mysql.user(user,host, password,ssl_cipher,x509_issuer,x509_subject) VALUES('用户名','IP地址',password('密码'),'',

用户管理!权限管理!重定向

用户管理 useradd  -u, -g,-G(附加组),-c,-d, -s, -r(创建系统用户), -M(不创建家目录), 思考题:删除yhy用户家目录,如何还原(root用户重新创建yhy的家目录,拷贝/etc/skel/.bash* 的三个文件到/etc/yhy/下即可) usermod -u, -g, -G, -a, -c, -l(修改用户名), -s, -L(锁定用户密码), -U(解锁用户密码) userdel -r(同时删除家目录) passwd -d(删除用户密码),-e(设置

用户管理和权限管理

用户管理和权限管理 用户账号:用户.组 /etc/ passwd用户账号家目录属性 shadow用户密码和使用期限 group组账号家目录属性 gshadow组密码和使用期限 Linux用户 UID:0-65535(一般0-60000) 管理员:0 系统用户 centOS6:1-499 centOS7:1-999 登录用户 centOS6:500---60000 centOS7:1000---60000 /etc/shadow 加密与解密 加密就是将明文加密到密文 解密就是将密文还原到明文 破解

Linux之用户及文件权限管理

Linux之用户及文件权限管理 前言:Linux 是一个多用户的操作系统:Linux哲学思想之一-"一切皆文件".说明在学习Linux过程中,用户及文件权限的管理是非常重要滴.本文主要是引用了CentOs/RedHat 7.1的命令. 一.用户.组管理 1).用户.组类型: 超级用户(管理员):root用户具有一切权限,只有在进行系统维护(如创建用户.分配权限)时用到:由于root用户权限过大,为了避免管理员的误操作导致不可逆的后果,所以在非必要的情况下不用root用户登录. 普通用户

用户与用户组权限管理详解

用户及用户组权限管理    Linux是一个多任务多用户的系统,多用户可以同时登陆同一台主机.为了考虑到每个人的隐私权和工作空间,这时候文件所有者(owner)就是即用户的角色就变得尤为重要了,同时为了用户与用户之间方便合作,共享一些公共资源,这时,为了实现资源的快速分配,我们把多个用户放在一个公共的空间,分别赋予他们不同的读写执行等操作的权限,这些用户共同组成的一个整体,就是所谓的用户组(group). 第一部分 Linux权限管理 用命令ls -l可以列出用户的权限. #ls -l 这里我们

2.4、使用Django自带的admin用户管理,权限管理

如何创建项目请参考2.2.创建项目. 通常web服务会要求注册的用户通过用户名和密码登录,然后才可能管理自己的信息或者对一些页面进行授权,判断用户是否拥有执行某种操作的权限. Django已经提供了一个django.contrib.auth应用来处理登录,登出和权限验证,同时还提供了django.contrib.admin应用来管理用户.可以参考你的虚拟python环境的/lib/python27/site-packges/django/contrib/admin里面的文件和源码. 我们要做的就