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

linux中用户和用户组的管理

时间:2017-11-04 00:02:54      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:用户   用户组   linux   

一、安全上下文

    Linux中,能够实现资源使用和完成任务的主体是应用程序进程,进程是以发起者的身份运行的,每个进程的拥有者就是它的发起者,进程会被标记上发起者的身份信息用于验证权限。当进程试图访问资源的时候,安全上下文(Secure Context)会比对进程的所有者和资源的所有者之间的关系。

    首先,查看进程的所有者是否和资源所有者为同一用户,若是,则按照所有者拥有的权限来使用资源;

    如果不是,则判断进程的所有者是否属于该资源所属组的成员,若是,则按照所属组的权限来使用资源;

    如果不是,就按照最为普通的用户权限来使用资源。


二、用户账户:实现操作者和计算机交互式操作的基础,是操作者的身份在满足了验证条件之后的计算机系统中的映射

    1.用户账户分类

        超级用户(管理员):root

        普通用户:

            系统用户(非登录用户):

                为了保证安全,某些进程或服务必须以非管理员的用户身份运行,这类非管理员用户称为系统用户,此类用户一般不允许登录到系统

            登录用户:

                能够通过登录行为验证身份而获得资源访问权限的用户

    2.用户账户的标识名称

        登录名称:字符串标识

        UID:为计算机操作系统提供的数字标识符号,范围为0~2^32-1

            超级用户:

                用户名:root

                UID:0

            普通用户:

                系统用户:

                    Centos 6-:1~499

                    Centos 7+:1~999

                登录用户:

                    Centos 6-:500+

                    Centos 7+:1000+

                    注意,60000+的UID通常需要用户自定义标识


三、名称解析

    在用户使用登陆名称登陆系统的时候系统会对登陆名称使用解析库(/etc/passwd)进行解析(名字 <---> UID)利用解析库完成认证机制,验证登陆用户输入的登陆名称是否存在。在系统确定用户存在之后就会在用户的认证信息库(/etc/shadow)中查找用户的信息,找到这个用户的权限等信息后允许其登陆。

    默认的认证机制:密码认证

    

    在linux中,保存到认证库的密码是经过单向加密算法处理过的,一共有六种,分别为MD5、sha1、sha224、sha256、sha384、sha512,六种算法在认证库中以$1~$6表示,加密算法会在你输入的原始密码后加上salt再进行加密计算,salt为随机字符串,认证库中密码的最终形态为:算法 + salt + 单向加密的结果字符串

    

四、组账户:将多个用户联系一起以便集中授权的容器


    1.组的分类

        超级用户组

        普通用户组

            系统用户组

            登录用户组

    2.组账户的标识方法

        组账户名称

        GID

            超级用户组:0

            系统用户组:

                CentOS 6-:1~499

                CentOS 7+:1~999

            登录用户组:

                CentOS 6-:500+

                CentOS 7+:1000+


    linux中,每个用户账户必须至少属于一个组,用户账户的GID标识称为用户的主要组(基本组),每个用户必须要有且仅有一个主要组;用户账户也可以添加多个附加组


五、与组相关的命令

    1.groupadd    创建一个新组

        -g GID    指定要创建组的GID

        -r        将组创建为系统组,此时应该保证GID在系统组范围内

    

    2.groupdel    删除一个组

        如果一个组是某个用户的主要组,则该组不能删除


    3.groupmod

        -g GID    修改指定组的GID

        -n NAME   修改指定组的组账户名称


六、与用户账户相关的命令

    1.useradd     创建一个新用户或更新默认新用户信息

        -c        为用户添加注释信息

        -d        为用户指定家目录的路径

        -e        设定用户密码的绝对过期时间

        -f        设定用户密码使用达到最大时间后的宽限期

        -g        为用户指明GID,如果不写此选项,系统会创建一个与用户名相同的组并将其设置为用户的主要组

        -G        为用户添加附加组

        -m        必须为用户创建家目录

        -M        一定不为用户创建家目录

        -r        创建系统用户

        -s        为用户指定默认shell

        -u        为用户指定UID


    2.userdel     删除用户账户和相关文件

        -r        删除用户的同时删除用户的家目录及用户邮箱文件


    3.usermod

        -c        修改用户注释信息

        -d        修改用户家目录

        -e        修改用户密码过期的绝对日期

        -f        修改用户密码过期宽限期

        -g        修改用户的主要组

        -G        修改用户的附加组

        -l        修改用户的登录名

        -s        修改用户的登录shell    

        -u        锁定用户的UID

        -L        锁定用户

        -U        解锁用户


    4.passwd      修改用户密码相关信息

        -l        锁定用户

        -u        解锁用户

        -d        删除用户的密码,也可用于解除用户锁定,因为在认证库中在密码前表示锁定用户的!符号被一并删除

        -e        直接设置用户密码过期

        -n        用户密码的最短使用时常,默认值为0

        -x        用户密码的最长使用时常,默认值为99999

        -w        用户密码过期之前多少天开始发送警告信息

        -i        用户密码过期之后的宽限期

        -S        查看用户密码的状态信息


    5.chage       更改用户密码过期信息

        -d        上一次更改的日期

        -E        账号到期的日期

        -I        密码过期之后锁定账号的天数

        -l        列出用户以及密码的有效期

        -m        密码可以更改至少需要多少天

        -M        密码保持有效的最大天数

        -W        用户密码过期之前多少天开始发送警告信息

        

    6.chsh        更改账户shell,相当于usermod -s


    7.finger      查找并显示用户信息


    8.id          显示用户账户信息

        -u        显示用户有效的UID

        -g        显示用户有效的GID

        -n        显示名称


    9.su          切换用户账户

        -,-l     以后面的用户身份登录到系统

        -c "COMMAND"     以前面指定的用户身份运行COMMAND,不进行身份登录切换

        

linux中用户和用户组的管理

标签:用户   用户组   linux   

原文地址:http://papapa213.blog.51cto.com/13390432/1978760

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