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/

 18.1.2-linux目录文件隐藏属性和特殊权限_第1张图片 

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.如何找出系统中带有特殊权限的文件或目录