Linux是一个多用户、多任务的操作系统,具有很好的稳定性与安全性,在幕后保障Linux系统安全的则是一系列复杂的配置工作。本章将详细讲解文件的所有者、所属组以及其他人可对文件进行的读(r)、写(w)、执行(x)等操作,以及如何在Linux系统中添加、删除、修改用户账户信息。我们还可以使用SUID、SGID与SBIT特殊权限更加灵活地设置系统权限功能,来弥补对文件设置一般操作权限时所带来的不足。隐藏权限能够给系统增加一层隐形的防护层,让heike最多只能查看关键日志信息,而不能进行修改或删除。而文件的访问控制列表(Access Control List, ACL)可以进一步让单一用户、用户组对单一文件或目录进行特殊的权限设置,让文件具有能满足工作需求的最小权限。

在RHEL 7系统中,用户身份有下面这些:

管理员UID为0:系统的管理员用户。

系统用户UID为1~999: Linux系统为了避免因某个服务程序出现loudong而被heike提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。

普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。

需要注意的是,UID是不能冲突的,而且管理员创建的普通用户的UID默认是从1000开始的(即使前面有闲置的号码)。

useradd命令

​可以使用useradd命令创建用户账户。使用该命令创建用户账户时,默认的用户家目录会被存放在/home目录中,默认的Shell解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组。​

#yyds干货盘点#用户身份与文件权限_普通用户

groupadd命令

​为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同一个组里面,这样便可以针对一类用户统一安排权限。创建用户组的步骤非常简单,例如使用如下命令创建一个用户组ronny:

groupadd ronny

usermod命令

​usermod命令用于修改用户的属性,格式为“usermod [选项]用户名”

用户的信息保存在/etc/passwd文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用usermod命令修改已经创建的用户信息,诸如用户的UID、基本/扩展用户组、默认终端等。usermod命令的参数以及作用。

#yyds干货盘点#用户身份与文件权限_用户组_02

[root@10 ~]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@10 ~]# usermod -G root sjx
[root@10 ~]# id sjx
uid=1001(sjx) gid=1001(sjx) groups=1001(sjx),0(root)

passwd命令

passwd命令用于修改用户passwd、过期时间、认证信息等,格式为“passwd [选项] [用户名]”。普通用户只能使用passwd命令修改自身的系统passwd,而root管理员则有权限修改其他所有人的passwd。更酷的是,root管理员在Linux系统中修改自己或他人的passwd时不需要验证旧passwd,这一点特别方便。既然root管理员可以修改其他用户的passwd,就表示完全拥有该用户的管理权限。

#yyds干货盘点#用户身份与文件权限_普通用户_03

userdel命令

​userdel命令用于删除用户,格式为“userdel [选项]用户名”。如果我们确认某位用户后续不再会登录到系统中,则可以通过userdel命令删除该用户的所有信息。在执行删除操作时,该用户的家目录默认会保留下来,此时可以使用-r参数将其删除。userdel命令的参与以及作用。

#yyds干货盘点#用户身份与文件权限_linux系统_04