Linux基础命令五:账号与用户组

1.UID与GID

  • UID与GID 的意义

     UID:用户ID。在/etc/passwd中定义
     GID:用户组ID。在/etc/group中定义
    
  • 不要随意修改UID与GID对应文件中的内容,即/etc/passwd和/etc/group

    1.创建一个新用户
    [root@catyuan ~]# useradd xixi
    [root@catyuan ~]# ll -d /home/xixi
    drwx------ 2 xixi xixi 4096 Nov 10 18:46 /home/xixi
    [root@catyuan ~]# id xixi
    uid=500(xixi) gid=500(xixi) groups=500(xixi)
    2.将xixi的UID修改为200看会发生什么
    [root@catyuan ~]# vim /etc/passwd
    按i进入编辑模式,将下面这行修改
    xixi:x:200:500::/home/xixi:/bin/bash     #将这一行的第一个500改为200
    修改完成后,按esc退出编辑模式,输入:wq保存退出
    [root@catyuan ~]# ll -d /home/xixi
    drwx------ 2 500 xixi 4096 Nov 10 18:46 /home/xixi
    ##此时,所属用户变成了500。是由于我们修改UID,导致500找不到对应账户,所以显示数字
    3.将UID改回500,否则有些程序将无法运行
    [root@catyuan ~]# vim /etc/passwd
    xixi:x:500:500::/home/xixi:/bin/bash
    [root@catyuan ~]# ll -d /home/xixi
    drwx------ 2 xixi xixi 4096 Nov 10 18:46 /home/xixi
    
  • Linux对UID的限制

ID范围 该ID用户特性
0(系统管理员) 系统管理员。若想要其他用户具有root的权限,将这个账号的UID改为0就可以了
1~499(系统账号) 留给系统使用的ID。除了0以外的其他数字权限上并没有什么不同,留前500只是习惯。系统账号又分为两种:1~99由distributions自行创建的;100 ~ 499若是用户有系统账号需求时,可以使用的
500~65535(可登录账号) 给一般用户使用,目前Linux内核(2.6.x)已经支持到2^32-1了

2./etc/passwd的文件结构

  • 每一行代表一个账号,有几行则就有几个账户。不要随意删除这些系统自带的账户,因为里面有很多账号是系统正常运行必须要的。例如:bin,daemon,bin,nobody等

  • 查看一下这个文件的内容

    [root@catyuan ~]# head -n 3 /etc/passwd
     root:x:0:0:root:/root:/bin/bash
     bin:x:1:1:bin:/bin:/sbin/nologin
     daemon:x:2:2:daemon:/sbin:/sbin/nologin
    
  • 关于这一行每个字段的意义 root:x :0:0:root:/root:/bin/bash

    root:     账号。用来对应UID,如:root对应的UID为0。
    x:        密码。这个文件是所有程序都能读取,为安全起见,将这个字段的密码数据放在/etc/shadow里了,此处显示x
    0:        UID。用户ID,与/etc/passwd有关
    0:        GID。用户组ID,与/etc/group有关。这个文件结构与/etc/passwd差不多
    root:     用户信息说明列,没有什么重要用途,用来解释账号的意义。在提供finger功能时,这个字段可以提供信息
    /root:    这个用户的主文件夹。其他用户的家目录默认为/home/用户名
    /bin/bash:shell脚本
    :          为分隔符
    

3. /etc/shadow的文件结构

  • /etc/shadow的权限设置。仅root可读取,不要改动这个文件的权限

    -rw------或-r-------
    
  • /etc/passwd的权限设置

    -rw-r--r-
    
  • 查看一下文件的内容

        [root@catyuan ~]# head -n 3 /etc/shadow
        root:$6$xz2hEpYX$hhta4lNdy6yPo5E8c/NIiNhlBv8zmP10YyibZXSQcau1JVV7z5HKjZvC//oREcYimNewA/1eWFIUN2q2BS4221:17842:0:99999:7:::
        bin:*:15980:0:99999:7:::
        daemon:*:15980:0:99999:7:::
    
  • 关于bin:*:15980:0:99999:7:::每一个字段的意义

    bin:      账号。必须与/etc/passwd相同
     *:       密码。这个字段内的数据才是真正的密码,而且经过编码加密。
     15980:   最近改变密码的日期。Linux计算日期是以1970年1月1日进行累加的,1971年1月1日为366
               若想知道某天的累积日期,可使用这个命令进行计算:ehco $ (($(date --date="2018/11/12" +%s)/86400+1
     0:       密码不可被更改的天数。为0表示随时可以更改,若为3,则三天不能更改密码
     999999:  密码需要重新更改的天数。为999999(273年)代表没有更改的强制要求
     7:       密码需要更改期限前的警告天数
     第七个字段:密码过期后的账号宽限时间(密码失效)
     第八个字段:账号失效日期,在 规定时间后,将无法再使用该账号
     第九个字段:保留
     :        分隔符
    

4. /etc/group的文件结构

  • 查看文件内容

    扫描二维码关注公众号,回复: 4038645 查看本文章
    [root@catyuan ~]# head -n 3 /etc/group
    root:x:0:
    bin:x:1:bin,daemon
    daemon:x:2:bin,daemon
    
  • 关于bin:x :1:bin,daemon的意义

    bin:用户组名称
    x:用户组密码。通常不需要设置,这个密码是设置给用户组管理员的。密码移动到/etc/shadow下了
    GID:用户组的ID
    

猜你喜欢

转载自blog.csdn.net/qq_42816766/article/details/83988627