码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-08-31 19:52:14      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:/etc/passwd   /etc/shadow   /etc/group   /etc/gshadow   

本文旨在复习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:切换其他组为自己的基本组

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

    • 如果不是自己的附加组,要密码


组管理命令


常用的组管理命令Groupaddgroupmodgpasswdgroupdel

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切换其他组为自己的基本组


Suswitch user,切换用户以其他用户的身份执行命令
Su USERNAME

非完全切换;保留当前用户所有属性,临时切换,非登陆式切换

Su - USERNAME

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


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

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

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

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



本文出自 “蓝色仓库” 博客,请务必保留此出处http://bluebox.blog.51cto.com/8852456/1690208

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

标签:/etc/passwd   /etc/shadow   /etc/group   /etc/gshadow   

原文地址:http://bluebox.blog.51cto.com/8852456/1690208

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!