用户身份与能力
设置周期
在Linux系统中,用户的身份号码即UID(User IDentification)具有唯一性,因此可通过用户的UID值来判断用户身份。
UID为0:系统的管理员用户。
(Linux系统的管理员之所以是root,是因为该用户的UID为0,与用户名叫什么无关。)
UID为1~999:系统用户 Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。
useradd命令:
用于创建新的用户,格式:useradd [选项] 用户名。
创建用户账户时,默认的用户家目录会被存放在/home目录中,默认的Shell解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组。
默认设置可以用以下useradd命令参数自行修改。
groupadd命令:
用于创建用户组,格式:groupadd [选项] 组名。
groupadd limuzi #创建用户组limuzi。
(为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把一群用户加入到同一个组里面,这样便可以针对一类用户统一安排权限。)
usermod命令:
用于修改用户的属性,格式:usermod [选项] 用户名。
用户的信息保存在/etc/passwd文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用usermod命令修改已经创建的用户信息,诸如用户的UID、基本/扩展用户组、默认终端等。usermod命令的参数以及作用如下。
passwd命令:
** 用于修改用户密码、过期时间、认证信息等,格式:passwd [选项] [用户名]。**
普通用户只能使用passwd命令修改自身的系统密码,而root管理员则有权限修改其他所有人的密码。
更酷的是,root管理员在Linux系统中修改自己或他人的密码时不需要验证旧密码,这一点特别方便。既然root管理员可以修改其他用户的密码,就表示完全拥有该用户的管理权限。passwd命令中可用的参数以及作用如下。
userdel命令:
userdel命令用于删除用户,格式为“userdel [选项] 用户名”。
如果我们确认某位用户后续不再会登录到系统中,则可以通过userdel命令删除该用户的所有信息。
在执行删除操作时,该用户的家目录默认会保留下来,此时可以使用-r参数将其删除。userdel命令的参数以及作用如下。
文件权限与归属
在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符来加以区分,常见的字符如下所示。
-:普通文件。
d:目录文件。
l:链接文件。
b:块设备文件。(键盘等)
c:字符设备文件。
p:管道文件。
文件权限:可读(r)、可写(w)、可执行(x),也可以分别用数字4、2、1表示。
通过ls命令查看到的文件属性信息
文件的特殊权限
SUID
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。
查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x改变成s就意味着该文件被赋予了SUID权限。另外有读者会好奇,那么如果原本的权限是rw-呢?如果原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S。
SGID
SGID主要实现如下两种功能:
1 .让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
2 .在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。例在目录设置SGID,则用户在该目录创建文件,文件的默认的用户组将由用户自己的基本用户组变为目录的所属组,使得同组内的其他用户都能访问该文件。
chmod和chown
1 . chmod命令是一个非常实用的命令,能够用来设置文件或目录的权限,格式为“chmod [参数] 权限 文件或目录名称”。如果要把一个文件的权限设置成其所有者可读可写可执行、所属组可读可写、其他人没有任何权限,则相应的字符法表示为rwxrw----,其对应的数字法表示为760。
2 . chown命令可以设置文件或目录的所有者和所属组,其格式为“chown [参数] 所有者:所属组 文件或目录名称”。
3 . chmod和chown命令是用于修改文件属性和权限的最常用命令,它们还有一个特别的共性,就是针对目录进行操作时需要加上大写参数-R来表示递归操作,即对目录内所有的文件进行整体操作。
SBIT
确保用户只能删除自己的文件,而不能删除其他用户的文件。如果赋予了SBIT权限,则其他用户中的可执行权限位会从x/-变为t/T。
常用参数:
a:所有人
u:所有者
g:所有组
o:其他用户
r:可读权限
w:可写权限
x:可执行权限
s:suid或sgid权限(一般配合u或g参数使用,如果配合a参数,则代表同时设置suid和sgid)
t:sbit权限(一般配合o参数使用,配合u或g参数使用无任何效果,配合a参数使用效果等同于配合o参数)
+:添加权限
-:移除权限