权限的基本介绍
ls -l的内容详解
ls -l中显示的内容如下(ll)
-
第0位确定文件类型(d目录,-文件,l链接,c字符设备如鼠标键盘,b块设备如硬盘)
-
第1-3位确定所有者的权限(user)
-
第4-6位确定所属组的权限(group)
-
第7-9位确定其他用户拥有该文件的权限,也叫其他组的权限(other)
rwx权限详解
rwx作用到文件:
-
r代表可读(read),可以读取,查看
-
w代表可写(write),可以修改,但是不代表可以删除该文件,删除文件的前提是要对 该文件所在的目录 有写权限,才能删除该文件
-
x代表可执行(execute),可以被执行
rwx作用到目录:
-
r代表可读(read),可以读取,ls查看目录内容
-
w代表可写(write),可以修改,可以对目录内创建+删除+重命名目录
-
x代表可执行(execute):可以进入该目录, 如果没有x权限无法 cd 到该目录
普通用户的权限操作思考
注意:如果你对目录没有执行的权限,那么你对该目录中的所有文件都失去了rwx的权限,因为你连门都进不去
chmod-修改权限
用+ - =变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u g o的总和)
chmod u=rwx,g=rx,o=x 文件/目录名
rwxr-x--x 记得中间要打逗号
chmod u+x 文件/目录名
给用户加上执行权限
chmod a-w 文件/目录名
给所有用户除去写的权限
通过数字变更权限
rwx可以用数字表示为
r(读)=4 w(写)=2 x(执行)=1 因此rwx=4+2+1=7
rwx = 7 rw = 6 rx = 5 wx = 3 通过组合可以更改用户权限
chmod 751 文件/目录名
相当于rwxr-x--x
chmod -R
如果是修改一个目录的权限,带上
-R可以实现遍历目录,
递归
其中的所有目录即文件
面试中的权限划分问题
注意权限分离
在工作中,Linux系统权限和数据库权限不要在一个部门
权限最小原则
-
在满足使用的情况下权限最少优先
-
减少使用root用户,尽量用普通用户+ sudo 提权的方式进行日常操作
-
一般情况下都只给用户在自己家目录的权限,而不让到其他目录
-
普通用户负责项目的哪个部分,就给予哪个部分的权限,比如这个项目有几个模块,有订单模块,用户管理模块,还有工作模块,那这位用户负责订单模块,就给该模块的权限,其他模块的权限不给或者只给读的权限
重要文件chattr的锁定流程
像
/etc/passwd /etc/shadow /etc/fstab /etc/sudoers
等配置文件,日常建议使用
chattr(change attribute)锁定,需要操作时再打开,如锁定/etc/passwd让任何用户都不能随意useradd,除非解除锁定
锁定文件
chattr +i 文件路径
如
chattr +i /etc/passwd
解除文件锁定
chattr -i 文件路径
锁定后包括root用户谁也修改不了这个文件
但是如果有一个坏人,上来把锁定的文件解锁了怎么办呢
我们可以把chattr指令移动到其他地方
先which chattr 知道这个指令放在
/usr/bin/chattr
我们可以用
mv /usr/bin/chattr /opt
把该文件移动到/opt目录下 这样chattr指令就无法使用
只有把该指令从/opt移动回源目录,chattr才能使用
那么这时候,如果坏人用find指令
find / -name chattr
,知道我们藏在哪个目录怎么办呢
我们可以给文件改名,这样用find指令也查不出来
当我们需要解锁的时候,只需要先改回原来的名称,放回命令原来的目录,通过chattr -i 重新解锁文件就可以了
利用工具检测入侵
可以利用
chkrootkit/rootkit hunter
检测rootkit脚本(rootkit是入侵者使用工具,可以在不察觉的情况下建立入侵系统途径)
启动chkrootkit后,会对危险程序和重要路径进行检查和查找,检测系统文件有没有被感染
也可以利用
tripwire
检测文件系统完整性