linux权限

 

作者:左婷婷

归档:学习笔记

2018/7/31

 

快捷键:

Ctrl + 1    标题1

Ctrl + 2    标题2

Ctrl + 3    标题3

Ctrl + 4    实例

Ctrl + 5    程序代码

Ctrl + 6    正文

格式说明:

蓝色字体:注释

×××背景:重要

绿色背景:注意


老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结

学无止境,老男孩教育成就你人生的起点!

联系方式:

网站运维QQ交流群:

Linux  385168604

架构师 390642196

Python 29215534

大数据 421358633

官方网站:

http://www.oldboyedu.com


 

1 Linux 权限    permission  denied. 2

1.1 对于文件rwx含义... 3

1.1.1 root用户下面修改权限   测试r权限... 3

1.1.2 #root用户下面修改权限   测试w权限... 4

1.1.3 #root用户下面修改权限   测试x权限... 4

1.2 文件的rwx权限小结:... 5

1.2.1 r读取文件内容... 5

1.2.2 w修改文件内容           需要r权限配合... 5

1.2.3 x权限表示是否能执行脚本 需要r权限配合... 5

1.3 对于目录rwx含义... 5

1.3.1 目录的rwx权限... 5

1.3.2 #root用户下面修改权限   测试r权限... 5

1.3.3 #root用户下面修改权限   测试w权限... 6

1.4 目录rwx权限小结:... 7

1.5 控制系统默认权限 umask. 7

1.6 如何通过控制权限的方法 保护网站安全... 9

1.6.1 网站通过www用户运行虚拟用户... 9

1.6.2 控制目录/app/blog  权限... 9

1.6.3 网站上传目录upload. 9

1.7 网站整体结构... 9

1.8 隐藏属性(文件系统权限)... 10

1.9 总结:... 10

1.10 预习:... 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第1章 Linux 权限   permission  denied

root用户下模拟环境

[root@oldboyedu50-lnb ~]# mkdir -p /oldboy

[root@oldboyedu50-lnb ~]# echo  'hostname'  >/oldboy/test.sh

[root@oldboyedu50-lnb ~]# cat /oldboy/test.sh

hostname

 

 

[oldboy@oldboyedu50-lnb /oldboy]$ ll test.sh

-rw-r--r--. 1 root root 9 Aug  6 12:32 test.sh

切换到oldboy用户,查看,添加,执行文件

[oldboy@oldboyedu50-lnb /oldboy]$ cat test.sh  

对于oldboy用户对此文件只有读的权限,只能查看,不能修改执行

hostname

[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    权限拒绝

 

[root@oldboyedu50-lnb /oldboy]# chown oldboy.oldboy test.sh      修改所有者和所属家庭

[root@oldboyedu50-lnb /oldboy]# ll test.sh

-rw-r--r--. 1 oldboy oldboy 9 Aug  6 12:32 test.sh

1.1 对于文件rwx含义

1.1.1 root用户下面修改权限   测试r权限 

#oldboy用户只有r 权限

[root@oldboyedu50-lnb /oldboy]# chmod u=r test.sh

[root@oldboyedu50-lnb /oldboy]# ll test.sh

-r--r--r--. 1 oldboy oldboy 9 Aug  6 12:32 test.sh

#oldboy用户下面测试

[oldboy@oldboyedu50-lnb /oldboy]$ ll test.sh

-r--r--r--. 1 oldboy oldboy 9 Aug  6 12:32 test.sh      只有r权限

[oldboy@oldboyedu50-lnb /oldboy]$ cat test.sh             只能看

hostname

[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.1.2 #root用户下面修改权限   测试w权限 

#oldboy用户只有w 权限

[root@oldboyedu50-lnb /oldboy]# chmod u=w test.sh

[root@oldboyedu50-lnb /oldboy]# ll test.sh

--w-r--r--. 1 oldboy oldboy 9 Aug  6 12:32 test.sh

#oldboy用户下面测试

[oldboy@oldboyedu50-lnb /oldboy]$ ll test.sh

--w-r--r--. 1 oldboy oldboy 9 Aug  6 12:32 test.sh

[oldboy@oldboyedu50-lnb /oldboy]$ cat 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

cat: test.sh: Permission denied

[oldboy@oldboyedu50-lnb /oldboy]$

[oldboy@oldboyedu50-lnb /oldboy]$ /oldboy/test.sh

-bash: /oldboy/test.sh: Permission denied 

1.1.3 #root用户下面修改权限   测试x权限 

#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

#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.2 文件的rwx权限小结:

1.2.1 r读取文件内容

1.2.2 w修改文件内容           需要r权限配合

  只有w权限的时候 强制保存退出会导致源文件内容丢失

1.2.3 x权限表示是否能执行脚本 需要r权限配合

1.3 对于目录rwx含义

创建环境

mkdir -p /oldboy/test

touch /oldboy/test/oldboy{01..5}.txt

chown oldboy.oldboy /oldboy/test/

[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

1.3.1 目录的rwx权限

r

查看目录内容    ls

w

可以删除 创建 重命名  目录中的文件

x

是否能进入到目录   cd

1.3.2 #root用户下面修改权限   测试r权限 

#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

 

 

#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

 

目录权限的小结:

1. r 显示目录内容    需要x权限配合

 

3. 是否能进入到目录 cd  (你是否能查看目录中文件的属性)

1.3.3 #root用户下面修改权限   测试w权限 

#oldboy用户             只有w 权限

#oldboy用户下面测试

[oldboy@oldboyedu50 oldboy]$ ll test –d                      不能创建文件

d-w-r-xr-x. 2 oldboy oldboy 4096 8月   6 21:39 test

[oldboy@oldboyedu50 oldboy]$ touch test/lidao.txt

touch: 无法创建"test/lidao.txt": 权限不够

1.4 目录rwx权限小结:

1. r 显示目录内容

需要x权限配合

2. w 是否能删除目录内容

在目录中创建文件   修改(重命名)

3. x 是否能进入到目录 cd

(你是否能查看目录中文件的属性)

4.   删除一个文件

看文件所在目录的权限 是否有wx权限 

初步排错

说错下面错误的报错原因:

说错下面错误的报错原因:

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 oldboy.txt


inode

block

文件

文件属性

数据文件内容

目录

目录属性

文件名

 

cat  /oldboy/lidao/test.sh

权限可能与文件所在的目录及上级目录 目录有关

1.5 控制系统默认权限 umask

umask

022     默认

文件一般可以给的最大权限:666

目录一般可以给的最大权限:777

文件默认的权限 

   666

  -022

  =644

目录默认的权限

   777

  -022

  =755

特殊情况:

   umask  032

文件

   666

   032

   634                   减完的数哪位是奇数就在那位加1

  +010

  =644

 

umask 035 系统文件默认权限是? 目录权限是?

 

  文件 

  666

 -035

 =631

 +011

  642

  目录

  777

  035

  742

要求创建的文件默认权限是000,目录的权限是111   umask ?

666                                666

1.6 如何通过控制权限的方法 保护网站安全

 网站 blog.oldboyedu.com 

/app/blog 

1.6.1 网站通过www用户运行虚拟用户

1.6.2 控制目录/app/blog 权限

  file  644   root root 

  dir   755   root root 

1.6.3 网站上传目录upload

  file  644   www  www

  dir   755   www  www

模拟环境

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

#什么原因及怎么解决         

[root@oldboyedu50-lnb /oldboy]# chown www.www /app/blog/upload/   将所有者和用户组都改为oldboy

1.7 网站整体结构

1.8 隐藏属性(文件系统权限)

+a     只能追加其他不能用

+I      不能修改不能删除  只能查看

[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

1.9 总结:

1.文件 目录 rwx 含义

2.权限相关错误:

permission denied

原因及解决

3.系统默认的权限 umask 计算

4.如何通过控制权限的方法 让网站安全

5.网站集群架构 数据库 存储

6.隐藏属性(文件系统权限)

1.10 预习:

1.特殊权限

2.定时任务

3.定时同步系统时间

4.定时备份/etc/目录