12.29-linux r-w-x权限详解

12.29node

linux r-w-x权限详解linux

内容:vim

1. linux目录权限体系bash

2. rwx权限的计算ide

3. rwx针对目录或文件的具体含义测试

4. 更改权限---chmod命令spa

5. 一些关于权限类故障的排查过程与解决方法orm

第1章 linux权限体系梗概

1.1 基本权限(r  w  x  -)

 r  4                w  2              x  1         -  0blog

 

1.2 对于一个文件Linux用户分类

[root@oldboy /]# ls -l /etc/hosts图片

-rw-r--r--. 2 root root 177 May 20  2017 /etc/hosts

全部者          属于的家庭(用户组)           其余人(陌生人)

主人              家人                       陌生人

rw-                r--                         r--

1.3 如何知道oldboy用户对/etc/hosts文件有什么权限

1.   你谁                             whoami

2.   你和他什么关系

 id  oldboy  查看所属用户组

几乎没有和root同属一个组

文件默认权限为644      目录默认权限755

第2章 修改文件权限 chmod命令

2.1.1 三种用户

u  -userown文件全部者--(主人)

g  -group (用户组)

o  -other (其余用户)

表示全部

2.1.2 字母形式表示

 u+x       为全部者添加x权限

 [root@oldboy oldboy]# ls -l test.sh

--w-r-xr-x. 1 oldboy oldboy 19 Dec 29 02:52 test.sh

[root@oldboy oldboy]# chmod u+x test.sh

[root@oldboy oldboy]# ls -l test.sh

--wxr-xr-x. 1 oldboy oldboy 19 Dec 29 02:52 test.sh

先去掉原来的权限     再增长相应权限

[root@oldboy oldboy]# chmod u=w test.sh

[root@oldboy oldboy]# ls -l test.sh

--w-r-xr-x. 1 oldboy oldboy 19 Dec 29 02:52 test.sh

 

给三种用户都加上x权限1.

chmod  ugo+x  odlboy.sh

2.

chmod a+x test.sh

3.   适用  r  权限

chmod +x test.sh

2.1.3 用数字表示

chmod  644  oldboy.txt

 

2.2 更改文件全部者  chown

oldboy.sh文件的属主变为oldboy用户,属组变为oldboy

chown  oldboy.oldboy    oldboy.sh

 

能够单独修改文件的搜有这或属组

 

权限用来限制普通用户,root用户会有特权

2.3 测试rwx具体权限

2.3.1 测试环境

mv /oldboy   /tmp/oldboy_bak$(date +%F)
mkdir /oldboy -p
echo "echo oldboylinux" >/oldboy/test.sh          制做脚本文件,里面存放命令
chmod +x /oldboy/test.sh
cat /oldboy/test.sh
ls -l /oldboy/test.sh

2.3.2 对于文件来讲:x执行权限通常用于脚本文件等可执行文件

测试文件的r 

#root修改权限     
chmod u=r test.sh                                             只给oldboy用户读取权限
#oldboy用户进行检查
[oldboy@oldboyedu43-lnb ~]$ cd /oldboy/
[oldboy@oldboyedu43-lnb oldboy]$ ls -l test.sh 
-r--r-xr-x 1 oldboy oldboy 17 Dec 28 14:39 test.sh
[oldboy@oldboyedu43-lnb oldboy]$ cat test.sh                 能够查看
echo oldboylinux
[oldboy@oldboyedu43-lnb oldboy]$ echo 'hostname' >>test.sh
-bash: test.sh: Permission denied                            没有写入权限
[oldboy@oldboyedu43-lnb oldboy]$ ls
test.sh
[oldboy@oldboyedu43-lnb oldboy]$ /oldboy/test.sh             没有写入权限
-bash: /oldboy/test.sh: Permission denied

测试文件的w 

#root修改权限
chmod u=w test.sh                                                  只给oldboy用户写入权限
#oldboy用户进行检查

[oldboy@oldboyedu43-lnb oldboy]$ ls -l test.sh 
w-r-xr-x 1 oldboy oldboy 17 Dec 28 14:39 test.sh
[oldboy@oldboyedu43-lnb oldboy]$ cat test.sh                      不能查看内容
cat: test.sh: Permission denied
[oldboy@oldboyedu43-lnb oldboy]$ echo 'hostname' >>test.sh      能够写入

[oldboy@oldboyedu43-lnb oldboy]$ echo 'hostname' >>test.sh
[oldboy@oldboyedu43-lnb oldboy]$ /oldboy/test.sh                   不能执行
-bash: /oldboy/test.sh: Permission denied
[oldboy@oldboyedu43-lnb oldboy]$ vim test.sh         
echo www.oldboyedu.com
echo www.oldboyedu.com
[oldboy@oldboyedu43-lnb oldboy]$ cat test.sh
cat: test.sh: Permission denied

 

测试文件的

#root修改权限
chmod u=x test.sh                                             只给oldboy用户执行权限
#oldboy用户进行检查
[oldboy@oldboyedu43-lnb oldboy]$ cat test.sh                 不可查看
cat: test.sh: Permission denied
[oldboy@oldboyedu43-lnb oldboy]$ echo 'pwd'>>test.sh         不可写入
-bash: test.sh: Permission denied
[oldboy@oldboyedu43-lnb oldboy]$  /oldboy/test.sh            不可执行
bash: /oldboy/test.sh: Permission denied
                                                               增长了 r权限以后  
[oldboy@oldboyedu43-lnb oldboy]$ cat /oldboy/test.sh        
hostname                                                      
[oldboy@oldboyedu43-lnb oldboy]$ /oldboy/test.sh             可执行
oldboyedu43-lnb
[oldboy@oldboyedu43-lnb oldboy]$ ./test.sh 
oldboyedu43-lnb

2.3.3 总结:(根据实验环境测试)

用r权限  用vim添增强制退出   覆盖    echo不可用

用w权限 用vim添增强制退出   覆盖    echo可用

2.3.4 错误

1.这种状况为何被拒绝  属主没有权限 属组不仍是有么

[root@oldboy oldboy]# ll test.sh

---xrw-r--. 1 oldboy oldboy 19 Dec 29 02:52 test.sh

[oldboy@oldboy oldboy]$ echo 123 >>test.sh

-bash: test.sh: Permission denied

全部者没有权限,不会找属组的权限

2.超级大坑:即便文件没有任何权限也能够用vim来强制写入内容。可是原内容会被清除,只会显示用vim写入的内容。这样的话,岂不是文件的权限对vim来讲就是个摆设了,能够随意清除原内容、。

文件的全部者默承认以强制修改该文件,对这个文件没有任何权限的时候,原内容清空

root默认对全部文件具备读写权限,但默认没有执行权限

2.3.5 对于目录来讲:(重点)

r     查看目录中内容    ls  oldboyedu

w    能够在目录中 建立文件  删除文件   重命名文件

x    表示是否能够进入到目录中  是否能查看/修改目录文件的属性信息

环境

mkdir   /oldboy/oldboyedu

touch  /oldboy/oldboyedu/{1..10}.txt

chown  oldboy.oldboy   /oldboy/oldboyedu

测试目录的r 

#root修改权限

chmod u=r oldboydir/                                        给oldboy用户查看内容权限

#oldboy用户进行检查

[oldboy@oldboyedu43-lnb oldboy]$ ls -ld oldboydir/

dr--r-xr-x 2 oldboy oldboy 4096 Dec 28 15:42 oldboydir/

[oldboy@oldboyedu43-lnb oldboy]$ ls oldboydir/

ls: cannot access oldboydir/04.txt: Permission denied       只能看到文件名,没法看到详细信息

ls: cannot access oldboydir/01.txt: Permission denied

01.txt  02.txt  03.txt  04.txt  05.txt  06.txt  07.txt  08.txt  09.txt  10.txt

[oldboy@oldboyedu43-lnb oldboy]$ ls -l oldboydir/

ls: cannot access oldboydir/10.txt: Permission denied

total 0

-????????? ? ? ? ?            ? 09.txt

-????????? ? ? ? ?            ? 10.txt

[oldboy@oldboyedu43-lnb oldboy]$ stat oldboydir/01.txt      stat也不能用

stat: cannot stat `oldboydir/01.txt': Permission denied

 

目录的r权限 须要有其余权限的配合
#
修改目录的权限为rx以后 问题解决 
[oldboy@oldboyedu43-lnb oldboy]$ ls -ld oldboydir/
dr-xr-xr-x 2 oldboy oldboy 4096 Dec 28 15:42 oldboydir/
[oldboy@oldboyedu43-lnb oldboy]$ ls oldboydir/
01.txt  02.txt  03.txt  04.txt  05.txt  06.txt  07.txt 

[oldboy@oldboyedu43-lnb oldboy]$ ls -l oldboydir/
total 0
-rw-r--r-- 1 root root 0 Dec 28 15:42 01.txt
-rw-r--r-- 1 root root 0 Dec 28 15:42 02.txt
[oldboy@oldboyedu43-lnb oldboy]$ 
stat oldboydir/01.txt 
  File: `oldboydir/01.txt'
  Size: 0          Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d Inode: 151129      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-12-28 15:42:11.901743051 +0800
Modify: 2017-12-28 15:42:11.901743051 +0800
Change: 2017-12-28 15:42:11.901743051 +0800

小结 
目录的r权限 能够查看目录里面的内容 
目录的r权限 须要x权限的配合

测试目录的w 

root修改权限
chmod u=w oldboydir/                                            给用户w权限
oldboy用户进行检查
[oldboy@oldboyedu43-lnb oldboy]$ ls -ld oldboydir/
d-w-r-xr-x 2 oldboy oldboy 4096 Dec 28 15:42 oldboydir/
[oldboy@oldboyedu43-lnb oldboy]$ ls oldboydir/                 不能够查看
ls: cannot open directory oldboydir/: Permission denied
[oldboy@oldboyedu43-lnb oldboy]$ touch oldboydir/oldboy.txt    不可建立文件
touch: cannot touch `oldboydir/oldboy.txt': Permission denied
[oldboy@oldboyedu43-lnb oldboy]$ \rm  oldboydir/01.txt -f   不可删除文件
rm: cannot remove `oldboydir/01.txt': Permission denied
目录的w权限 须要有其余权限的配合
修改目录的权限为wx以后           问题解决

[oldboy@oldboyedu43-lnb oldboy]$ ls -ld oldboydir/
d-wxr-xr-x 2 oldboy oldboy 4096 Dec 28 15:42 oldboydir/
[oldboy@oldboyedu43-lnb oldboy]$ touch oldboydir/oldboy.txt
[oldboy@oldboyedu43-lnb oldboy]$ \rm oldboydir/01.txt -f 

小结:

w   在目录中 建立 删除 文件

w权限须要x权限配合

测试x

单独的x权限没有用

第3章 故障(重点)

[oldboy@oldboyedu43-lnb oldboydir]$ ls -l oldboy.txt

-rwxrwxrwx 1 oldboy oldboy 0 Dec 28 16:01 oldboy.txt            文件权限777

[oldboy@oldboyedu43-lnb oldboydir]$ \rm -f oldboy.txt           属主没有删除文件的权限

rm: cannot remove `oldboy.txt': Permission denied

!!!!删除一个文件,你须要对文件所在目录拥有wx权限。

inode 文件属性 block存放的是数据

文件名 存放在文件所在目录的block里面

 

inode  文件属性  block存放的是数据

文件名 存放在文件所在目录的block

因此删除一个文件须要对其所在目录有相应权限---删除文件名至关于删除包含它的目录的一些内容 (重点)

           文件或目录权限错误排查过程

blob.png

排查报错缘由(用户查看文件原理)

2.png

 

总结:

1.你对某个文件拥有什么权限

2.报错:permission denied错误 排查报错缘由

3.绘制图片 排错图片

4.对于文件或目录 rwx含义

5.几个命令

相关文章
相关标签/搜索