文件权限

Posted hsqktm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件权限相关的知识,希望对你有一定的参考价值。

1. 如何知道我对当前的文件有何权限

  1. 你是谁 通过哪个用户登录的系统
  2. 通过系统用户来对应文件的属主 属组
  3. 通过属主属组的权限来判断我们对文件的权限

2. 权限表示方法

表示方法1
R  read    可读   cat  less
W  write   可写   vim echo sed
X  execute 可执行 ./1.sh /root/1.sh
表示方法2
R  4
W  2
X  1
-  0

3. 如何使用数字计算当前的权限

  -rw-r--r--. 1 root root 1019 Nov 10 16:08 passwd
前三位 属主 rw- 数字相加 420 6
中三位 属组 r-- 数字相加 400 4
后三位 其他用户 r-- 数字相加 400 4
  644权限

4.如何修改权限

  chmod 修改权限

4.1 使用rwx进行修改

  属主    user    u
  属组    group   g
  其他用户   other  0
 1)修改oldboy.txt 文件属主权限为 rwx
      [root@oldboyedu ~]# ll oldboy.txt
      -rw-r--r-- 1 root root 10 Nov  9 09:09 oldboy.txt
      [root@oldboyedu ~]# chmod u+x oldboy.txt 
      [root@oldboyedu ~]# ll oldboy.txt
      -rwxr--r-- 1 root root 10 Nov  9 09:09 oldboy.txt
      ------------------------ 先清空在赋值新的权限
      [root@oldboyedu ~]# chmod u=x oldboy.txt 
      [root@oldboyedu ~]# ll oldboy.txt
      ---xr--r-- 1 root root 10 Nov  9 09:09 oldboy.txt
		
      [root@oldboyedu ~]# chmod u=rwx oldboy.txt 
      [root@oldboyedu ~]# ll oldboy.txt
      -rwxr--r-- 1 root root 10 Nov  9 09:09 oldboy.txt
	
      取消执行x权限
      [root@oldboyedu ~]# chmod u-x oldboy.txt 
      [root@oldboyedu ~]# ll oldboy.txt
      -rw-r--r-- 1 root root 10 Nov  9 09:09 oldboy.txt

2) 修改oldboy.txt 文件属主属组同时去掉r权限
      [root@oldboyedu ~]# chmod ug-r oldboy.txt 
      [root@oldboyedu ~]# ll oldboy.txt
      --wx---r-- 1 root root 10 Nov  9 09:09 oldboy.txt

3)属组 属组 其他用户同时加上r权限
      [root@oldboyedu ~]# chmod ugo+r oldboy.txt 
      [root@oldboyedu ~]# ll oldboy.txt
      -rwxr--r-- 1 root root 10 Nov  9 09:09 oldboy.txt

	
      同时去掉r权限	
      [root@oldboyedu ~]# chmod a-r oldboy.txt 
      [root@oldboyedu ~]# ll oldboy.txt
      --wx------ 1 root root 10 Nov  9 09:09 oldboy.txt

      同时加上r权限 所有位置
      [root@oldboyedu ~]# chmod +r oldboy.txt 
      [root@oldboyedu ~]# ll oldboy.txt 
      -rwxr--r-- 1 root root 10 Nov  9 09:09 oldboy.txt

4.2 使用数字方式授权

      [root@oldboyedu ~]# # 修改文件权限为rw-r--r--
      [root@oldboyedu ~]# # 对应的数字    644
      [root@oldboyedu ~]# chmod 644 oldboy.txt
      [root@oldboyedu ~]# ll oldboy.txt
      -rw-r--r-- 1 root root 10 Nov  9 09:09 oldboy.txt

      [root@oldboyedu ~]# # 修改文件权限为r-x-rw-rwx
      [root@oldboyedu ~]# # 对应的数字 567
      [root@oldboyedu ~]# chmod 567 oldboy.txt 
      [root@oldboyedu ~]# ll oldboy.txt
      -r-xrw-rwx 1 root root 10 Nov  9 09:09 oldboy.txt

4.3 扩展

为什么默认创建的文件权限为644 目录 755
      umask
	   
[root@oldboyedu ~]# umask 
0022
[root@oldboyedu ~]# # 文件默认644  文件和目录最高权限 减掉umask 等于默认权限

5. rwx的真正含义

5.1 rwx对于文件的含义

r对于文件的作用
      1.可读
      2.不能写入
      3.不可执行
      4.可强制写入执行
	
w对于文件的作用
      1.不能查看文件内容
      2.不能使用vim编辑内容 只能使用echo命令追加内容
      3.不能执行
      4.如果强制写入 但是会覆盖源内容
      PS: r和w配置使用 有读写权限
	
x对于文件的作用
      没任何权限
      想要执行必须和r同时使用
      PS:r和x配合使用

5.2 rwx对于目录的含义

r对于目录的含义
      1.无法进入目录
      2.只能看到文件名称 无法查看详细属性
      3.不能写入内容
      4.不能删除
      PS: r和x配合使用 可进入 可查看文件内容 无法删除 无法写入创建
      目录的默认的权限 对属组 陌生人====755
	
w对于目录的含义
      1.无法进入目录
      2.无法查看目录的内容
      3.无法写入 创建文件
      4.无法删除
      PS: wx配合可以创建文件 不能查看 文件详细信息 可以查看文件内容
      rwx配置使用拥有最高权限
	
x对于目录的含义
      1.可以进入目录 cd
      2.无法查看内容
      3.无法创建文件目录
      4.无法删除
      PS: r和x配置使用
案例

oldboy用户操作

1.无法编辑/etc/passwd 文件 
      [root@oldboyedu oldboy]# chmod o+w /etc/passwd
      [root@oldboyedu oldboy]# ll /etc/passwd
      -rw-r--rw- 1 root root 1227 Nov 10 12:03 /etc/passwd
      [root@oldboyedu oldboy]# chmod o-w /etc/passwd

2.为什么无法在/etc/下创建文件或目录
      [root@oldboyedu oldboy]# ll -d /etc
      drwxr-xr-x. 83 root root 8192 Nov 10 12:03 /etc
      [root@oldboyedu oldboy]# chmod o+w /etc
      [root@oldboyedu oldboy]# ll -d /etc
      drwxr-xrwx. 83 root root 8192 Nov 10 12:03 /etc
      [root@oldboyedu oldboy]# chmod o-w /etc

3.为什么无法查看进入/root目录 默认权限550
      dr-xr-x---. 4 root root 4096 Nov 11 09:19 /root

4.为什么可以在/tmp目录下创建文件
      [root@oldboyedu oldboy]# chmod 777 /tmp
      [root@oldboyedu oldboy]# ll -d /tmp
      drwxrwxrwx. 15 root root 4096 Nov 11 11:08 /tmp
      [root@oldboyedu oldboy]# chmod o+t /tmp/
      [root@oldboyedu oldboy]# ll -d /tmp
      drwxrwxrwt. 15 root root 4096 Nov 11 11:11 /tmp

5.3 扩展: 文件隐藏权限

  12位权限
  s  === 4
  g  === 2
  o  === 1
[root@oldboyedu etc]# chmod u+s /usr/bin/rm
[root@oldboyedu etc]# ll /usr/bin/rm
-rwsr-xr-x. 1 root root 62952 Oct 31  2018 /usr/bin/rm
		
[root@oldboyedu etc]# chmod u-s /usr/bin/rm
[root@oldboyedu etc]# ll /usr/bin/rm
-rwxr-xr-x. 1 root root 62952 Oct 31  2018 /usr/bin/rm
文件权限 隐藏权限
      a  # 只能追加内容到文件中 只能echo 不能删除 不能修改
      i  # 啥都干不了 保护文件 增强文件安全性 无敌的
      查看使用 lsattr
      设置权限 chattr
		
[root@oldboyedu ~]# lsattr 1.txt
---------------- 1.txt

以上是关于文件权限的主要内容,如果未能解决你的问题,请参考以下文章

gitlab 权限说明

Django REST框架--认证和权限

片段中的请求权限

片段中的请求权限不显示对话框

从片段内请求权限后应用程序崩溃

片段中带有 RequestPermission 的 registerForActivityResult 不起作用