设为首页 收藏本站
查看: 1169|回复: 0

[经验分享] day 22 Linux权限

[复制链接]

尚未签到

发表于 2019-2-17 13:10:42 | 显示全部楼层 |阅读模式
第1章 文件的rwx权限
1.1 创建环境:
1.1.1 root用户下:
  [root@oldboyedu50-lnb ~]# mkdir -p /oldboy                      创建目录/oldboy
  [root@oldboyedu50-lnb ~]# echo  'hostname'  >/oldboy/test.sh     在/oldboy/test.sh下写hostname
  [root@oldboyedu50-lnb ~]# cat /oldboy/test.sh                     查看文件test.sh
  hostname
1.1.2 oldboy用户下:
  [oldboy@oldboyedu50-lnb /oldboy]$ ll test.sh            在普通用户下显示test.sh的内容列表(*1)
  -rw-r--r--. 1 root root 9 Aug  6 12:32 test.sh
  [oldboy@oldboyedu50-lnb /oldboy]$ cat test.sh            显示test.sh的内容      (*2)
  hostname
  [oldboy@oldboyedu50-lnb /oldboy]$ echo 'pwd' >>test.sh    将pwd写入到test.sh    (*3)
  -bash: test.sh: Permission denied
  ls参数 - l : 以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
  
  cat经常用来显示文件的内容
  
  echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。
  
[root@oldboyedu50-lnb /oldboy]# chown oldboy.oldboy test.sh   修改test.sh的属主和属组为oldboy
[root@oldboyedu50-lnb /oldboy]# ll test.sh                    查看test.sh的内容
-rw-r--r--. 1 oldboy oldboy 9 Aug  6 12:32 test.sh
  chown命令改变某个文件或目录的所有者和所属的组
  对于文件rwx含义
  r=读取属性  //值=4
w=写入属性  //值=2
x=执行属性  //值=1
1.2 #root用户下面修改权限   测试r权限
1.2.1 #oldboy用户只有r 权限
  [root@oldboyedu50-lnb /oldboy]# chmod u=r test.sh    修改test.sh 中user的权限为r(可读)
  [root@oldboyedu50-lnb /oldboy]# ll test.sh           查看test.sh
  -r--r--r--. 1 oldboy oldboy 9 Aug  6 12:32 test.sh

chmod命令用来变更文件或目录的权限
1.2.2 #oldboy用户下面测试
  [oldboy@oldboyedu50-lnb /oldboy]$ ll test.sh    在普通用户下显示test.sh的内容列表
  -r--r--r--. 1 oldboy oldboy 9 Aug  6 12:32 test.sh
  [oldboy@oldboyedu50-lnb /oldboy]$ cat test.sh    显示test.sh的内容
  hostname
  [oldboy@oldboyedu50-lnb /oldboy]$ echo 'pwd'>>test.sh  在/oldboy/test.sh下写hostname
  -bash: test.sh: Permission denied
  [oldboy@oldboyedu50-lnb /oldboy]$ /oldboy/test.sh
  -bash: /oldboy/test.sh: Permission denied
1.3 #root用户下面修改权限   测试w权限
1.3.1 #oldboy用户只有w 权限
  [root@oldboyedu50-lnb /oldboy]# chmod u=w test.sh     修改test.sh 中user的权限为w(可写)
  [root@oldboyedu50-lnb /oldboy]# ll test.sh             在root用户下显示test.sh的内容列表
  --w-r--r--. 1 oldboy oldboy 9 Aug  6 12:32 test.sh
1.3.2 #oldboy用户下面测试
  [oldboy@oldboyedu50-lnb /oldboy]$ ll test.sh       在普通用户下显示test.sh的内容列表
  --w-r--r--. 1 oldboy oldboy 9 Aug  6 12:32 test.sh
  [oldboy@oldboyedu50-lnb /oldboy]$ cat test.sh       显示test.sh的内容
  cat: test.sh: Permission denied
  [oldboy@oldboyedu50-lnb /oldboy]$ echo 'pwd' >>test.sh            写入内容
  [oldboy@oldboyedu50-lnb /oldboy]$ echo 'pwd' >>test.sh
  [oldboy@oldboyedu50-lnb /oldboy]$ echo 'pwd' >>test.sh
  [oldboy@oldboyedu50-lnb /oldboy]$ echo 'pwd' >>test.sh
  [oldboy@oldboyedu50-lnb /oldboy]$ cat test.sh         显示test.sh的内容        
  cat: test.sh: Permission denied
   [oldboy@oldboyedu50-lnb /oldboy]$ /oldboy/test.sh
  -bash: /oldboy/test.sh: Permission denied
  文件的小结:
  
  1.r读取文件内容
  2.w修改文件内容  需要r权限配合
    只有w权限的时候 强制保存退出会导致源文件内容丢失
1.4 #root用户下面修改权限   测试x权限
1.4.1 #oldboy用户             只有x 权限
  [root@oldboyedu50-lnb /oldboy]# chmod u=x test.sh
  [root@oldboyedu50-lnb /oldboy]# ll test.sh
  ---xr--r--. 1 oldboy oldboy 13 Aug  6 12:56 test.sh
1.4.2 #oldboy用户下面测试
  [oldboy@oldboyedu50-lnb /oldboy]$ ll test.sh
  ---xr--r--. 1 oldboy oldboy 13 Aug  6 12:56 test.sh
  [oldboy@oldboyedu50-lnb /oldboy]$ cat test.sh
  cat: test.sh: Permission denied
  [oldboy@oldboyedu50-lnb /oldboy]$ echo 'pwd' >>test.sh
  -bash: test.sh: Permission denied
  [oldboy@oldboyedu50-lnb /oldboy]$ /oldboy/test.sh
  bash: /oldboy/test.sh: Permission denied
1.5 文件的rwx权限小结:
  1.r读取文件内容
  2.w修改文件内容           需要r权限配合
    只有w权限的时候 强制保存退出会导致源文件内容丢失
  3.x权限表示是否能执行脚本 需要r权限配合
第2章 对于目录rwx含义
2.1 创建环境
  mkdir -p /oldboy/test                            创建目录/oldboy/test
  touch /oldboy/test/oldboy{01..5}.txt             在目录下创建5个文件      (*3
  chown oldboy.oldboy /oldboy/test/                将目录/oldboy/test的属主和属组改为oldboy   (*4
  
  touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
  chown命令改变某个文件或目录的所有者和所属的组
  [root@oldboyedu50-lnb /oldboy]# ll /oldboy/test -d
  drwxr-xr-x. 2 oldboy oldboy 4096 Aug  6 13:02 /oldboy/test
  [root@oldboyedu50-lnb /oldboy]# ll /oldboy/test
  total 4
  -rw-r--r--. 1 root root 8 Jul 16 19:24 del.sh
  -rw-r--r--  1 root root 0 Aug  6 13:02 oldboy01.txt
  -rw-r--r--  1 root root 0 Aug  6 13:02 oldboy02.txt
  -rw-r--r--  1 root root 0 Aug  6 13:02 oldboy03.txt
  -rw-r--r--  1 root root 0 Aug  6 13:02 oldboy04.txt
  -rw-r--r--  1 root root 0 Aug  6 13:02 oldboy05.txt
Ls -d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;2.2 目录的rwx权限小结
  r  查看目录内容    ls
  w  可以删除 创建 重命名  目录中的文件
  x  是否能进入到目录 cd
2.3 #root用户下面修改权限   测试r权限
2.3.1 #oldboy用户        只有r 权限
  [root@oldboyedu50-lnb /oldboy]# chmod u=r test
  [root@oldboyedu50-lnb /oldboy]# ll -d test
  dr--r-xr-x. 2 oldboy oldboy 4096 Aug  6 13:02 test
2.3.2 #oldboy用户下面测试
  [oldboy@oldboyedu50-lnb /oldboy]$ ls test
  ls: cannot access test/oldboy05.txt: Permission denied
  ls: cannot access test/oldboy04.txt: Permission denied
  ls: cannot access test/oldboy01.txt: Permission denied
  ls: cannot access test/del.sh: Permission denied
  ls: cannot access test/oldboy02.txt: Permission denied
  ls: cannot access test/oldboy03.txt: Permission denied
  del.sh  oldboy01.txt  oldboy02.txt  oldboy03.txt  oldboy04.txt  oldboy05.txt
  [oldboy@oldboyedu50-lnb /oldboy]$ ls -l test
  ls: cannot access test/oldboy05.txt: Permission denied
  ls: cannot access test/oldboy04.txt: Permission denied
  ls: cannot access test/oldboy01.txt: Permission denied
  ls: cannot access test/del.sh: Permission denied
  ls: cannot access test/oldboy02.txt: Permission denied
  ls: cannot access test/oldboy03.txt: Permission denied
  total 0
  -????????? ? ? ? ?            ? del.sh
  -????????? ? ? ? ?            ? oldboy01.txt
  -????????? ? ? ? ?            ? oldboy02.txt
  -????????? ? ? ? ?            ? oldboy03.txt
  -????????? ? ? ? ?            ? oldboy04.txt
  -????????? ? ? ? ?            ? oldboy05.txt
2.4 目录权限小结:
  1. r 显示目录内容          需要x权限配合
  2. w 是否能删除目录内容    在目录中创建文件   修改(重命名)
  3. x 是否能进入到目录 cd  (你是否能查看目录中文件的属性)
  4.   删除一个文件          看文件所在目录的权限 是否有wx权限
2.5 初步排错
2.5.1 说错下面错误的报错原因:
  #oldboy
  1.
  [oldboy@oldboyedu50-lnb /]$ ls /root/                       查看目录  必须使用r x配合使用
  ls: cannot open directory /root/: Permission denied
  2.
  [oldboy@oldboyedu50-lnb /]$ touch /etc/passwd.txt         创建文件 在当前目录权限使用w  必须配合x
  touch: cannot touch `/etc/passwd.txt': Permission denied
  3.
  [oldboy@oldboyedu50-lnb /]$ \rm -f /etc/sysconfig/network   当前目录中要有wx权限才能删除
  rm: cannot remove `/etc/sysconfig/network': Permission denied
  4.
  [oldboy@oldboyedu50-lnb /]$ echo '#oldboy'  >>/etc/hosts     写入w 必须配合r
  -bash: /etc/hosts: Permission denied
  5.
  [oldboy@oldboyedu50-lnb /]$ cat /etc/shadow                  没有r权限
  cat: /etc/shadow: Permission denied
  cat: /etc/shadow: Permission denied
第3章 文件访问过程与权限
  cat oldboy.txt
             inode      block            
  文件      文件属性  数据(文件内容)
  目录      目录属性  文件名           
  cat  /oldboy/lidao/test.sh
  权限可能与文件所在的目录及上级目录 及 目录有关
3.1 控制系统默认权限 umask
umask    umask用来设置限制新建文件权限的掩码
022
  文件一般可以给的最大权限:666
  目录一般可以给的最大权限:777
3.1.1  文件默认的权限
   6 6 6
-          0 2 2
  = 6 4 4
3.1.2 目录默认的权限
  7 7 7
-          0 2 2
  =  7 5 5
3.1.3 特殊情况:
  umask  032
  文件
  6 6 6
  -  0 3 2
  6 3 4
  + 0 1 0
  =  6 4 4
实例3-1 umask 035 系统文件默认权限是? 目录权限是?
  文件                              目录
   6 6 6                         7 7 7
  - 0  3 5                        - 0 3 5
  = 6 3 1                        =  7 4  2
  + 0 1 1                           
  = 6 4 2                           
  
第4章 如何通过控制权限的方法 保护网站安全
  网站 blog.oldboyedu.com
  /app/blog
4.1  网站通过www用户运行(虚拟用户)
4.2  控制目录/app/blog 权限
  file  644   root root
  dir   755   root root
4.3  网站上传目录upload
  file  644   www  www
  dir   755   www  www
4.4 模拟环境
  mkdir -p /app/blog  /app/blog/upload   
  touch    /app/blog/tao.avi /app/blog/dao.mp4  /app/blog/ndd.torrent
  useradd  www
  [www@oldboyedu50-lnb /app/blog]$ touch upload/499G.torrent
  touch: cannot touch `upload/499G.torrent': Permission denied
4.4.1 #什么原因及怎么解决
  [root@oldboyedu50-lnb /oldboy]# chown www.www /app/blog/upload/
4.4.2 网站整体结构
  [root@oldboyedu50-lnb /oldboy]# chattr +a test.sh
  [root@oldboyedu50-lnb /oldboy]# lsattr  test.sh
  -----a-------e- test.sh
  [root@oldboyedu50-lnb /oldboy]# #a  append  只能追加
  [root@oldboyedu50-lnb /oldboy]# >test.sh
  -bash: test.sh: Operation not permitted
  [root@oldboyedu50-lnb /oldboy]# echo pwd >>test.sh
  [root@oldboyedu50-lnb /oldboy]# \rm -f test.sh
  rm: cannot remove `test.sh': Operation not permitted
chattr命令用来改变文件属性。这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
a:让文件或目录仅供附加用途;
b:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。
  总结:
  1.文件 目录 rwx 含义
  2.权限相关错误:
  permission denied
  原因及解决
  3.系统默认的权限 umask 计算
  4.如何通过控制权限的方法 让网站安全
  5.网站集群架构 数据库 存储
  6.隐藏属性(文件系统权限)




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673592-1-1.html 上篇帖子: Linux的SELinux 下篇帖子: Linux的基本操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表