5. 9月19日 用户与组
用户概念
Linux 的安全性很高,它完善的用户和权限管理机制功不可没。
Linux 支持多用户
linux一般用于提供各种网络服务,往往服务对象就是系统中的“用户”。用户对linux很重要
1. 用户的类型
在 Linux 系统中,有三种用户。
超级用户:
用户名为 root,用户 UID 为 0。
有着至高无上的权限,可执行所有任务,可访问所有文件,可管理所有用户。
在服务器配置工作完毕后,为了安全,不应该直接使用超级用户。
普通用户:
用户 ID 默认从 1000 开始。供普通用户使用。
系统服务用户:
用户 ID 默认为 1-999。一般为自动安装好,不建议修改。
仅供系统服务使用
2. 用户配置文件
/etc/passwd
cat /etc/passwd文件的格式如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin该文件以 : 作为字段分隔符,保存了本机所有用户的基本信息。以下详细说明其含义。
第 1 栏:账号名称
第 2 栏:原密码位,现已保存至 /etc/shadow 中,此位使用 x 占位
第 3 栏:UID,用户ID
第 4 栏:GID(组ID,后续讲组的时候再说)
第 5 栏:账户说明信息(备注)
第 6 栏:账户家目录路径
第 7 栏:账户使用的 Shell
现在密码的存放位置为 /etc/shadow
关于shell
shell 翻译为外壳,在计算机中是用户与机器沟通的交互界面
一般使用的shell 是bash /bin/bash
特殊的shell:/sbin/nologion,这个shell,我们称为空shell
当用户设置为这个shell ,则用户将无法登录系统
账户管理的相关命令
创建用户
useradd 参数 用户
注意!在使用 useradd 添加用户之后,用户默认是被封锁的,因为还没有设定账户密码
#重要
-u, 用户指定一个 UID
-g, 用户指定的初始/主要群组,这里可以使用 GID 或 群组名
-G, 指定用户需要加入的补充/次要群组,可以使用 GID 或 群组名,多个群组之间用逗号隔开
-s, 设置该账户将启动的 shell 程序不能用纯数字做用户名,
系统在判断用户身份的时候是通过UID,进行判断的
修改用户
usermod 用户
需注意,此处用户必须已经创建!
参数和使用方式和useradd 基本相同
删除用户
userdel 用户
需注意,此处用户必须已经创建!
这样删除并不彻底,用户家目录以及目录中的文件将会保留
参数列表:
-r 删除用户家目录以及目录中所有文件学习阶段不建议使用
查看用户信息
id <账户名>
[user2@localhost root]$ id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1)设置用户密码
passwd <账户名>
注意在 root 的权限下,密码的修改不需要输入旧密码,而且会无视对密码强度的限制
在非 root 的权限下,密码修改需要输入旧密码,也必须通过密码强度的限制
小练习
创建user1,user2,user3
其中user1的UID为2000,其他不做要求
其中user2的备注为u2
其中user3不被允许登录系统
所有用户的密码都为123
useradd -u 2000 user1
useradd -c u2 user2
useradd -s /sbin/nologin user3
passwd user1
passwd user2
passwd user3
cat /etc/passwd组
组是具有相同特征的用户的集合。
在实际环境中,我们通过将用户加入到组进行统一管理。
对于用户加入组,来说分成两种:
1. 自身组,一般情况下用户被创建的时候,会自动创建一个同名的组,这个组是用户的自身组
2. 附加组,用户除了属于自身组之外,还能加入到其他附加组
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
组的配置文件在/etc/group
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
第 1 栏:组名称
第 2 栏:组的密码,完全不使用
第 3 栏:GID,组的编号
第 4 栏:组的成员
创建用户组
增加一个新的用户组:
groupadd 选项 用户组
选项有:
-g GID 指定新用户组的组标识号(GID)。案例
groupadd -g 101 group2
向系统中增加了一个新组group2,同时指定新组的组标识号是101。
删除用户组
删除用户组:
groupdel 选项 用户组
练习 1:创建用户并加入组
创建一个新用户
dave,UID为1003,主目录为/home/dave。创建一个新的用户组
support。将用户
dave添加到support组中。
useradd -u 1003 dave
groupadd support
usermod -G support dave练习 2:修改用户信息
修改用户
dave的备注信息为 "Support Team Member"。更改
dave的家目录为/home/support/dave。
usermod -c 'Support Team Member' dave
mkdir /home/support
mkdir /home/support/dave
usermod -d /home/support/dave dave练习 3:用户组操作
创建一个新的用户组
sales。创建两个新用户
eve和frank,并将他们同时加入到sales组。查看
sales组中的所有成员。
groupadd sales
useradd -G sales eve
useradd -G sales frank
cat /etc/group练习 4:用户加入多个组
创建一个新的用户组
hr。将用户
frank添加到hr组,使得frank同时属于sales和hr组。
groupadd hr
usermod -G sales,hr frank