用户的身份与能力
- Linux系统的管理员为什么是root?
是因为该用户的身份号码即UID(User IDentification)的数值为0
- 在RHEL 7系统中,用户身份有下面这些:
- 管理员UID为 0:系统的管理员用户
- 系统用户UID为1~999:Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
- 普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。
- 为了方便管理属于同一组的用户,Linux系统中还引入了用户组的概念。
- 通过使用用户组号码(GID,Group IDentification),可以把多个用户加入到同一个组中,从而方便为组中的用户统一规划权限或指定任务。
- 在Linux系统中创建每个用户是,将自动创建一个与其同名的**基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳其他用户组,则这个其他用户组称之为扩展用户组**。
- 一个用户只有一个**基本用户组,但是可以有多个** 扩展用户组。
useradd 命令
useradd [选项] 用户名
- 使用useradd命令创建用户账户时:
- 默认的用户家目录会被存放在 /home 目录中,
- 默认的 Shell 解释器为 /bin/bash,
- 默认会创建一个与该用户同名的**基本用户组**。
- 上述默认设置可以根据下表中的 useradd 命令参数自行修改:
参数 |
作用 |
-d |
指定用户的家目录(默认为 /home/username ) |
-e |
账户的到期时间,格式为 YYYY-MM-DD |
-u |
指定该用户的默认 UID |
-g |
指定一个初始的用户基本组(必须已存在) |
-G |
指定一个或多个扩展用户组 |
-N |
不创建与用户同名的基本用户组 |
-s |
指定该用户的默认 Shell 解释器 |
- 示例:
创建一个普通用户并指定家目录的路径、用户的 UID 以及 Shell 解释器。在下面的命令中,请注意 /sbin/nologin ,它是终端解释器中的一员,与 Bash 解释器有着天壤之别。一旦用户的解释器被设置为 nologin,则代表该用户不能登录到系统中:
[root@linuxprobe ~]
[root@linuxprobe ~]
uid=8888(linuxprobe) gid=8888(linuxprobe) groups=8888(linuxprobe)
groupadd 命令
groupadd [选项] 群组名
[root@linuxprobe ~]
usermod 命令
usermod [选项] 用户名
- 在系统中创建用户也就是修改配置文件的过程
- 用户的信息保存在 /etc/passwd 文件中
- usermod命令的参数以及作用:
参数 |
作用 |
-c |
填写用户账户的备注信息 |
-d -m |
参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 |
-e |
账户的到期时间,格式为 YYYY-MM-DD |
-g |
变更所属用户组 |
-G |
变更扩展用户组 |
-L |
锁定用户禁止其登录系统 |
-U |
解锁用户,允许其登录系统 |
-s |
变更默认终端 |
-u |
修改用户的UID |
[root@linuxprobe ~]
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),10(wheel)
- 然后将用户linuxprobe加入到root用户组中,这样扩展组列表中则会出现root用户组的字样,而基本组不会受到影响
[root@bogon ~]
[root@bogon ~]
uid=1000(linuxprobe) gid=1000(linuxprobe) 组=1000(linuxprobe),0(root)
- 再来试试用-u参数修改linuxprobe用户的UID号码值。
[root@bogon ~]
[root@bogon ~]
uid=8888(linuxprobe