Linux基本安全防护技术
概述
常用命令
whoami
显示与当前的有效用户ID相关联的用户名
简单的说,就是在操作之前确认一下我是谁
id
查看用户的id
id username查看username用户的id
useradd
添加用户
-m : 一起创建用户的家目录,如果没有-m指令不会创建用户的家目录
-s: 指定用户的登录shell类型, -s /bin/bash
-s 可以不用指定
示例: uaseradd -m -s /bin/bash xxx
adduser命令更好用:
直接 adduser 用户名就好
userdel
删除已存在用户
-r: 用户主目录以及用户主目录下文件一起删除
示例: userdel -r newuser
passwd
修改用户口令
两种典型用法:
修改当前用户口令passwd
修改指定用户口令passwd username
常用术语
访问、主体、客体
访问: 两个实体间的信息流动
主体: 发起访问的实体,主动的, 通常为代表某个用户的进程
客体: 响应访问的实体,被动的, 通常为文件
访问类型
访问就是信息的流动,可以分为读、写、执行三种类型
* 读(Read/r):
* 信息由客体流向主体
* 写(Write/w):
* 信息由主体流向客体
* 执行(Execute/x):
* 将客体的内容引入内存并作为代码执行
补充说明在有些文档中,目录文件的执行,称之为搜索(Search)对目录的内容进行搜索(查找)。
以 cat file为例解读上述基本概念
访问权限(许可位)
文件权限
我们探讨文件权限, 准确的描述是“用户A对文件B的访问权限” , 判断用户A是否被允许访问文件B。 可以分两步:
先判断用户A的类别(所谓A的类别,就是A是属主? 属组? 还是其他?)
在根据用户的类别,查看相应的许可位
属主、属组、“其他”的概念
在探讨一个文件是否被允许访问,首先需要明确访问者的“身份类别",因为文件的访问许可就是以文件的属主、属组、其他来组织的。
以一下内容,参考自《Linux私房菜-基础篇》, 举例比较清晰
关于者和属组的关系, 我们可以使用目前“家庭”的观念来来进行解说。假讴有一家人,家里只有三兄弟,分别是王大毛、王二毛、王三毛三个人, 而这个家庭是登记在王大毛的名下的!所以,“王大毛家有三个人,分别是王大毛、王二毛,王三毛”, 而且这三个人都有自己的房间,并且共同拥有一个客厅喔!
属主的概念: 由于王家三人各自拥有自己的房间, 所以, 王二毛虽然可以进入王三毛的房间,但是二毛不能翻三毛的抽屉喔!那样会被三毛K的! 因为抽屉里面可能有三毛自己私人的东西,例如情书啦,日记啦等等的,这是“私人的空间”,所以当然不能让二毛拿啦。
属组的概念: 由于共同拥有客厅,所以王家三兄弟可以在客厅打开电规机啦、 翻阅报纸啦、坐在沙发上面发呆啦等等的! 反正,只要是在客厅的玩意儿,三兄弟都可以使用喔! 因为大家都是一家人嘛!
这样说来应该有点晓得了喔! 那个“王大毛家”就是所谓的“属组”, 至于三兄弟就是分别为三个“属主”,而这三个属主是在同一个属组里面的喔! 而三个属主虽然在同一属组内,但是我们可以设定“权限” 好让某些用户个人的信息不被属组的属主查询,以保有个人“私人的空间”啦! 而设定属组共享,则可让大家共同分享喔!
“其他”的概念: 那么今天又有个人,叫做张小猪,他是张小猪家的人,与王家没有关系啦! 这个时候,除非王家认识张小猪,然后开门让张小猪进来王家,否则张小猪永进没有办法进入王家, 更不要说迚到王三毛的房间啦!不过,如果张小猪透过关系认识了三毛,并且跟王三毛成为好朊友,那么张小猪就可以透过三毛进入王家啦!呵呵!没错!那个张小猪就是所谓的“其他人,Others”啰!
因此, 简单的说,在 Linux 里面,任何一个文件都具有"User, Group 及 Others”三种身份的个别权限, 我们可以将上面的说明以底下的图来解释:
一般来说, 我们通常用简写字母来表示属主、属组、其他:
u: 属主
g: 属组
o: 其他
从ls命令输出,进行逐列介绍
Panda.Guo@2018-04-03 14:32:43 $ ls -l
drwxr-xr-x 2 panda panda 4096 6月 3 14:32 dir
-rwxr--r-- 1 panda panda 0 6月 3 13:43 file1
权限(访问许可位)
许可位,共计4组组成, 每组3位,
S/Owner/Group/Other
S组
b3 → SUID;b2 → SGID;b1 -> Sticky
Owner组
b3 → Read;b2 → Write; b1 -> Execute
Group组
b3 → Read;b2 → Write; b1 -> Execute
Other组
b3 → Read;b2 → Write; b1 -> Execute;
可以采用chmod来修改权限、
普通文件权限控制:
r 可读文件
w 可写文件
x 可执行文件
目录文件
r:读取目录下的目录项
w:在目录下创建、移动重命名和删除文件
x: 进入到目录的权限,如CD