• Linux 用户和权限


    • 用户和组的相关概念

      账号:是一种用来记录单个用户或是多个用户的数据。在Linux 上的账号可以分成两类

           用户账号  用来储存单一用户的数据,你可以使用一个用户账号,来储存某一个用户的数据。

           群组账号  用来储存多个用户的信息,每一个群组账号可以用来记录一组用户的数据。

      依照账号的位置

      本机账号: 储存于本机硬盘中的账号数据,我们称为本机账号。本机账号使用范围局限在账号建立的 Linux 系统上,如果超出范围时,本机账号将无法使用。比如你在自己电脑上登录用的账号和密码,正常是无法在其它的电脑上使用的。

      本机账号的优点是简单易用,你无须作额外的设置,就可以直接建立本机账号;但缺点则是无法具备延展性(Scalability)。比如你在一个拥有很多主机的环境中,想拥有一个在每台主机都可以登录的账号时,你就需要在所有的主机上都建立相关的用户

      网域账号: 你也可以把大量的计算机组织成为一个网域,然后在网域中的某一台 Linux 上建立账号数据,并且通过某些通信协议,将账号数据分享出来。当其他计算机需要取得账号数据时,再通过网络调用这些分享的账号即可。这种账号我们称为网域账号 (Domain Account)。

      网域账号的优点在于具备延展性。在大规模的环境中,使用网域账号往往能节省管理账号的时间;但网域账号也有缺点,其最大的缺点就是要配置网域账号前,你必须先建立“域”的环境才行。

      依照账号的功能

            用户账号部分:包含了超级用户、普通用户;而普通用户中还可细分为系统用户、真实用户两种。

            群组账号部分:包含了超级用户群组、系统群组以及用户自定义组三大类。

    • 用户账号管理

      •  本机的用户账号数据储存于/etc/passwd文件中。与其他的配置文件一样,passwd 也是一个文本文件,因此,你可以直接使用文字处理程序,例如 cat 或 less 浏览其中的内容。
        root:x:0:0:root:/root:/bin/bash
        bin:x:1:1:bin:/bin:/sbin/nologin
        daemon:x:2:2:daemon:/sbin:/sbin/nologin
         /etc/passwd 权限必须是0644,每一行代表一个用户的账号数据,每一行又使用冒号(:)分隔为几个部分
         USERNAME:PASSWORD:UID:GID:COMMENT:HOMEDIR:SHELL
         USERNAME: 用户识别名称,也是登录的名称
         PASSWORD: 密码位,用于存储用户的密码,为了安全起见,密码放在另一个文件中,这里统一用x
         UID: 用户识别号,0表示为管理员,非0为普通用户
         GID: 组识别号,用来识别用户组的身份,同样0为管理员组,非0为系统群组或者自定义组
         COMMENT: 描述信息
         HOMEDIR: 家目录位置
         SHELL: shell类型
        这个文件我们就介绍完了,现在我们来看下用户管理的相关命令

      • useradd
        -u UID                          用来指定账号的 UID,如果省略这个参数,useradd会自动以最后一个可用的 UID 作为新账号的 UID。 如果你指定的 UID 已经使用过,useradd 将会显示错误信息,此时你可以配合 -o 参数,告诉 useradd 允许重复的 UID。
        -g GROUP                        定义用户的主要群组。使用 -g 参数前,GROUP 必须已经存在。
        -d HOME                          指定用户的主目录。默认的主目录是建立在 /home/ 目录下,而且目录名称与用户名称相同。
        -s SHELL                         指定用户登录执行的程序。
        -c COMMENT                  指定用户的批注说明。如果批注文字包含空白,请记得使用双引号 (") 包起来。
        -r                                     这个参数用来指出建立一个系统用户的账号。
        这些参数大多数可以同时使用,可以根据自己的需求指定,如:
        useradd -u 1500 -g hello -d /home/hello -s /bin/bash -c "this is a test user" hello
      • usermod 是用来修改用户相关信息的,和useradd使用的参数很多是相同的,用法也是一样的,除此之外usermod命令还有一些额外的参数
        -l NEWNAME                           修改账号的用户名称,NEWNAME 即是新的账号名称。
        -L                                            锁定账号,一经锁定的账号将无法用来登录系统。
        -U                                            解除锁定。
        userdel                                    删除用户,有一个常用参数-r,含义是删除用户的相关数据,包括家目录,邮箱。

        id
        [root@manage01 ~]# id hello
        uid=1000(hello) gid=1000(hello) 组=1000(hello)
        [root@manage01 ~]# id -u hello
        1000

        whoami
        [root@manage01 ~]# whoami
        root
    • 组账号管理

      本机的群组账号数据被储存在 /etc/group 文件中,权限也必须为0644,与 /etc/passwd 一样,这也是一个文本文件。 
      root:x:0:
      bin:x:1:
      daemon:x:2:

      这与/etc/passwd文件的格式类似

      GROUPNAME:PASSWORD:GID:MEMBERS 

      GROUPNAME: 组名

      PASSWORD: 组密码,这里也和passwd文件一样是个x

      GID: 群组识别号

      MEMBERS: 组成员

      groupadd 建立组
      -g GID            指定群组账号的标识符
      -r                         指定添加的群组成为系统群组
      -f                         强制执行。 在一般的情况下,groupadd 不允许建立一个与使用过的 GID 相同的群组账号,而使用这个参数时,groupadd 将会建立相同 GID 的 群组账号。

      groupmod 修改群组信息
      -g GID                  修改群组账号的标识符。GID 就是新的标识符。
      -n NEWNAME       用来修改群组的名称。NEWNAME 就是新的组名。

      groupdel 删除群组账号

    • 密码管理

      passwd 修改用户密码
      -d             删除用户密码,亦即把文件中的密码字段清空。
      -l              这个参数用来锁定账号,账号一经锁定,用户再怎样输入密码,都会被判断为错误。这个参数只能由 root 使用,普通用户无法用来锁定自己的账号。

      gpasswd 修改组密码
      -r             用来删除群组的密码。
      -R            锁定 GROUP 的群组密码。

      群组管理员
      群组管理员可以
      指派群组管理员,如果有多个管理员用“,”分隔,如果想删除群组管理员,保持位置为空
      gpasswd -A USER    GROUP
      gpasswd -A hello    test#将test组的管理员设置为hello
      gpasswd -A '' test    #删除test组的管理员
      加入与删除群组成员
      gpasswd -a USER GROUP
      gpasswd -d USER GROUP
     

               管理密码的有效期限

                  [root@manage01 ~]# chage -l hello
        最近一次密码修改时间 :从不
        密码过期时间 :从不
        密码失效时间 :从不
        帐户过期时间 :从不
        两次改变密码之间相距的最小天数 :0
        两次改变密码之间相距的最大天数 :99999
        在密码过期之前警告的天数 :7

         chage
          -m 设置密码修改的最小天数
          -M 设置密码修改的最大天数
          -d 设置密码最后修改日期
          -I 设置密码过期后,锁定账号的天数
          -E 设置账号过期日期,0=立即过期,-1=永不过期
          -W 设置密码过期前的警告天数
         -l 查看指定用户的相关信息
        -h 帮助    

    •  
  • 相关阅读:
    sql server 存储过程中使用变量表,临时表的分析
    C#实现图(Graph)
    C#实现平衡多路查找树(B树)
    设置webstorm缩写代码
    img标签在div中水平垂直居中--两种实现方式
    setInterval()的时间参数无法随参数的变化而变化
    seajs的模块化开发--实践笔记
    Xcode执行Analyze静态分析
    iOS10 下APP内跳转到系统设置WIFI界面
    convertRect view之间坐标系的转换
  • 原文地址:https://www.cnblogs.com/woodware/p/12893664.html
Copyright © 2020-2023  润新知