码迷,mamicode.com
首页 > 系统相关 > 详细

Linux运维学习历程-第六天-Linux用户、组以及权限管理

时间:2016-08-04 19:49:18      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:linux 运维 centos

本章内容

   Linux的安全模型

   用户和组

 用户和组管理命令

 文件权限

 默认权限

 特殊权限

 ACL访问控制

一:3A认证    

    Authentication :认证

    Authorization :授权

     Audition 审计

Authentication(认证):验证用户的身份(账号和密码)与可使用的网络等一系列服务

Authorization (授权):依据认证结果开放网络等各种服务给用户,对用户的资源访问权限进行集中控制。

Audition (审计):将用户所有的操作日志集中记录管理和分析,不仅可以对用户行为进行监控,并且可以通过集中的审计数据进行数据挖掘,以便于事后的安全事故责任的认定。

     形象的说就是用户通过用户名和密码认证,认证后获得令牌token(identity),令牌是已经被授权过的“身份卡”,拥有令牌之后就可以访问或者操作系统了,但是活动内容是被授权时赋予的权限限制的,规定了你能做什么;而审计是一种监督管控的措施,它保留日志等一切有关系统、用户活动的事物,可以管控用户是否有非正常操作等不合理的地方。

     而linux系统在此过程中,用到的有:

     用户名(USERID即UID)

     密码(passwd)

     主组(GID)

     附加组(辅助组)(other)

     文件和目录权限

     ACL访问控制列表

     通过上述各项,对用户的系统活动进行初步的管理 

二、用户和组

  1、用户user和用户ID(UID)

  在linux系统中每一个用户都有自己用户名,但是linux在识别时,并不是识别我们登陆时键入的用户名,而是用户名所对应的UID,而UID才是真正的身份证号码,就好比我们的身份证一样,最后用于核实身份的是身份证号码就是这个道理。因此用户名与用户ID(UID)的关系如下

 用户名:类此姓名           方便用户记忆操作登录

 用户ID:类此身份证号码       系统识别身份的真正依据

比如我们在系统正常新建一个用户User1,指定UID号码是1111,然后

  在linux中用户(UESRNAME和UID)分为

   管理用户(管理员root UID=0)

   普通用户(UID=1-65535)

      系统用户(如nologin)CentOS6.8默认UID=1-499;CentOS7.2默认UID=1-999

        作用:对为了能够让后台进程或服务类进程以非管理员的身份运行,通常系统或应用程序需要为此创建多个普通用户,这类用户从不用登录系统,仅仅用来让其他进程以它的身份运行,从而仅能获取普通权限的;用户自己也可以常见系统用户。

      登录交互用户(我们日常登陆工作的账户))CentOS6.8默认UID=500-60000;CentOS7.2默认

UID=1000-60000

        作用:我们日常工作所用的交互账户,也是我们正常推荐所用的账户(root权限太大,操作有风险),有普通的权限,能够正常操作维护系统。      

     OK,我们来看一下示例,来看看UID如何影响用户名(账号)的

     示例(1)

     我们正常新建一个普通登录用户user1,并且指定UID=1111

useradd -u 1111 user1

    然后在/etc/passwd中查看user1用户信息

getent passwd user1

查看普通用户家目录/home下的用户家目录列表存在的user1家目录的信息

ll /home

然后删除user1账户,但是保留家目录

userdel user1

查看普通用户家目录/home下的用户家目录列表存在的user1家目录的信息的变化

ll /home

添加用户user2,但是指定其uid=1111,与原来的user1相同

useradd -u 1111 user2

查看/etc/passwd中查看用户信息变化以及家目录中的变化

getent passwd
ll /home

技术分享技术分享

     示例2

     作此示例请做好备份快照

我们用nano或vim文本编辑工具编辑修改/etc/passwd中的root uid=2222,并将user2的 uid=0

首先我们先要激活user2的密码,否则无法登陆

passwd user2


技术分享然后编辑配置/etc/passwd的信息,将root uid改为2222 将user2 uid改为0

vim /etc/passwd

技术分享

技术分享

我们以前提到过管理员的命令提示符默认是 # ,而普通用户为 $ 

然后我们重新登录一下系统,系统会重新读取/etc/passwd文件

exit

重新登录

技术分享登录user2会发现命令提示符变为 # 而默认管理员的命令提示符就是 # 而且切换用户root并不需要密码

而反观root用户原先只有管理员能够查看的/etc/shadow文件竟然不能访问查看,而且命令提示符号变为默认的普通用户 $ ;切换回user2账号竟然需要密码!而且能够查看/etc/shadow文件了

    由此我们可以看出系统中的识别机制:是以用户ID即UID为依据的,并不是我们所用的用户名。

所以linux中的uid可以决定用户的身份,并影响其所属关系及权限。

   注意:以上恢复原状,把root和user2的uid改回原值即可

       用户uid是可以重复的(用命令创建和修改),但是一般不建议如此做

       /etc/passwd  是全局配置文件之一 是数据库文件 记录的是用户账户的相关信息,可以用

man 5 passwd

了解相关参数的含义

技术分享   

 2、密码

   账户密码是用户登录认证的关键,我们在这里初步了解一下linux中用户密码,在系统中存储位置,和密码组成以及加密算法

   在linux密码在早期版本中存储在数据库文件/etc/passwd中的第二个参数位置上,但是后期存储在/etc/shadow中,从现在的机制来说了,由于系统运作所需,passwd是所有用户都可以查看的,而shadow文件只能是root管理员查看来看,是为了安全因素所以给转移存储位置了,如果想要回到原来的存储模式,方法如下:

pwunconv      #关闭影子密码,是密码重新存储到/etc/passwd,而非/etc/shadow中
pwconv        #打开影子密码

技术分享

技术分享

上图我们可以看到,当关闭影子密码后,密码已经存储得到/etc/passwd中了,而且我们会发现/etc/shadowwen文件没有了!!!重现开启回到系统默认的影子密码模式,/etc/shadow文件又有了,密码又不存储在/etc/passwd中了,而是又存储到/etc/shadow中了

  密码的组成:在系统中正常的密码组成由三部分构成

技术分享

第一个$后是加密算法,数字与加密算法对应关系如下:       

                     1:MD5     128位

                     2:sha1    160位

                     3:sha224   224位

                     4:sha256   256位

                     5:sha384   384位

                     6:sha512   512位

也因此我们可以看出上图user2的加密算法是sha512的

而早期密码算法多用MD5和sha1,位数没有上图显示的那么长,在当时虽然已经有更复杂的密码,但是考虑到加密和解密验证,都是要消耗系统资源的,同时还没有人能破解这种加密算法,所以为了让系统系统资源利用率更高,而没有使用更复杂算法;但是,在2005年由我国数学家王小云女博士!女博士!女博士!成功破解,也因此导致其后所有重要领域的密码加密算法改变。

天朝威武霸气,女博士天下无敌!!!! 

加密机制:

    加密:明文-->  密文

    解密:密文-->  明文

   单向加密:相同算法定长输出,获得密文不可逆推出原始数据

     哈希算法,原文不同,密文必不同

     雪崩效应:初始条件的微小改变,引起结果的巨大改变

更改加密算法 authconfig --passalgo=sha256 -- update

注意:

   此命令是修改/etc/login.defs文件中的参数来实现的,所以对所有人有效,已经创建的用户加密模式不变,但是修改会变化,新建用户则使用修改后的加密算法,且重新登录也依然有效

第二$后是salt(盐):可以抽象理解为调料的作用,就是相同的密码,加入salt产生的随机数之后依据雪崩效应,产生的密文就不一样,这样就避免如果别人的密码密文与自己的一样,继而推算我们的密码。

第三$之后才是真正的密码密文,很根据加密算法位数的不同,而呈现不同长度,但是在相同算法下,不同长度的密码,密码密文长度相同,是等长的,所以,密码密文的长度由密码的加密算法决定。

   3、组(主组、附加组)

     在linux系统中用户的组我们可以抽象理解为所属部门,主组就是主职部门(也就是我们的关系所在地),而附加组则是兼职部门(比如技术部的主职技术员,本身又兼职公关部的形象大使技术分享),  

本文出自 “秋风夜雨” 博客,请务必保留此出处http://2849159106.blog.51cto.com/7881853/1834326

Linux运维学习历程-第六天-Linux用户、组以及权限管理

标签:linux 运维 centos

原文地址:http://2849159106.blog.51cto.com/7881853/1834326

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