1.UMASK反掩码
(1)如何查看反掩码:umask(root用户的反掩码0022;普通用户的反掩码0002)
(2)UMASK反掩码的作用
(root用户反掩码)
(普通用户反掩码)
目录的缺省权限值=777-UMASK反掩码(755=777-022;775=777-002)(前面是root用户)
文件的缺省权限值=777-UMASK反掩码-111(644=777-022-111;664=777-002-111)
多减一个111,
(3)如何修改UMASK反掩码(反掩码用于确定文件,目录的缺省权限值;考试需要会推反掩码)
umask 0011
umask
mkdir aaa55(rwxrw-rw-,766=777-011)
touch aaa66.txt(rw-rw-rw-,666=777-011-111) (注:有X则减,无X则不变,文件的缺省值-111是不完全正确的)
(4)普通用户反掩码的测试
umask 0011
测试题:子用户 创建子目录,子文件,ll查看
Tips:
whereis:查询我们命令的路径
2.SUID权限弥补(主要针对文件,所有者执行位x变成了s或S)
(U代表user,所有者头三位)
(一种临时的身份跳转,下面的实验能看到,那一位s运行的时候临时提升身份为所有者)
whereis 查询你运行的是哪个命令脚本
(1)创建普通用户并切换用户测试命令passwd
#useradd lm111
#passwd lm111
#su – lm111
$ passwd
Changing password for user lm111.
Changing password for lm111.
(current) UNIX password: a001
New password:ASDlcl1234 (注意:密码必须包含大小写字母和数字,长度须在8位以上和以前的密码要求不同吗,严格的很!)
Retype new password: ASDlcl1234
passwd: all authentication tokens updated successfully.
(passwd敏感命令,需要提高安全性)
(第一次修改敏感命令)
(2)返回root用户将passwd命令SUID高级权限去除
#“ chmod u-s /usr/bin/passwd ”
#“ ll /usr/bin/passwd”
-rwxr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
(chmod u-s)
(3)再次切换普通用户a001,测试命令passwd
# su - a001
$ passwd
Changing password for user a001.
Changing password for a001.
(current) UNIX password:ASDlcl1234
New password: QWEtest1234
Retype new password: QWEtest1234
passwd: Authentication token manipulation error
(第二次修改密码失败如图)
(退出用户之后,我们重新给它+s,然后修改密码)
(4)s与S的区别(s表示该执行位原先具有x权限)(权限弥补上二者相同,表现不同,s原来是x,大S原来部分是-)
chmod u-x /usr/bin/passwd
ll /usr/bin/passwd
-rwSr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
chmod u+s /bin/ping
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
再次切换用户测试,又可以修改密码了。
(从大S到小s本质上只是在原来有没有x,功能一致)
(u+S之后,+x,就变成了s)
3.SGID权限弥补(主要针对目录,组内成员的执行位变成了s)*(第六位,组内权限位)
(创建一个目录,然后在目录下生成的文件,子目录必须的是指定组下的:修改父目录的所属组,然后SGID)
(1)含义
groupadd qqq
chown :qqq 111(111子目录)
drwxr-xr-x. 2 root qqq 4096 11月 12 16:31 111
chmod g+s 111
drwxr-sr-x. 3 root qqq 4096 11月 12 17:44 111
创建准备环境:
(2)测试
以root身份进入111目录中创建目录和文件,观察组属性,全部继承其父目录111的组名.
touch 333.txt
mkdir 333
ll
drwxr-xr-x. 2 root root 4096 11月 12 17:44 222
-rw-r--r--. 1 root root 0 11月 12 17:44 222.txt
drwxr-sr-x. 2 root qqq 4096 11月 12 17:48 333
-rw-r--r--. 1 root qqq 0 11月 12 17:48 333.txt(所属组会自动继承父目录的所属组)
4.STICK粘滞位(其他用户的执行位变成了t,创建用户和管理员的执行位是x)
(1)含义 /share/
共享目录存在的问题:用户之间可以随意删除对方的文件,如果管理员开放所有权限位(chmod 777)
(搞个完全开放的共享目录,我们换几个用户弄点好玩的)
(添加用户:limeng001,002)
(limeng001,去创建属于你的txt吧!)
(2)测试
chmod o+t /share
drwxrwxrwt. 2 root root 4096 11月 12 18:11 share
以lisi身份进入/share目录试图删除zhangsan用户的文件,不允许(注意:测试时不要用VI修改做测试,而要用rm删除做测试).
(limeng002觉得不行,我得整个活,给你们删除咯)
STICK粘滞位操作:
**谁放置的文件,谁和高级管理员才可以删除的操作:chmod o+t /share 粘滞位操作
(再让limeng002尝试干这个,就算是权限位显示全开,但是,哈哈不行!)
(让limeng001本人删除吧)
(3)应用
例如Linux系统中的/tmp目录就是典型的具有STICK的目录
5.ACL访问控制列表(可以针对文件或目录,对特殊用户赋予特定权限)
(1)如何查看文件的ACL信息(准备工作vim /123.txt)(特殊用户需要获得特殊权限)
getfacl 123.txt
(创建123.txt)
(切换limeng001,尝试vim编辑123.txt)
(编辑不了,你没这个权限他就是没办法)
(Acl访问列表:对于权限的描述很明确啊,limeng001就是个小小的other)
(2)如何修改文件的ACL信息
setfacl -m u:limeng001:rw- /123.txt(-m表示修改 u:用户:获取到的权限 /目标文件)权限数量没要求,任意文件都可以放任意多用户
使用ll命令查看该文件时会发现多了一个+,表示其设置过ACL
-rw-rw-r--+ 1 root root 93 Mar 30 09:53 123.txt
(朋友,别觉得limeng001没有办法,如果我们在root权限下输入setfacl -m)
但是想详细查看ACL信息,只能使用getfacl 123.txt命令,效果如下
getfacl: Removing leading '/' from absolute path names
# file: 123.txt
# owner: root
# group: root
user::rw-
user:limeng001:rw-
group::r--
mask::rw-
other::r--
(3)测试
su – limeng001
vim /123.txt(录入内容测试写权限,OK)
(注意:测试用户必须符合正规用户名命名原则,即用户名必须以字母开头;
测试文件不要创建在用户的家目录中,最好放置在/目录下。)
(文件而已,limeng001,想改就改,就是因为我有的就是权限)
(不给limeng002任何权限,还专门写出来)
(4)如何删除文件的ACL信息
setfacl -x u:limeng001/123.txt(-x 删除)(删除有漏洞,会剩下一个加号)
getfacl /123.txt(详细查看)
再次以limeng001身份修改/123.txt文件,不允许.但是+仍然存在,即操作痕迹会保留。
chacl -B 123.txt (彻底删除一个文件或目录的ACL信息。)
(5)设置目录的ACL信息
setfacl -m d:u:limeng:rwx /345(d标记为目录)(参数d表示在/345目录中新建的文件或目录会自动继承/345目录的ACL信息值,但要注意:ACL真正的效果仍然体现在对文件的操作上,即对文件修改时才能看出效果)
cd /345
touch 111.txt
getfacl 111.txt
切换limeng002进入目录测试
(创建345目录)
(给limeng002目录345的特殊权限位)
(自动继承特殊权限位如下图111.txt;678)
(6)当移动一个具有ACL属性的文件或目录时:
默认情况下,ACL属性值是会移动的;当复制一个具有ACL属性的文件或目录时,默认情况下,ACL属性值是不会复制的,只有在cp命令后加上-p参数才可以。
“cp -p 222.txt /tmp/2222.txt“
补充知识:
chmod 7777 111.txt
chmod 1777 111.txt
chmod 3777 111.txt
实际上是四个7,后三个七是九位权限,第一个七对应着SUID SGID STICK:
SUID SGID STICK
1 1 1(具备就用1,不具备用0)
(移动后,111.txt它最后一位还是有改动痕迹的,虽然我们已经删除了权限1位移动后还有)
(四个七放进去!)
小结:(通过本次课程学到了哪些知识;在实验过程中遇到的问题及解决办法)
通过本次课程,我学习了高级权限(UMASK+SUID+SGID+STICK+ACL,UMASK查看用户的反掩码,也就是用户权限位码用777减去的值,文件多减一个111;SUID 权限位弥补技术: 这是因为单纯设置文件的rwx权限无法满足我们对安全和灵活性的要求,使用特殊权限为可以弥补它们的不足,提供更可靠的安全性,要注意S与s的区别在于前提是执行位x之前存在与否;SGID权限弥补技术:针对目录,文件,组内成员的执行位变成了s,注意“s”属于零时提高用户的权限为root;STICK粘滞位:其他用户的执行位变成了t,创建用户和管理员的执行位才是x,让对应的用户拥有权力改动文件,其他人没有能力,就算他看到文件的权限全开也不行!;.ACL访问控制列表(可以针对文件或目录,对特殊用户赋予特定权限)。操作没遇到什么问题,这一次实操需要记忆的内容比较多。