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

linux中的用户与权限

时间:2015-12-13 00:53:55      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:123

        Linux是一款支持多用户多进程的操作系统,为了实现对系统中资源的有效管理及配置,使用了登陆账户与对应账户权限的方式来限制每一个登陆系统的使用者。

        使用者在登陆Linux系统时,会先对使用者进行身份认证(authentication),通过系统账号和密码来实现。用户登陆成功时,则会按照之前设定好的账户权限为使用者授权,规定了其可以访问、使用系统中的哪些资源(authorization)。同时,为了防止已登陆的使用者恶意在系统上操作,影响其他用户的利益,还需要对所有登陆用户进行使用行为的监控(audition)。

        Linux对系统中的所有用户都可以分别设定不同的权限,但当系统上的用户过多时,一个一个的操作显然是一件非常麻烦的事。我们可以将多个用户加入一个用户组中,统一对用户组设定权限来为组中的每一个用户授权。

        但是以上说的都是一些逻辑的、便于人类理解的信息,但是计算机本身是无法理解用户名的,用户名对它来讲只是一段字符串。如何让计算机区分不同名字的用户?这时要引用uid的概念,每个用户通常情况下会对应一个独一无二的uid,方便计算机对这个用户进行识别;同理计算机也要使用gid来分辨不同的组。

========================================================================= 用户可以分为大致两类

        管理员

        普通用户;而普通用户中又可以分为两类

                系统用户

                登陆用户

         用户的uid在计算机中用16位(bit)的二进制来表示,其中管理员的uid位0,系统用户的uid在红帽6,centOS6上位1~499,登陆用户为500-60000;而在红帽7,centOS7上分别为1~999, 1000-60000.

        系统是如何把用户名称与uid关联起来的呢?是通过名称解析库文件/etc/passwd进行解析


用户组分类方式比较复杂,通常有三种分组的方式

        第一种:使用和用户近似的方式分组,即

        管理员组

        普通用户组

                系统用户组

                登陆用户组

        

        第二种:

        用户的基本组:任何一个用户都至少有、且只能有一个基本组。如果管理员不指定,通常在创建用户时系统会顺带创建一个和用户名字一样的基本组。

        用户的附加组:用户除了基本组之外,还可以同时属于多个附加组


        第三种:

        用户的私有组:组名同用户名,并且只包含了一个用户

        用户的公共组:组内包含了多个用户


    组的标示gid也是用16位二进制数来表示,标识范围和用户uid相同,请参考上面uid的标识范围。组的名称解析库文件则是/etc/group.

=============================================================

        早先用户的密码信息也是一并明文存储在/etc/passwd这个文件中的,但是这样的设计很不安全,所以,现在passwd中原来存放密码的位置只留了一个占位符“x”,而密码实际位置在/etc/shadow下,组的密码文件为/etc/gshadow。并且,这些密码都是单向加密后存放的,问题来了,什么是单向加密?(下面的内容略跑题,可跳至下一节继续浏览)

        常用的加密方式通常有三种:

        对称加密:加密与解密使用同一个密钥

        非对称加密:加密和解密使用的是一对儿密钥,公钥(public key)与私钥(private key)

        单向加密:使用某种算法将密码换算成一种数据特征码,只能加密,无法解密。

                数据特征码有以下两个特点:

                        定长输出:无论原文件有多少个字符,输出的特征码长度都一致

                        雪崩效应:只要源文件做出细微的改变,特征码将会天翻地覆的改变,防止有人用                               特征码变化推敲源文件内容。

                常用的单向机密方式有MD5 (message digest) 算法,可以输出128位的特征码,当然,特征码位数越多,源文件就越安全,所以centOS6以上版本已经默认使用sha(secure hash algorithm)算法,可以支持到512位。

=============================================================

        下面来看一下/etc/passwd这个文件的内容 用:一共分隔了7列

                第一列是当前系统上所有用户的用户名

                第二列是密码占位符

                第三列是用户uid

                第四列是用户基本组的gid

                第五列是用户的一些备注、注释信息

                第六列是用户的家目录路径

                第七列是用户登陆账户时默认使用的shell

        

        接下来是/etc/shadow

                第一列是用户名

                第二列是加密的特征码字段

                第三列是用户上一次修改密码到今天的天数,默认从1970.1.1开始计算

                第四列是用户密码最短使用天数:如果天数不够,用户自己改不了密码

                第五列是用户密码最长使用天数:用户密码最多只能用这么多天。

                第六列是用户密码的警告天数:密码在过期的提前几天开始警告用户

                第七咧是用户密码非活动天数:密码过期之后还能最多使用几天,到了之后会被禁用

                

                

        

              

                

        

                   

        


    

linux中的用户与权限

标签:123

原文地址:http://lyias.blog.51cto.com/10955966/1722331

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