一、用户账号和组账号概述
1.用户账号类型
(1)超级用户:root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似于 Windows 操作系统中的 Administrator 用户。只有当进行系统管理、维护任务时,才建议使用 root 用户登录系统,日常事务处理建议只使用普通用户账号。
(2)普通用户:账号需要由 root 用户或其他管理员用户创建,拥有的权限受到一定限制,处理问题受到限制,一般只在用户自己的宿主目录中拥有完整权限。
(3)程序用户:在安装 Linux 操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail 等。
who命令查看当前登录用户信息
2.组账号
linux和windows中的组就是将多个用户集合起来,统一分配某种相同的权限(开通或关闭)。
(1)基本组
- 建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组,这个组默认只容纳了一个用户。
- 在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定。
(2)附加组
- 除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定。
基本组:一定要有 有且只有一个
附加组:可有可无,可以有多个
3.ID
(1)UID
Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID(UserIDentity,用户标识号),对于操作系统核心来说,UID 是区分用户的基本依据,原则上每个用户的 UID 号应该是唯一的。
(2)GID
与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity,组标识号)。root 组账号的 GID 号为固定值 。
4.用户账号管理
(1)文件位置
存放用户相关的文件的位置:/etc/passwd
root: x:0:0:root:/root:/bin/bash
- root:用户的名字
- x:密码占位符
- 0:uid
- 0:gid
- root:备注信息
- /root:家目录位置
- /bin/bash:登录时默认加载的shell类型
/etc/shadow 存放保存密码
root:$6$CRrPadZa06M.ZinS$loecUoKRcWXftj.iUCX1MQrFSfRBCAV1Y7HoCGpZVepz9WOTby59xCOhjM2QG41dr5Rz1noYpnQPK/s./mpDP.::0:99999:7:::
(2)添加用户
useradd 用户名
作用:新建用户并且可以修改新建用户的属性
-
在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录。
-
若未明确指定用户的家目录,则在/home 目录下自动创建与该用户账号同名的家目录,并在该目录中建立用户的各种初始配置文件。
-
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/shadow 文件中。
选项: -
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
-
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-
-g:指定用户的基本组名(或使用 GID 号)。
-
-G:指定用户的附加组名(或使用 GID 号)。
-
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。
-
-s:指定用户的登录 Shell /sbin/nologin
(3)密码管理
passwd命令
为用户账号设置密码
选项:
- -d:清空指定用户的密码,仅使用用户名即可登录系统。
- -l:锁定用户账户。
- -S:查看用户账户的状态(是否被锁定)。
- -u:解锁用户账户。
非人机交互的方式修改密码:
(4)修改用户账号的属性
usermod命令
选项:
- -l 更改用户账号的登录名称(Login Name)
- -L 锁定用户账户
- -u 修改用户的 UID 号
- -U 解锁锁用户账户
- -d:修改用户的宿主目录位置。
- -e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
- -g:修改用户的基本组名(或使用 GID 号)
- -G:修改用户的附加组名(或使用 GID 号)
- -s:指定用户的登录 Shell
(5)删除用户
userdel [选项] 用户
- -r 连着家目录一起删除
(6)初始配置文件
用户家目录下的初始配置文件只对当前用户有效
~/ .bash_profile
#此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件。
~/.bashrc
#此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)。
~/.bash_logout
#此文件中的命令将在该用户每次退出时bash shell时使用/etc/bashrc