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的文件结构
-
查看文件内容
[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
5. /etc/gshadow
查看这个文件
[root@catyuan ~]# head -n 3 /etc/gshadow
root:::
bin:::bin,daemon
daemon:::bin,daemon
bin:::bin,daemon中每一个字段的意义
bin: 用户组名
第二个字段 密码
第三个字段: 用户组管理员的账号
bin,daemon:该用户组的所属账号