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

相关推荐

  • N26-第一周

    描述计算机的组成及功能。 计算机主要由运算器,控制器,存储器,输入、输出设备五大部件组成 运算器(Arithmetic Logic Unit, ALU):实现各种算数运算和逻辑运算(与控制器组成cpu)。 控制器(Control Unit, CU):计算机控制中心,根据程序规定的控制程序进行解释,根据要求进行调度,控 制协调各部分有条不紊的运行。 存储器(M…

    Linux干货 2017-02-03
  • 初学Linux之标准 I/O 和管道

    前面我们已经了解了文件系统的部分内容,我们可以通过 ls 命令让当前目录下的内容都显示在屏幕上,也可以使用 pwd 命令,显示当前的所在的目录路径。但是我们输入的是命令,本身并没有输入“显示”这类命令和要求,但是系统就自动的在屏幕上输出我们命令指定的信息。由此可以想象到,系统自身有默认的一种输出方式,同时,有输出就有输入,当输入的和系统无关,系统也会自动提示错误,以上就是我们接下来要了解的基础内容——标准 I/O。具体的涉及内容包括:三种 I/O 设备,把 I/O 重定向入文件,tr 命令的使用,使用管道链接命令。

    2017-12-02
  • 第十一周作业

    1、详细描述一次加密通讯的过程,结合图示最佳。   发送者:     1)使用单向加密算法提取要发送文件的特征码;     2)使用自己的私钥加密特征码并附加在数据后面;     3)生成用于对称加密的临时密码;     4)用此临时密钥加密数据和已经使用私钥加密后的特…

    2017-05-08
  • keepalived+lvs-dr实现高可用负载均衡

    keepalived+lvs-dr实现高可用负载均衡 实验拓扑 实验要求 RS1与RS2地址为172.18.27.201/202 VS1和VS2地址为172.18.27.103/200,VIP为172.18.27.254 VS1和VS2实现lvs-dr负载均衡及高可用性,且vs为sorry sever。 keepalived是单主模式。 实验步骤 各个主机安…

    2017-05-14
  • 第一周作业

    1. 描述计算机组成及其功能 说到计算机组成,就必须提及计算机之父冯洛伊曼先生。是他早年最先提出了计算机体系结构的设想,并沿用至今。 计算机由五大基本组件组成: 运算器 进行算术运算和逻辑运算的主要部件; 控制器 控制器从存储器中逐条取出指令、分析指令,然后根据指令要求产生一系列命令,控制计算机各部件; 存储器 分为内存和外存,…

    Linux干货 2016-12-02
  • linux计划任务

    linux计划任务、周期性任务执行 未来的某时间点执行一次某任务:at,batch 周期性运行某任务:crontab 执行结果: 会通过邮件发送给用户, 存放在/var/spool/mail/UserName ~]# ss -tnl 或者 ~]# netstat -tnlp  查看是否有25号端口打开,来判断本机的邮件服务是否正常打开 本地电子邮件…

    Linux干货 2016-09-19

评论列表(1条)

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

    写的很好,赞一个。