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

Linux用户、组及权限管理浅析

时间:2015-12-14 12:44:18      阅读:333      评论:0      收藏:0      [点我收藏+]

标签:用户      权限管理   

一、用户和组

  1.用户

  系统用来认证(Authentication),授权(Authorization),审计(Autition)的帐号。通过登录用户来登录系统。操作系统通过登录不同的用户来调用相对应权限的进程或程序,也可以说,用户是能获取系统资源的权限集合。


  2.用户的分类

  Linux用户分为2类,即管理员用户和普通用户。

      管理员用户:即root,拥有最大的权限的用户,可以调用系统任意的资源。其uid为0

      普通用户:普通用户也分2类,分别为系统用户和登录用户。

        系统用户:保障系统启动时的基本服务正常运行的用户,一般不能登录。注意,也有可以登录的系统用户,来保障重要程序运行。其uid为1-499(CentOS6)或1-999(CentOS7+)

        登录用户:一般用户,用来登录并使用系统。其uid为500-60000(CentOS6)或1000-60000(CentOS7+)


  3.组

  组是用户的集合或容器,用户可以继承组的使用系统资源的权限。


  4.组的分类

  组有3种分类方式。

  组类别1:

    管理员组:root的组,权限最大的组,其gid为0

    普通用户组:

        系统组:系统用户的组,其gid为为1-499(CentOS6)或1-999(CentOS7+

        登录组:登录用户的组,其gid为500-60000(CentOS6)或1000-60000(CentOS7+)


  组类别2:

    基本组:创建用户时生成的同用户名一样的组,有且只有一个

    附加组:除了基本组外的组,可以同时有很多个


  组类别3:(感觉是基本组和附加组的另一种说法)

    私有组。

    公共组。   

  

  5.密码

    密码是用户用来登录系统或切换组时需要的凭证,其存放在/etc/shadow和/etc/gshadow文件内。

    密码建议使用随机密码,最短长度不要低于8位,同时使用大写字母、小写字母、数字、标点符号四类字符中至少3类,并定期更换。 

    linux使用单向加密,有md5,sha1,sha224,sha256,sha384,sha512共6种加密算法。


  6./etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、文件

    uid(UID),gid(GID):因为计算机硬件能识别的只有二进制代码,内存中用来存储用户和组的信息的大小分别都为16bits,所以总的数值为0-65536。uid,gid就是存储在计算机内存中的用户名和组名,它们通过配置文件/etc/passwd和/etc/group来互相解析。


    (1)/etc/passwd:用户的信息库

    格式为:

    name:passwd:uid:gid:gecos:directory:shell

     name:用户名

     passwd:密码,可以是加密的密码,也可以是占位符x

    uid:用户id号

    gid:用户所属的主组的id号

    gecos:注释信息

    directory:用户的家目录

    shell:用户的默认SHELL,登录时默认shell程序


    (2)/etc/shadow:用户的密码库

    格式为

    用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期限:密码禁用期:过期期限:保留字段


    (3)/etc/group:组的信息库

    格式为:

    group_name:password:GID:user_list

    group_name:组名

    password:组密码(不同组的用户切换组时用到,chgrp命令)

    GID:组id号

     user_list:该组的用户成员,以此组为辅加组的用户的用户列表


    (4)/etc/gshadow:组的密码库


  


  7.相关命令


    (1)useradd:添加用户

       格式:useradd [选项] 登录     

         -u,--uid UID:指定UID

         -g,--gid GROUP:指定基本组ID,此组得事先存在

         -c,,--comment COMMENT:指明注释信息

         -G,--groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号隔开

         -d,--home HOME_DIR:以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名实现,如果指定的家目录路径事先存在,则不会为用户复制环境配置文件

         -s,--shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells中

         -r,--system:创建系统用户

         -M:不创建用户主目录

    注意:创建用户时的诸多默认设定配置文件为/etc/login.defs

    useradd -D:显示创建用户的默认配置

    useradd -D 选项:修改默认选项的值

         修改的结果保存于/etc/default/useradd文件中

    

    (2)usermod:修改用户相关属性

       格式:usermod [选项] 登录名

         -u,--uid UID:修改UID号

         -g,--gid GROUP:修改用户所属的基本组,必须存在

         -G,--groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组:原来的附加组会被覆盖

         -a,--append:与-G一同使用,用于为用户追加新的附加组

         -c,--comment COMMENT:修改注释信息

         -d,--home HOME_DIR:修改用户的家目录

         -m,--move-home:只能与-d选型一同使用,用于将原来的家目录移动为新的家目录

         -s,--shell SHELL:修改用户的默认shell

         -l,--login NEW_LOGIN:修改用户名

         -L,--lock:锁定用户密码:即在原来的密码字符串之前添加一个‘!’

         -U,--unlock:解锁用户的密码


    (3)userdel:删除用户

     格式:userdel [选项] 登录

        -r:删除用户时一并删除其家目录


    (4)groupadd:添加组

       格式:groupadd [选项] group_name

           -g GID:指定GID,默认是上一个组的GID+1

           -r:创建系统组


    (5)groupmod:修改组的相关属性

      格式:groupmod [选项] GROUP

           -g GID:修改GID

           -n new_name:修改组名


    (6)groupdel:删除组

      格式:groupdel GROUP


    (7)passwd:修改用户密码

      格式:passwd  [-k]  [-l]  [-u  [-f]]  [-d]  [-e]  [-n  mindays]  [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

         1、passwd 修改用户自己的密码

        2、passwd USERNAME:修改指定用户的密码,但仅root有此权限

          -l,-u:锁定、解锁用户密码

          -d:清除用户密码

          -e DATE:过期期限,日期

          -i DAYS:非活动期限

          -n DAYS:最短使用期限

          -x DAYS:最常使用期限

          -w DAYS:警告期限

          --stdin:echo "PASSWORD" | passwd --stdin USERNAME


    (8)gpasswd:给组添加密码

      格式:gpasswd [选项] group

         -a USERNAME:向组中添加用户

         -d USERNAME:从组中移除用户


    (9)newgrp:临时切换指定的组为基本组

      格式:newgrp [-] [group]

         -:会模拟用户重新登录以实现初始化其工作环境


    (10)id:显示用户真实和有效的ID

      格式:id [OPTION]... [USER]

         -u:仅显示有效的UID

         -g:仅显示用户的基本组ID

         -G:仅显示用户所属的所有组的ID

         -n:显示名字而非ID

    

    (11)su:switch user

      登录式切换:会通过读取用户的配置文件来重新初始化

         su - USERNAME

         su -l USERNAME

      非登录式切换:不会读取目标用户的配置文件进行初始化

         su USERNAME

       常用方法:-c ‘COMMAND‘ :仅以指定用户的身份运行此处指定的命令


二、权限管理

  

  1.权限


    前面讲过,用户登录系统调用进程来实现系统的运行,基于安全的考虑,不是每个用户都能调用同一个进程或重要的系统后台进程,这就需要权限来管理。同时,liunx的原则之一,一切都是文件,所以实质上是对文件的权限管理。

     而进程对文件的访问权限应用模型

     进程的属主与文件的属主是否相同,如果想同,则应用属主权限

     否则,则检查进程的属主是否属于文件的属组,如果是,则应用属组权限

     否则,就只能应用other权限


  2.权限的组合

    权限的显示模式:rwxrwxrwx

    前三位:表示属主用户的权限

    中三位:表示属组用户的权限

    后三位:表示其他用户的权限

    组合和8进制的换算为

    ---  0

    --x  1

    -w-  2

    -wx  3

    r--  4

    r-x  5

    rw-  6

    rwx  7


  3.文件的权限

    以/etc/passwd为例执行ll /etc/passwd
    -rw-r--r--. 1 root root 1801 12月 11 10:36 /etc/passwd


    r:readable,表示可获取文件的数据

    w:writable,表示可修改文件的数据

    x:excutable,表示可将此文件运行为进程

    

  4.目录的权限

    以/etc/rc.d为例,执行ll -d /etc/rc.d

    drwxr-xr-x. 10 root root 4096 3月   6 2015 /etc/rc.d/

    

    r:readable,表示可使用ls命令获取其下的所有文件列表

    w:writable,表示可修改此目录下的文件列表,即创建或删除文件

    x:excutable,表示可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息


  5.相关命令

    

    (1)chmod:修改文件权限

      格式:chmod [OPTION]... MODE[,MODE]... FILE...
          chmod [OPTION]... OCTAL-MODE FILE...

          chmod [OPTION]... --reference=RFILE FILE...

     

     3类用户简写:u:属主、g:属组、o:其他、a:所有

     

       1、chmod [OPTION]... MODE[,MODE]... FILE...

          MODE表示法:

               赋权表示法:直接操作一类用户的所有权限位

               u=

             g=

             o=

             a=

               授权表示法:

               u+,u-

               g+,g-

            o+,o-

            a+,a-

       2、chmod [OPTION]... OCTAL-MODE FILE...

          (八进制即0-7)

       3、chmod [OPTION]... --reference=RFILE FILE...

          (引用性修改)

       选项:

          -R, --recursive:递归修改(授权表示法使用多)


    (2)chown:改属主和属组

       格式:chown [OPTION]... [OWNER][:[GROUP]] FILE...(或者是.)

           chown [OPTION]... --reference=RFILE FILE...

    

       选项:

          -R:递归修改

  

     (3)chgrp:改属组

       格式:chgrp [OPTION]... GROUP FILE...

           chgrp [OPTION]... --reference=RFILE FILE...



    (4)umask:文件的权限反向掩码,遮罩码

      文件:

         666-umask

      目录:

         777-umask

      注意:文件用666去减,是因为文件默认不能有执行权限:如果减的数有执行权限,则加1

      格式:umask:查看当前umask

          umask MASK:设置umask

      注意:此类设定只对当前shell进程有效

     

    



参考:http://linuxme.blog.51cto.com/1850814/347086/

本文出自 “给我一片二向箔” 博客,请务必保留此出处http://theneverland.blog.51cto.com/10714090/1722615

Linux用户、组及权限管理浅析

标签:用户      权限管理   

原文地址:http://theneverland.blog.51cto.com/10714090/1722615

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