系统权限管理和注意
系统权限
文件或目录的权限和用户及用户组关联,每个文件或目录有9个基础权限位,每三个字符为一组,分别是属主、属组和其他用户权限位
示例:
rwxr-xr-x user、Group、other
判断条件
1、判断是否所属用户
2、判断是否所属组
3、不满足按照其他权限去访问
文件权限对应表
字母 含义 对应权限
r(read) 旋取权限 4
w(write) 写入权限 2
x(execute) ”执行权限 1
-(没有权限) 没有权限 0
修改命令
chown:Linux中用来改变某个文件属主的命令
chmod:Linux中用来改变某个文件的访问模式的命令
1.权限修改命令chmod
chmod [ugoa] [+-=] [rwx] filename
//修改文件目录权限wx-R级联修改
mkdir dir//建立目录
touch dir/file//建立文件
示例1:
chmod 777 dir/ //修改dir目录权限为777
chmod u+rwx,g+rwx,o+rwx
示例2:
chmod 666 dir/file //修改file文件权限为666
chmod u+rw,g+rw,o+rw
示例3:
chmod-R7odir///修改目录及子目录权限
第二种方式
所属用户w,属组用户只读,其他用户没权限
4+2=6 4 0
常用几种组合
默认目录755
默认文件644
目录:755 750 700
文件:644 640 600
2.属主属组修改命令chown
chown //更改属主以及属组IR:级联修改
mkdir dir //创建目录
touch dir/file test /创建文件
mkdir dir/dir test /创建目录
示例1:
chown oldboy dir//修改所属主为bin
ll -d dir/ //检查属主
drwxr-xr-x2 oldboy root40967月2200:50dir/
示例2:
chown adm dir/ //修改所属组为adm
ll -d dir/
//检查属组 drwxr--xr-x2 oldboy adm40967月2200:50dir/
基本权限
基础权限设置接介绍
权限 对文件的影响 对目录的影响
读取权限(r) 具有读取阅读文件内容权限 具有浏览目录及子目录
写入权限(w) 具有新增、修改文件内容的权限 具有增加和删除目录内文件
执行权限(x) 具有执行文件的权限 具有访问目录的内容(取决于目录中文件权限)
文件权限实验案例:
//默认文件其他用户仅有读权限
[root@oldboy ~]echo "date">/tmp/date.txt
[root@oldboy ~]ll /tmp/date.txt
-rw-r--r--.1 root root 5 Aug 16 06:37 /tmp/date.txt
//测试读权限(无法执行或删除)
[root@oldboy ~]su oldboy
[oldboy@oldboy ~]cat /tmp/date.txt
date
[oldboy@oldboy ~]echo "test">/tmp/date.txt
-bash:/tmp/date.txt:Permission denied
[oldboy@oldboy ~]/tmp/date.txt
-bash:/tmp/date.txt:Permission denied
//增加x执行权限
[root@oldboy ~]chmod o+x /tmp/date.txt
[root@oldboy ~]ll /tmp/date.txt
-rw-r--r-x.1 rootroot 5 Aug 16 06:37 /tmp/date.txt
//测试执行权限
[oldboy@oldboy ~]/tmp/date.txt
Thu Aug1606:40:56CST2018
rwx对文件的影响
读取权限(r)
文件只有权限:具有读取阅读文件内容权限
1.能使用查看类命令cat、head、tail、less、more
2.不能复制、不能移动、不能编辑,不能删除
写入权限(w)
如果文件只有w权限:具有新增、修改文件内容的权限
1.使用vim编辑,会提示权限拒绝,但可强制保存,会覆盖之前文件内容
2.使用echo命令重定向或追加重定向技术可以往文件内写入数据
3.使用cat命令读取文件,将读取到的文件输出交给仅有w权限文件的输入
4.不能复制、不能移动、不能删除,(删除需要看上级目录w的权限)
执行权限(x)
文件只有权限,具有执行文件的权限。
注意:普通用户需要有权限,管理员不需要
1.不能执行、查看、编辑、复制、移动、删除
案例:
针对tech部门的访问目录/home/tech设置权限,要求如下:
1.root用户和tech组的员工可以读、写、执行:
2.其他用户没有任何权限。
实现思路:
1.创建所需目录
mkdir -p /home/tech
2.创建所需用户、组
groupadd tech
useradd oldboy -g tech
useradd test
3.设置所属和权限
chmod 770 -R /home/tech
chown root.tech -R /home/tech
4.验证用户权限
特殊权限
set_uid
set_gid
sticky沾滞位
set_uid
用户设置位
对可执行文件的setuid(或setgid)权限表示将以文件的用户(或组)身份运行命令,而不是以运行命令的用户身份,以password命令为例:
目录粘滞位
可以为文件删除设置特殊限制,仅文件所有者(和root用户)可以删除目录中的文件。
最后,对某目录的setgid权限表示在该目录中创建的文件将继承该目录的组所属关系,而不是继承自创建用户,这通常用于组协作目录,将文件从默认的专有组自动更改为共享组。
特殊权限对文件和目录的影响
特殊权限 对文件的影响 对目录的影响
u+s suid 以拥有文件的用户身份,而不是运行文件的用户身份执行文件 无影响
g+s sgid 以拥有文件的组身份执行文件 在目录中最新创建的文件将其组所有者设置为与目录的组所有者相匹配
o+t sticky 无影响 对目录具有写入权限的用户仅可以删除其所拥有的文件
而无法删除或强制保存到其他用户所拥有的文件
用符号表示:setuid=u+s;setgid=g+s;sticky=o+t
用数值表示:setuid=4;setgid=2;sticky=1
//检查passwd文件权限,匿名用户没有权限查看
[root@oldboy ~]chmod 640 /etc/passwd
[root@oldboy ~]ll /etc/passwd
-rw-r-----1 root root 1548 Dec 9 18:45 /etc/passwd
//使用普通用户无法查看
[oldboy@oldboy root]s cat /etc/passwd
cat:/etc/passwd:Permission denied
//给cat命令赋予suid
[root@oldboy ~]chmod 4755 /usr/bin/cat
[root@oldboy ~]ll /usr/bin/cat
-rwsr-xr-x.1 rootroot 48568 Mar 23 2017 /usr/bin/cat
//再次使用普通用户查看
[oldgirl@oldboy ~]s cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
suid授权方法
suid
4000权限字符s(S),用户位置上的x位上设置。
授权方法:chmod4755 passwd
chmod
u+s
passwd
注意:su双刃剑,是一个比较危险的功能,对系统安全有一定的威胁。
set_gid
1.文件的有效执行组身份为文件的拥有组,而不是执行者的组身份
2.目录里新建的文件的拥有组会自动继承目录的拥有组身份
[root@oldboy /]chmod 777 /opt/
[root@oldboy /]chmod g+s /opt/
[root@oldboy /]su oldboy
[oldboy@oldboy ~]s mkdir /opt/sgid_test
[oldboy@oldboy ~]s ll /opt/sgid_test -d
drwxrwsr-x.2 oldboy root 4096 Nov 14 00:27 /opt/sgid_test
sgid授权方法
suid
2000权限字符s(S),用户位置上的x位上设置。
授权方法:chmod2755 directory
chmod
g+s directory
sgid作用
针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
默认所有用户创建文件,用户和组都是自身,Sgid可以让其他用户再此目录下创建的文件和目录,具有和此目录相同的用户组设置。
当为某个目录设置了sgid位以后,在该目录中新创建的文件具有该目录的所有组权限,而不是创建该文件的用户的默认所有者。这样,使得在多个用户之间共享一个目录中的文件变得简单。
总结注意事项:
Linux特殊权限:
s-uid
只对可执行文件生效,可以让执行用户使用文件属主执行
s-gid
既可以对执行文件生效,也可以对目录生效(建议只对目录生效),实现目录继承权限
uid作用
让普通用户临时拥有可执行的二进制文件的所属主权限,二进制文件需要有执行权限。
当二进制文件没有执行权限,suid的权限显示就是大S。suid仅对二进制可执行程序有效。
如果普通需要操作没有权限的文件,为对应的命令赋予Suid权限,可以实现操作。
sticky粘滞位
sticky对目录有写权限的用户仅仅可以删除目录里属于自己的文件,不能删除其他用户的文件
/mp目录是经典的粘滞位目录,谁都有写权限,因此安全成问题,常常是木马第一手跳板。
sticky授权方法
粘滞位
1000
权限字符t(T),其他用户位的x位上设置。
授权方法:chmod1755/tmp
chmod o+t /tmp
sticky作用
让多个用户都具有写权限的目录,每个用户只能删自己的文件,表现在others的x位,用小t表示,如果没有执行权限是T,那么一个目录即使它的权限为“777”如果
是设置了粘滞位,除了目录的属主和”t用户有权限删除,除此之外其他用户不能删除这个目录。