linux用户身份与文件权限
一、用户身份
在linux系统中,UID就像我们的身份证一样具有唯一性。
管理员UID为0:系统的管理员用户root
系统用户UID为1~999:linux为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会由独立的系统用户负责运行,进而有效控制被破坏范围。
普通用户UID从1000开始:由管理员创建的用于日常工作的用户。
为了方便管理属于同一组的用户,linux引入用户组的概念。创建每一个用户时,将自动创建一个与其同名的基本用户组。如果该用户被归纳到其他用户组,则这个其他用户组称之为扩展用户组。一个用户只有一个基本用户组,可以有多个扩展用户组。
1、id
用于显示用户的详细信息,可以显示用户的UID、基本组GID、扩展组GID
#格式
id 用户名
[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)
2、useradd
用于创建新的用户账户
#格式
useradd [ 参数] 用户名
使用该命令创建新用户时,默认的用户家目录被存放在/home中,,默认的shell解释器是/bin/bash,而且会创建一个同名的用户组。
参数 | 作用 |
---|---|
-d | 指定用户的家目录 |
-e | 账户的到期时间 |
-u | 指定用户的UID |
-g | 指定一个初始的用户基本组(已存在) |
-G | 指定一个或多个扩展用户组 |
-N | 不创建与用户同名的基本用户组 |
-s | 指定用户的shell解释器 |
3、groupadd
用于创建新的用户组,高效的指派各用户的权限
#格式
groupadd [参数] 群组名
4、usermod
用于修改用户的属性
#格式
usermod [参数] 用户名
参数 | 作用 |
---|---|
-c | 填写用户账户的备注信息 |
-d -m | 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 |
-e | 账户的到期时间,格式为YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止其登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 变更默认终端 |
-u | 修改用户的UID |
将用户默认终端设置成/sbin/nologin后,用户马上就不能登录了。
5、passwd
用于修改用户的名称、过期时间等信息
#格式
passwd [参数] 用户名
参数 | 作用 |
---|---|
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
–stdin | 允许通过标准输入修改用户密码,如echo “NewPassWord” |
-d | 使该用户可用空密码登录系统 |
-e | 强制用户在下次登录时修改密码 |
-S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 |
6、userdel
用于删除已有的用户账户
#格式
userdel [参数] 用户名
参数 | 作用 |
---|---|
-f | 强制删除用户 |
-r | 同时删除用户及用户家目录 |
二、文件权限与归属
在Linux系统中,每个文件都有归属的所有者和所属组,且规定了文件的所有者、所属组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。
文件的可读、可写、可执行权限的英文全称分别是read、write、execute,可以简写为r、w、x,亦可分别用数字4、2、1来表示,文件所有者、文件所属组及其他用户权限之间无关联
上图包含了文件的类型、访问权限、所有者(属主)、所属组(属组)、占用的磁盘大小、最后修改时间和文件名称等信息。通过分析可知,该文件的类型为普通文件,所有者权限为可读、可写(rw-),所属组权限为可读(r–),除此以外的其他人也只有可读权限(r–),文件的磁盘占用大小是34298字节,最近一次的修改时间为4月2日的0:23,文件的名称install.log。
常见的文件类型包括普通文件(-)、目录文件(d)、链接文件(l)、管道文件(p)、块设备文件(b)以及字符设备文件(c)。普通文件的范围特别广泛,比如纯文本信息、服务配置信息、日志信息以及Shell脚本等,都属于普通文件。块设备文件(b)和字符设备文件(c)一般是指硬件设备,比如鼠标、键盘、光驱、硬盘等,在/dev/目录中最为常见。
三、文件的特殊权限
1、SUID
能够让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效)。
所有者权限由x变成s,如果原来没有执行权限x,则会变成S
2、SGID
有两种应用场景:
对二进制程序进行设置时,能够让执行者临时拥有文件所属组的权限;
对目录进行设置时,让目录新建的文件自动继承该目录原有用户组的名称
3、SBIT
当目录设置了SBIT粘滞位权限后,目录中的文件只能被所有者执行删除操作。文件的其他用户权限部分的x执行权限别提换成t,如果原来没有x,则会变成T。
其实SUID、SGID、SBTT也有对应的数字表示法,分别对应为4、2、1,也就是最大权限为7777,第一位数字为特殊权限位。
4、chmod
用于设置文件的一般权限及特殊权限
#格式
chmod [参数] 文件名
使用chmod命令设置特殊权限的参数如下所示
参数 | 作用 |
---|---|
u+s | 设置SUID权限 |
u-s | 取消SUID权限 |
g+s | 设置SGID权限 |
g-s | 取消SGID权限 |
o+t | 设置SBIT权限 |
o-t | 取消SBIT权限 |
5、chown
设置文件的所有者和所有组
#格式
chown 所有者:所有组 文件名
chomd、chown两个命令加-R表示递归操作,即对该目录下的所有文件进行整体操作。
四、文件的隐藏属性
为了阻止篡改系统日志,保障系统安全性,linux中有一种隐藏权限。
1、chattr
用于设置文件的隐藏权限
#格式
chattr [参数] 文件名称
参数如下
2、lsattr
用于查看文件的隐藏权限
#格式
lsattr [参数] 文件名称