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  

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

1.png

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

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


     2.用户和组的配置权限

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

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

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

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

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

    (1)/etc/passwd 解说

2.png

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

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

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

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

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

3.png

4.png

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

        GECOS:用户全名或注释  

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

5.png

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

6.png

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

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

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

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

7.png

8.png

   (2)/etc/shadow解说

9.png

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

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

        ②用户密码,一般sha512加密

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

10.png

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

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

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

11.png

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

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

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

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

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

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

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

       ⑨没有意义,作为保留用

附加:

密码期限如下图:

12.png 

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

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

14.png 

           ①组群名称:就是群组名

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

           ③GID:就是组的id

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

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

      (4)/etc/gashadow 解说

10.png

           ①群组名称

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

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

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

三、用户和组管理命令

     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的唯一性

15.png

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

16.png

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

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

12.png

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

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

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

11.png

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

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

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

               显示或更改默认设置

             useradd -D

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

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

14.png

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

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

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

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

15.png

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

              chpasswd 批量修改用户口令

16.png

17.png

18.png

19.png

20.png

      (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:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录

21.png

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

22.png

              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"

练习1.png

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

        名字为admins 的组

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

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

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

练习2.png

 

原创文章,作者:zhumengxiaotao,如若转载,请注明出处:http://www.178linux.com/27663

(1)
zhumengxiaotaozhumengxiaotao
上一篇 2016-08-04
下一篇 2016-08-04

相关推荐

  • 内核编译

    单内核体系设计、但充分借鉴了微内核设计体系的优点,为内核引入模块化机制。 内核组成部分核心,一般为bzImage,通常在/boot目录下,名称为vmlinuz-VERSION-RELEASE;: kernel: 内核 kernel object: 内核对象,一般放置于/lib/modules/VERSION-RELEASE/ [ ]: N [M]: M [*…

    Linux干货 2015-11-06
  • shell脚本的if语句

                                  第一篇  shell脚本中的if语句 一、shell脚本的语句控制        □前面提到了过程式…

    Linux干货 2016-08-19
  • gitlab-ce并发超过30引起ip被封1小时的问题

    系统环境描述 System information System:     Ubuntu 14.04 Current User:   git Using RVM:  no Ruby Version: …

    Linux干货 2015-09-06
  • week7

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; fdisk /dev/sdb  按提示创建出来10G分区 查看1:…

    Linux干货 2016-12-08
  • 如何用SHELL写好网络爬虫

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1550976        上周,老大压下来任务,让写一个网络爬虫,负责爬某一个行业网站的数据信息。由于本人只会 sh…

    Linux干货 2016-08-15
  • Linux磁盘管理

     I/O Ports:I/O设备地址   一切皆文件:             poen(),read(),write(),close()   设备类型:     &nb…

    Linux干货 2016-08-29

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-04 21:43

    写的很好,赞一个。