18.1.2
linux目录文件隐藏属性和特殊权限
第1章 网站权限-通过控制权限让网站安全
内容:
1.linux权限查看 计算 修改
2.文件和目录rwx含义
3.各种权限拒绝错误排查
4.如何让网站通过权限控制 尽量安全
5.通过umask计算默认的权限
6.文件系统的属性(隐藏属性)
7.linux特殊权限 suid , 粘滞位(/tmp)
1.1 文件或目录安全 (比较安全的权限)
file rw-r--r-- root root oldboy.txt
dir rwxr-xr-x root root oldboy.txt
file 644 dir 755 属于 root
1.2 网站安全: ---站点目录(存放网站程序)
/app/blog 网站程序存放
/app/blog/upload 用户上传目录(用户的头像 上传的图片或附件)
1.3 如何让/app/blog目录安全
1.3.1
1.blog目录
file 644 root root
dir 755 root root
2.blog/upload目录
file 644 www www
dir 755 www www
运行博客 通过www用户(虚拟用户,被破译也不可以登录系统)运行 (root用户运行太危险,一旦破解就掌控了服务器)
1.3.2 环境准备:
useradd www (普通用户)
mkdir -p /app/blog/upload
touch /app/blog/awk.html /app/blog/renyi.jpg /app/blog/li.avi
1.3.3 测试及报错
su - www
#www用户上传一个文件
#www用户在 upload里面创建一个文件
[www@oldboyedu43-lnb blog]$ touch upload/oldboy.jpg
touch: cannot touch `upload/oldboy.jpg': Permission denied
[www@oldboyedu43-lnb blog]$ #upload目录
[www@oldboyedu43-lnb blog]$ ls -ld upload/
drwxr-xr-x 2 root root 4096 Dec 28 17:47 upload/
[www@oldboyedu43-lnb blog]$ #其他人 r-x
1.3.4 解决方法1 给其他用户写权限
chmod o+w upload
drwxr-xrwx 2 root root 4096 Dec 28 17:47 upload/
权限太大了
1.3.5 解决方法2 把upload目录送给 www
chown www.www upload
drwxr-xr-x 2 www www 4096 Dec 28 17:47 upload/
noexec 不让运行
最后 只能上传,不能查看
1) --网站是以www用户的身份运行
网站权限的控制 2)--file 644 dir 755 root root
3)upload file 644 www www
代码程序控制 1)--上传上来的文件无法运行
2)--上传上来没有执行权限
第2章 umask --反掩码 是什么 怎么计算 如何修改
2.1 Linux中默认的最大权限
file 666
dir 777
2.2 umask
2.2.1 作用:控制系统默认的权限
2.2.2 查看 [root@oldboy ~]# umask
0022
2.2.3 通过umask计算 系统默认的权限
file 666
-022
=644
dir 777
-022
=755
2.2.4 umask
临时
[root@oldboy ~]# umask 032
[root@oldboy ~]# umask
0032
新创建文件
file 666
-032
=634
+010
=644
文件:奇数位加一
新创建目录
dir 777
-032
=745
目录正常
永久(了解,千万不要改)
/etc/profile 千万不能改
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
如果 [ 当前用户uid > 199 ] 并且 [ "用户组名字" = "用户的名字" ]; 然后
umask 002
那么
umask 022
果如
第3章 文件系统属性(文件的隐藏属性)
3.1 与文件系统属性相关命令 查看隐藏权限lsattr
查看文件系统属性lsattr = == ==ls attribute
[root@oldboy ~]# lsattr
-------------e- ./install.log.syslog
-------------e- ./oldboy.txt
修改文件系统属性chattr = = == = change attr + 加某种属性 - 去除某种属性
a ==只能追加 (不能删除或修改原文件内容,只能在最后追加)
i ==无敌了(不能删除,修改或追加)
例1: a属性
[root@oldboy ~]# lsattr oldboy.txt 查看文件系统属性
-------------e- oldboy.txt
[root@oldboy ~]# chattr +a oldboy.txt 为文件加上a属性
[root@oldboy ~]# lsattr oldboy.txt
-----a-------e- oldboy.txt
[root@oldboy ~]# echo "I love you">>oldboy.txt 可以为文件追加内容
[root@oldboy ~]# echo "I love you">oldboy.txt 不可以清空原文件增加内容
-bash: oldboy.txt: Operation not permitted
[root@oldboy ~]# rm -f oldboy.txt 不可以删除原文件
rm: cannot remove `oldboy.txt': Operation not permitted
[root@oldboy ~]# chattr -a oldboy.txt 最后实验完记得把文集系统属性改回来
[root@oldboy ~]# lsattr oldboy.txt
-------------e- oldboy.txt
例2: i属性
[root@oldboy ~]# lsattr oldboy.txt 查看文件属性
-------------e- oldboy.txt
[root@oldboy ~]# chattr +i oldboy.txt 为文件加上i属性
[root@oldboy ~]# lsattr oldboy.txt
----i--------e- oldboy.txt
[root@oldboy ~]# echo "I love you">>oldboy.txt 不可往文件中追加内容
-bash: oldboy.txt: Permission denied
[root@oldboy ~]# echo "I love you">oldboy.txt 不可清空文件
-bash: oldboy.txt: Permission denied
[root@oldboy ~]# \rm -f oldboy.txt 不可删除文件
rm: cannot remove `oldboy.txt': Operation not permitted
[root@oldboy ~]# chattr -i oldboy.txt 实验完记得把文件系统属性改回来
[root@oldboy ~]# lsattr oldboy.txt
-------------e- oldboy.txt
3.2 重要用法:
主要命令文件 +i
重要配置文件 +a
第4章 查看系统负载系列
w 查看系统负载
top 动态查看负载 (显示不全)
作业:yum安装 --(为什么安不上 怎么及解决)
htop升级版的top
iotop 查询系统磁盘读写
iftop 查看网络信息 流量
第5章 特殊权限
5.1 情景引入: 查看特殊权限 ls -l s
[root@oldboy ~]# ls -ld /usr/bin/passwd /tmp/ /usr/bin/locate
drwxrwxrwt. 5 root root 4096 Jan 2 03:42 /tmp/ 特殊权限,颜色的不同
-rwx--s--x. 1 root slocate 38464 Mar 12 2015 /usr/bin/locate t权限和s权限
-rwsr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd
5.1.1 -s 用户在运行这个命令时相当于root用户 ===4 ==suid setuid
[root@oldboy ~]# ls -l /usr/bin/passwd 查看文件隐藏权限
-rwsr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd
[root@oldboy ~]# chmod u-s /usr/bin/passwd 为文件去除s隐藏权限
[root@oldboy ~]# ls -l /usr/bin/passwd
-rwxr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd
[root@oldboy ~]# chmod u+s /usr/bin/passwd 也可以 chmod 4755 为文件添加s隐藏权限
[root@oldboy ~]# ls -l /etc/shadow 用户密码文件默认都没有任何权限
----------. 1 root root 1094 Jan 2 01:20 /etc/shadow
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ passwd oldboy用户可以设置自己的密码
Changing password for user oldboy.
Changing password for oldboy.
(current) UNIX password:
New password:
BAD PASSWORD: it is too simplistic/systematic 密码太简单,复杂一点就OK
1. 用户运行passwd命令
2. 用户相当于是root用户
3. root用户可以修改/etc/passwd文件
5.1.2 -s(小写)和-S(大写)的区别
你添加 -s(小写)的选项,查看时有时候会发现变成S(大写)
如果文件没有x权限,会变成S;反之,是s(小写)
S(大写)=s(小写)+x s权限必须和x权限搭配
[root@oldboy oldboy]# chmod 4755 gao.txt 为文件加上s权限
[root@oldboy oldboy]# ls -l gao.txt
-rwsr-xr-x. 1 root root 28 Jan 2 06:26 gao.txt 显示权限为s(小写)
[root@oldboy oldboy]# chmod u-x gao.txt 去掉文件x权限
[root@oldboy oldboy]# ls -l gao.txt
-rwSr-xr-x. 1 root root 28 Jan 2 06:26 gao.txt 显示为S(大写
5.2 -t 粘滞位 /tmp 目录 (777必须记住) ---1 ===sticky
5.2.1 作用 (相当之重要)
任何人都可以在这个目录里创建文件(原来的权限是777)
每个人只能管理自己的文件,其他人的处理不了
5.3 sgid localte 用户在运行一个命令的时候,相当于属于这个命令所在的家庭(用户组root) 不重要-了解
ls -l “which local”
5.4 特殊权限总结:
1. -s --suid setuid
作用:运行某一个命令命令的时候相当于这个命令的所有者(root)
设置方法:chmod u+s /bin/rm 或 chmod 4775 /bin/rm
危险:所有用户运行命令的时候都相当于是root
例:/usr/bin/passwd
2. -t --sticky 沾滞位(1777 /tmp目录)
任何人都可以在这个目录中从创建文件(原来权限是777)
-t 权限 --- 每个人只能管理自己的文件,其他人的处理不了
3 sgid localte 运行某一个命令命令的时候相当于这个命令的用户组(root)
5.5 特殊权限和隐藏属性查看及修改的区别:
隐藏属性:
查看:lsattr +文件名
修改:chattr +a/+i +文件名
特殊权限:
查看:ls -l +文件名 / stat +文件名
修改:chmod 1777 /u+s /+t +文件名
5.6 总结:
1.linux权限查看 计算 修改
2.文件和目录rwx含义
3.各种权限拒绝错误排查
4.如何让网站通过权限控制 尽量安全
5.通过umask计算默认的权限
6.文件系统的属性(隐藏属性)
7.linux特殊权限 suid , 粘滞位(/tmp)
题目:
1.安装并使用
#htop 升级版top命令
#iotop 查询系统磁盘读写
#iftop 查看网络信息 流量
2.如何找出系统中带有特殊权限的文件或目录