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

Linux的用户组和权限(一)

时间:2016-08-04 00:07:25      阅读:436      评论:0      收藏:0      [点我收藏+]

标签:用户名   linux   用户组   模型   认证   

导读:本章主要内容如下

      1.解释Linux的安全模型

     2.解释用户账号和组群账号的目的

     3.用户和组管理命令

     4.理解并设置文件权限

     5.默认权限

     6.特殊权限

     7.ACL

 

一、安全介绍 3A

     1.资源分派:

         Authentication :认证  (用户名和对应口令)

         Authorization :授权   (不同的用户权限不一样)

         Accouting /Audition :审计


    2.所属主和所属组

         user(用户) token令牌 ;identity身份

         Linux用户:username UID(用户标识号)

             管理员:root UID=0

          普通用户:1-65535

            系统用户1-499(centos6)1-999

              由系统保留,作为管理账号,对守护进程获取资源进行权限分配

                登录用户:500+(centos6) 1000+  交互式登录

         group 组

        Linux组:Groupname GID(组标识号)

              管理员.:root, 0

             普通组

                系统组:1-499(centos 6);1-999(centos 7)

               普通组:500+ ; 1000+

             注意:在Linux中用户名和组名可以相同,要小心使用,具体看命令。

         安全上下文

             运行中的程序:进程(process)

             以进程发起者的身份运行:

             进程所能够访问资源的权限取决于进程的运行者的身份 (和程序本身没关系,看是谁运行的)


二、用户账号和组群账号管理

     1.Linux组的类别:

      用户的主要组(主组)

           用户必须属于一个且只有一个主组

           组名同用户名,且仅包含一个用户:私有组(新建的用户,也会建一个组,但组里只有用户自己)

      用户的附加组(辅助组):secondary group  


        一个用户只有一个主组,但是可以属于零个或多个辅助组(如下图)

技术分享

    注意:一般第一个为用户的主组,后面的都为附加组

         系统识别用户不是看用户名,是看id编号的


     2.用户和组的配置权限

     Linux用户和组的主要配置文件:

       /etc/passwd:用户及其属性信息(名称、UID、主组ID等)

       /etc/group:组及其属性信息

         /etc/shadow:用户密码及其相关属性

       /etc/gshadow:组密码及其相关属性


    (1)/etc/passwd 解说

技术分享

     /etc/passwd 由“:”分割成7段,每个字段含义如下:

        ①login name:登录用户名(wang) 

        ②passwd:密码,口令(x) 现在放在 /etc/shadow  如果要想回到之前的状态用(命令 pwunconv)但是这样的话/etc/shadow文件就没有了,恢复使用(命令 pwconv)     

        ③UID用户身份编号 管理员:0,系统默认为root,但是可以修改。普通用户:500+;1000+

     实验如下图,说明:系统辨别是否为管理员是看id的  

技术分享

技术分享

       GID:组标识号登录默认所在组编号(1000) 

        GECOS:用户全名或注释  

        用 命令chfn 可以修改注释信息

技术分享

        用命令 finger 可以更加详细的查看修改和用户信息

技术分享

       ⑥home directory:用户主目录(/home/wang)

         root 的家目录是/root ,普通用户的家目录则为/home/username,用户家目录可以自己定义。

       ⑦shell:用户默认使用shell (/bin/bash) 

         用 chsh命令 可以直接修改用户的shell

技术分享

技术分享


   (2)/etc/shadow解说

技术分享

    /etc/shadow he /etc/passwd 类似,由“:”分割成9段,只有管理员可以查看,普通用户是看不了的。含义如下: 

        ①登录用户名,与/etc/passwd 类似

        ②用户密码,一般sha512加密

            如果刚建的新用户,密码是(!!)是不允许登陆的,(可以用 su切换)如果删除了,该用户就可以不用密码直接登录。可以使用 命令 usermod -U (删除!号)(usermod -L 加!号),只能删除一个,第二个系统不允许被删除。 其实,有密码的用户也是可以被锁定的,也是用 usermod -L

技术分享

            密码前面的$6代表哈希算法,一般用sha512加密,是单向加密的,不可逆。但是也有可能会被破解。我们也可以修改用户的加密算法  命令:authconfig--passalgo=sha256 --update(对老用户不起作用,只对新用户起作用)

          如果两个新用户设置的密码完全以一样,但在 shadow中显示的也是不同的,因为系统会加 “盐”,是一种随机数,更安全。

          在工作中设置密码可以用命令 openssl rand -base64 (10随机数)

技术分享

       197011日起到密码最近一次被更改的时间

             如果为0 就代表,迫使你下一次登录时必须该口令(可以通过 chage -d0 tao 直接改为0)或者(passwd -e tao)和前者效果一样。

       ④密码再过多少天可以被更改,系统默认为0,即不受限制

       ⑤密码多少天后到期,即在多少天内必须更改密码,系统默认99999表示永远不需要更改。

       ⑥密码过期前几天系统提醒用户(默认为一周)

       ⑦密码过期几天后账号会被锁定

       ⑧生命周期,从197011日算起,多少天后帐号失效

       ⑨没有意义,作为保留用

附加:

密码期限如下图:

技术分享 

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


     (3)/etc/group 组及其属性信息

技术分享 

           ①组群名称:就是群组名

           ②群组密码:通常不需要设定,密码是被记录在/etc/gshadow

           ③GID:就是组的id

           ④以当前组为附加组的用户列表(分隔符为逗号)

         注意:新用户添加或删除附加组,必须重新登录才能够表现出来。

      (4)/etc/gashadow 解说

技术分享

           ①群组名称

           ②群组密码 :一般不对组设置口令,如果设置了,普通用户知道口令后便可直接加进来,不设置反而更加安全。

           ③组管理员列表:组管理员的列表,更改组密码和成员

           ④以当前组为附加组的用户列表:(分隔符为逗号) 

三、用户和组管理命令

     1.文本操作:

       vipw(vi /etc/passwd)和vigr(vi /etc/group)

     用这两个命令比直接使用nano,vim等编辑工具安全,因为在使用过程中如果格式不正确,系统会报错,其他的则不会

         pwck(passwd check)和grpck(group check)

     修改完成之后,用这两个工具可以作相应的检查。

    2.用户和组管理命令

          用户账号管理命令:

             useradd  

             usermod 

             userdel

          组账号维护命令:

             groupadd  

             groupmod  

             groupdel

     (1)useradd 用户创建

      useradd[options] LOGIN

         -u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs

         -o 配合-u 选项,不检查UID的唯一性

技术分享

         -g GID:指明用户所属基本组,可为组名,也可以GID

技术分享

         -c "COMMENT":用户的注释信息

         -d HOME_DIR:以指定的路径(不存在)为家目录

技术分享

         -s SHELL: 指明用户的默认shell程序

                       可用列表在/etc/shells文件中

         -G GROUP1[,GROUP2,...]:为用户指明附加组,组必须事先存在

技术分享

         -N 不创建私用组做主组,使用users组做主组

         -r: 创建系统用户CentOS 6: ID<500CentOS 7: ID<1000,一般shell类型为/sbin/nologin

    在创建用户的时候会有一些默认值设定 /etc/default/useradd文件中

        显示或更改默认设置

        useradd -D

          useradd -D -s(后面加选项可以更改默认设置)

     这里注意,新创建的用户系统用户的家目录和邮箱是不会自动创建的。

技术分享

    (3)新建用户的相关文件和命令

          /etc/default/useradd 相关的配置文件默认设置

         /etc/skel/*  家目录的配置文件模板

         /etc/login.defs 一些配置文件的默认设置(见下图)

技术分享

         newusers passwd格式文件批量创建用户

         chpasswd 批量修改用户口令

技术分享

技术分享

技术分享

技术分享

技术分享

   (4)usermod用户属性修改

      usermod[OPTION] login

       -u UID: UID

       -g GID: 新基本组

       -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append

       -s SHELL:新的默认SHELL

       -c ‘COMMENT‘:新的注释信息;

       -d HOME: 新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m选项

       -l login_name: 新的名字;

       -L:lock指定用户,/etc/shadow 密码栏的增加!

         -U:unlock指定用户,/etc/shadow 密码栏的拿掉

         -e:YYYY-MM-DD: 指明用户账号过期日期;

       -f:INACTIVE: 设定非活动期限;

    (5)userdel 删除用户

         -r :删除用户家目录

    (6)查看用户id相关信息

      id [OPTION]... [USER]

       -u: UID

       -g: GID

       -G: Groups

       -n: Name

    (7)切换用户以及用户其他身份执行命令

      su[options...] [-] [user [args...]]

        切换用户方式:

          su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录

技术分享

         su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换

技术分享

   root su至其他用户无须密码;非root用户切换时需要密码

   注意:如果切换用户之后一定要使用 exit或logout 退出来,否则会影响系统。

       换个身份执行命令:

         su[-] UserName -c ‘COMMAND‘

               选项:-l --login

         su-l UserName相当于su-UserName


练习:

   

    1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"

技术分享

  2、创建下面的用户、组和组成员关系

        名字为admins 的组

        用户natasha,使用admins 作为附属组

        用户harry,也使用admins 作为附属组

        用户sarah,不可交互登录系统,且不是admins 的成员,natasha,harry,sarah密码都是centos

技术分享


 


Linux的用户组和权限(一)

标签:用户名   linux   用户组   模型   认证   

原文地址:http://1992tao.blog.51cto.com/11606804/1834120

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