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 帮助    

 

 


  •  

以上是 Linux用户和权限 的全部内容, 来源链接: utcz.com/z/516439.html

回到顶部