Linux操作系统的权限(进入目录、在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限等等)

权限的基本概念

权限,简单的来说,就是规定哪些事情能做、哪些事情不能做。那么,在Linux中有哪些基本权限呢?进入目录需要哪些权限、在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作需要哪些权限?

Linux系统下的两种用户(root、普通用户)

  • 超级用户(root):可以在linux系统下做任何事情,没有限制(命令提示符为”#”)
  • 普通用户:在linux系统下只能做自己权限以内的事情(命令提示符为”$”)

切换用户的命令

su[用户名]   或者是  sudo -s[用户名]

linux系统的权限管理

文件或目录的基本权限(属性)

  • 读(r/4):read对于文件来说,具有读取文件内容的权限;对于目录来说,具有浏览该目录信息的权限
  • 写(w/2):write对于文件来说,具有修改文件内容的权限;对于目录来说,具有删除、移动目录内文件的权限
  • 执行(x/1):execute对于文件来说,具有执行文件的权限;对于目录来说,具有进入目录的权限
  • * ‘—’表示不具有该项权限

文件的三类访问者

  • 文件和文件目录的所有者(user)
  • 文件和文件目录的所在者所在的组的用户(group)
  • 其他用户(others)

文件的常见类型

在一个目录下以命令ls -l或者ll 显示在屏幕上的内容第一列的字符代表文件的类型这里写图片描述

  • ‘ -’ 代表普通文件(可执行文件、静态库、动态库)
  • ‘d’代表目录
  • ‘p’代表管道文件
  • ‘l’代表链接文件(软连接、硬链接、相当于windows下的快捷方式)
  • ‘c’代表字符文件(键盘)
  • ‘b’代表块设备文件(硬盘)

文件权限的两种表示方法(字符表示、8进制表示)

字符表示法

Linux表示 说明 Linux表示 说明
r- - 只读 -w- 仅可写
–x 可执行 rw- 可读可写
-wx 可写可执行 r-w 可读可执行
rwx 可读可写可执行 ——- 无权限

8进制表示法

权限符号 八进制 二进制
r 4 100
w 2 010
x 1 001
rw 6 110
rx 5 101
wx 3 011
rwx 7 111
__ 0 000

文件对应访问者的权限

在一个目录下以命令ls -l或者ll 显示在屏幕上的内容第一列的字符代表文件的类型,然后剩下的9个字符三三为一组。

第一组(u):文件拥有者
第二组(g):文件拥有者的所在组用户
第三组(a):其他用户

这里写图片描述

设置文件访问权限

chmod[参数]权限 文件名

1.用户表示符+-=权限字符

+:增加权限
-:取消权限
=:赋值权限
u:拥有者
g:所属组
o:其他用户
a:所有用户

例如:

chmod u+x file1
chmod o-x file2
chmod a=x file3

这里写图片描述

2.三位8进制数字

例如:

chmod 664 file4 //664代表110 110 100

修改文件的所有者

chown[参数] 用户名 文件名

例如:

chown zsc file2
sudo chown root file1

这里写图片描述

修改文件或目录的所属组

chgrp[参数] 用户组名 文件名

例如:

chgrp zsc file3

查看或者修改权限的掩码

  • 新建文件夹默认权限(0666-权限掩码)
  • 新建目录默认权限(0777-权限掩码)
umask 权限值

将现有的存取权限减去权限掩码后,既可以产生建立文件时的预设权限。超级用户默认掩码值为0022,普通用户默认值为0002。由于在umask中所指定的权限是要从文件中删除的,所以,如果该文件原来的初始化权限是777,那么执行命令umask 022以后,该文件的权限将变为755:如果该文件原来的初始化权限是666,那么该文件的权限将变为644。

这里写图片描述

umask //查看文件或目录权限掩码
umask 044//设置文件或目录的权限掩码

file指令

功能:识别文件的类型
语法: file[选项] 文件或目录

常用选项:

-c  //详细显示指令执行过程,便于排错或分析程序执行的情形
-z  //尝试去解读压缩文件的内容

这里写图片描述

粘滞位(chmod+t)

粘滞位(Stickybit),又称粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,也只能针对⽬录设置,对于⽂件⽆效。则设置了粘滞位后,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。

需要注意的是, 粘滞位权限只能针对⽬录设置,对于⽂件⽆效。当一个目录被设置粘滞位(chmod+t),该目录只能由该目录或文件的所有者还有root才能删除

例如:

[root@localhost dir1]# touch test.c
[root@localhost dir1]# ll
total 0
-rw--w--w-. 1 root root 0 Jul 11 04:28 test.c
[root@localhost dir1]# su zsc
[zsc@localhost dir1]$ rm test.c
[zsc@localhost dir1]$ ll
total 0
[root@localhost dir1]# touch test.c
[root@localhost dir1]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 11 04:30 test.c
[root@localhost bit]# chmod +t dir1//给目录加上粘滞位,则不能删除
[root@localhost dir1]# su zsc
[zsc@localhost dir1]$ rm test.c
rm: remove write-protected regular empty file `test.c'? y
rm: cannot remove `test.c': Operation not permitted

进入目录、在目录中执行增删查(cd, touch, ls, rm, mv)需要哪些权限

  • cd:语法 :cd 目录名(进入目录) 所需权限x(可执行)
  • touch:语法 :touch 文件名(创建文件) 所需权限wx(可写可执行)
  • ls:语法: ls (显示当前目录下的所有文件) 所需权限rx(可读可执行)
  • rm:语法: rm 文件名(删除文件) 所需权限wx(可写可执行)
  • mv:语法: mv 文件名1 文件名2(把文件名1修改为文件名2) 所需权限wx(可写可执行)

总结:

  • 目录的可执行权限表示你是否可以在该目录下执行命令
  • 如果目录没有可执行权限,则无法对该目录执行任何命令,也无法cd进入该目录,即使它是有可读权限的(有读权限但没有可执行权限不能进入该目录)
  • 如果目录具有可执行权限,但没有读权限,用户可以cd该目录。但没有目录的读权限,所以在该目录下即使可以执行ls命令,但依然没有权限读出目录下的文档

猜你喜欢

转载自blog.csdn.net/hansionz/article/details/80994955