Linux普通文件的权限

文件权限概述

linux中的文件或目录的权限和用户及用户组关联很大。 
linux中每个文件或目录都有一组共9个基础权限位,每三位字符被分为一组,他们分别是属主位(占三个字符)、用户组权限位(占三个字符)、其它用户权限位(占三个字符)。比如rwxr-xr-x,linux中正是这9个权限(更多权限位后面会提到)位来控制文件属主、用户组以及其它用户的权限。

这里写图片描述

  • r(read)可读权限,对应数字4。
  • w(write)可写权限,对应数字2。
  • x(execute)执行权限,对应数字1。
  • -(没有任何权限),对应数字0。

实例:

模拟环境:

groupadd inhome # 一个用户组
useradd IanA -g inhome  #  属主
useradd IanB -g inhome  #  同一个用户组的其它用户
useradd Lisa   #  其它用户组的用户
  • 1
  • 2
  • 3
  • 4

这里写图片描述

一个用户组inhome的成员有IanA,IanB。其它用户组成员Lisa。超级用户root。

[root@ianLinux ~]# mkdir /data/test/IanA -p
[root@ianLinux ~]# cd /data/test/IanA
[root@ianLinux IanA]# vi test.sh

echo "study Linux."
~                                                                                           
~   
...
[root@ianLinux IanA]# ls -l test.sh             
-rw-r--r-- 1 IanA inhome 20 98 10:05 test.sh   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这里写图片描述

rw-r–r–权限下:

IanA用户(rw-)可读可写不可执行:

这里写图片描述

这里写图片描述

IanB用户(r–)可读不可写不可执行: 
这里写图片描述

Lisa用户(r–)可读不可写不可执行: 
这里写图片描述

rwxrw-r–权限下:

先把权限修改一下: 
这里写图片描述

IanA用户(rwx)可读可写可执行:

[IanA@ianLinux IanA]$ whoami
IanA
[IanA@ianLinux IanA]$ echo "##" >>test.sh
[IanA@ianLinux IanA]$ cat test.sh
echo "study Linux."
##
##
[IanA@ianLinux IanA]$ ./test.sh
study Linux.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

IanB用户(rw-)可读可写不可执行:

[IanB@ianLinux IanA]$ whoami
IanB
[IanB@ianLinux IanA]$ cat test.sh 
echo "study Linux."

[IanB@ianLinux IanA]$ echo "##" >>test.sh
[IanB@ianLinux IanA]$ cat test.sh 
echo "study Linux."
##

[IanB@ianLinux IanA]$ ./test.sh
-bash: ./test.sh: 权限不够
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

Lisa用户(r–)可读不可写不可执行:

[Lisa@ianLinux IanA]$ whoami
Lisa
[Lisa@ianLinux IanA]$ cat test.sh
echo "study Linux."
##
[Lisa@ianLinux IanA]$ echo 111 >>test.sh
-bash: test.sh: 权限不够
[Lisa@ianLinux IanA]$ ./test.sh
-bash: ./test.sh: 权限不够
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

-wx-wx–x权限下:

先把权限修改一下:

[root@ianLinux IanA]# chmod 331 test.sh 
[root@ianLinux IanA]# ls -l test.sh
--wx-wx--x 1 IanA inhome 23 98 11:02 test.sh
  • 1
  • 2
  • 3

IanA用户(-wx)不可读可写可执行:

没有读权限也不能执行的。 
因为不可读,所以vi编辑的时候,也看不到内容,但是还是能写,但是这个写不正常。: 
这里写图片描述

Lisa用户(–x)不可读不可写可执行:

这里写图片描述 
强制也不能写入,没有写权限。 
这里写图片描述

有关文件的删除:

我们发现虽然test.sh的属主是IanA,但是在IanA用户下却无法删除test.sh。 
这里写图片描述

在之前我们已经讨论过这个问题了。 
文件删除原理:

http://blog.csdn.net/codetz/article/details/52415928

我们删除一个文件,并不是清除了这个文件的inode节点和block数据块。只是在这个文件的父目录的block数据块中,删除了这个文件的名字,从而使这个文件名消失,并且无法指向这个文件的inode的节点。

这里写图片描述 
父目录的属主是root。所以IanA不能删除。 
用超级用户修改一下。 
这里写图片描述

现在就可以删除了。 
这里写图片描述

总结的测试结论:

linux普通文件的读、写、执行权限说明:

  • 可读r:表示具有读取\阅读文件内容的权限
  • 可写w:表示具有新增、修改文件内容的权限 
    ①如果没有r,那么vi无法编辑,强制编辑的话会覆盖数据,echo可以追加。 
    ②删除文件(修改文件名等)的权限是受父目录的权限控制,和文件本身权限无关)
  • 可执行x:表示具有执行文件的权限 
    ①文件本身要能够执行 
    ②普通用户同时还需要具备r的权限才能 
    ③root都可执行 
    win32下可执行文件:*.exe,*.bat,*.com 

  • linux下可执行文件:*.sh,*.py,*perl等

转载至https://blog.csdn.net/codetz/article/details/52464275

猜你喜欢

转载自blog.csdn.net/vic_qxz/article/details/80224330