《linux 就该这么学》 第五章 学习总结
第五章主要讲了用户的身份管理,与文件权限的管理
一、linux中的身份
linux设计的初衷时面向多用户,多任务的操作系统。
在linux中为了在安全的前提下将用户的身份分为了三个等级:
管理员:uid为0,权限最大身份,也叫root用户。可以管理系统中的一切
系统用户:uid为1~999,linux系统为了避免因为某个服务程序出现漏洞而被黑客提权至整个服务器,默认服务程序会有独
立的系统用户负责运行,进而有效控制被破坏的范围。
普通用户:uid为1000开始,由管理员创建的用于日常工作的用户。
注意uid就像每个人的身份证,是唯一的。
二、用户管理
常用用户管理命令如下:
useradd [选项] 用户名。
此命令常做添加用户,如非必要不需要添加什么选项,新建的用户默认从1000以后的已有用户累加,用户同名家目录 创建在/home目录下。
例如: useradd zhangsan //添加张三用户
id [选项] 用户名
此命令常用来查看用户信息
例如: id zhangsan
userdel [选项] 用户名。
常用选项:
-r 同时删除用户家目录
-f 强制删除
例如: userdel -r 张三 //删除张三及张三的家目录
usermod [选项] 用户名
常用选项:
-dm -d -m 连用 重新指定用户的家目录,并将原有的数据迁至新指定的目录下
-g 变更所属用户组
-G 变更扩展用户组
-u 修改用户uid
passwd [选项] 用户名
常用选项:
-l 锁定用户,禁止登录
-u 解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码。
-d 是改用户可以使用空密码登录
-e 强制用户在下次登录时修改密码
-S 显示用户的密码是否被锁定,以及密码采用的加密算法名称
三、文件权限的管理
linux中一切皆文件,但文件又分为如下文件
- 表示普通文件
d 表示目录文件
l 表示链接文件
b 块设备文件
c 字符设备文件
p 管道文件
其中最常见的文件也就时 普通文件 ,目录文件 , 块设备文件。
如何查看这些属性呢?
使用 ls -l 就能看到文件的详细熟悉
例如 dr-xr-x---. 共有11字符表示
第一个字符 d 表示这是个目录文件
第2~4个字符 r-x 表示所有者root拥有读、执行的权限。对于目录来说可执行就是可以打开此目录
第5~7个字符 r-x 表示所属组拥有拥有读、执行的权限。
第8~10个字符 --- 表示其他用户 没有读、写、执行的权限
第11个字符 "." 表示没有设置隐藏权限,当"."变成"+"号时就表示设置了隐藏权限
四、特殊权限
1、什么是SUID 权限
SUID意思就是让程序的执行这拥有属主的权限。
比如: linux系统中所有用户的密码都保存在/etc/shadow。它的权限是----------.
除了root用户没有任何人能打开。但是每个用户都需要修改密码,并将自己的密码写入到这个文件中。
这时其他用户就可以通过/usr/bin/passwd命令来修改密码,并将自己的密码写入到这个文件中。
passwd的权限是:
可以看到任何人都能执行它,并且在设置了SUID特殊权限位后,执行者就可以临时获得属主的权限。
注意SUID的局限性:
1)、SUID权限仅对二进制程序(binary program)有效;
2)、执行者对于该程序需要具有x的可执行权限;
3)、本权限仅在执行该程序的过程中有效(run-time);
4)、执行者将具有该程序拥有者(owner)的权限。
SUID只能运行在二进制的程序上(系统中的一些命令),不能用在脚本上(script),因为脚本还是把很多的程序集合 到一起来执行,而不是脚本自身在执行。同样,这个SUID也不能放到目录上,放上也是无效的。
2、什么是SGID权限
SGID 意思就是让执行者获得属组的权限
SGID 有两个功能:1)让执行者拥有属组的权限。2)在拥有SGID权限的目录下创建的文件自动继承SGID权限。
SGID 常用在目录文件上,主要应用的是第2个功能。
例如:现在需要让部门中的所有人都可以共享文件,就可以创建一个部门目录,使这个目录下获得SGID权限。这样
就可以使所有能打开这个目录的人获得属组的权限。达到共享文件的目的。
注意SGID的局限:
1)、SGID对二进制程序有用;
2)、程序执行者对于该程序来说,需具备x的权限;
3)、SGID主要用在目录上;
3、什么是SBIT权限
SBIT 意思就是保护拥有SBIT权限的目录下的文件不能被属主以外的人删除。
注意SBIT 只针对目录有效。
五、文件属性的管理与操作
chmod [augo+/-rwxst] 文件名
用法:
a 所有人
u 属主
g 属组
o 其他人
+ 增加权限
- 取消权限
r 、 w 、 x 分别是 读,写,执行权限
s 针对修改对象分别是 SUID 、SGID 权限
t 只能是SBIT权限
chown 属主:属组 文件名
下面是演示
六、文件的隐藏属性
文件除了以上权限外还可以根据需要增加隐藏权限。
使用 chattr [选项] 文件 可以增加或取消文件的隐藏属性。
文件常用的隐藏权限有如下几种,这里不全部列举,需要扩展的可以自行查找
i 无法对文件进行修改,若对目录设置了该参数,则只能修改其中子文件的内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除文件
S 文件内容更改后立即同步到硬盘
s 彻底从硬盘中删除,不可恢复
A 不再修改这个文件或目录的最后访问时间
b 不再修改文件或目录的存取时间
u 当删除该文件后依然保留其再硬盘中的数据,方便日后恢复
lsattr 文件名 可以查看文件或目录的隐藏属性
下面是简单的演示
七、文件访问控制列表
前面所讲的各种权限只能针对某一类用户,而无法针对某个用户去设置。而文件控制列表(ACL)可以做到针对某一 用户设置文件操作权限。
setfacl[选项] 文件名
常用选项如下:
-m 修改访问控制列表
-R 递归操作,针对目录
-b 删除访问控制列表
-d 应用默认访问控制列表
getfacl [选项] 文件名 , 常用形式 getfacl 文件名
下面是演示