Linux 系统的管理员之所以是 root,并不是因为它的名字叫 root,而是因为该用户的身 份号码即 UID(User IDentification)的数值为 0。在 Linux 系统中,UID 就相当于我们的身份 证号码一样具有唯一性,因此可通过用户的 UID 值来判断用户身份。在 RHEL 7 系统中,用
    户身份有下面这些。
    管理员 UID 为 0:系统的管理员用户。
    系统用户 UID 为 1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提
    权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏
    范围。
    普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用户。
    需要注意的是,UID 是不能冲突的,而且管理员创建的普通用户的 UID 默认是从 1000 开始的(即使前面有闲置的号码)。
    为了方便管理属于同一组的用户,Linux 系统中还引入了用户组的概念。通过使用用 户组号码(GID,Group IDentification),我们可以把多个用户加入到同一个组中,从而方 便为组中的用户统一规划权限或指定任务。假设有一个公司中有多个部门,每个部门中又 有很多员工。如果只想让员工访问本部门内的资源,则可以针对部门而非具体的员工来设 置权限。例如,可以通过对技术部门设置权限,使得只有技术部门的员工可以访问公司的 数据库信息等。
    另外,在 Linux 系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且 这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户 组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满 足日常的工作需要。

    useradd创建用户
    image.png
    5.1.2 groupadd 命令
    groupadd 命令用于创建用户组,格式为“groupadd [选项] 群组名”。
    为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同 一个组里面,这样便可以针对一类用户统一安排权限。创建用户组的步骤非常简单,例如使 用如下命令创建一个用户组 ronny:
    [root@linuxprobe ~]# groupadd ronny
    5.1.3 usermod 命令
    usermod 命令用于修改用户的属性,格式为“usermod [选项] 用户名”。
    前文曾反复强调,Linux 系统中的一切都是文件,因此在系统中创建用户也就是修改配 置文件的过程。用户的信息保存在/etc/passwd 文件中,可以直接用文本编辑器来修改其中的 用户参数项目,也可以用 usermod 命令修改已经创建的用户信息,诸如用户的 UID、基本/扩 展用户组、默认终端等。usermod 命令的参数以及作用如表 5-2 所示。
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    chmod u+s cat:为cat二进制文件添加SUID权限。
    1)、只作用在二进制程序文件中(如作用在普通文件中没有任何意义)。
    2)、在默认情况下,用户发起一个进程,该进程的属主是发起者,而并非是文件的属主,此时进程是以发起者的身份去运行。
    3)、如果给二进制程序文件添加了SUID权限后,用户发起一个进程,该进程的属主为程序文件所属的属主,而并非是发起者。
    2人点赞

    随笔

    作者:iCarpe_DIEM
    链接:https://www.jianshu.com/p/4ea1e6aa2aa7
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    5.3.2 SGID
    SGID 主要实现如下两种功能:
    让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png