Linux权限

Posted 白龙码~

tags:

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

文章目录

Linux权限

一、用户权限

1、用户分类

Linux下的用户分为超级用户(root)和普通用户(user)。

它们的区别在于:

  1. 超级用户在Linux系统下做任何事情不受限制,而普通用户只能做有限的事情;
  2. 超级用户的命令行提示符为**#,普通用户为$**。

2、权限提升sudo

sudo command

让普通用户以root的身份执行 command,只需要输入用户密码而不需要知道 root 的密码

注:使用一次sudo后短期内再次使用不需要输入用户密码


二、文件权限

1、文件的访问者

对于文件来说,访问者分为:所有者(user)、所属组(group)和其他人(others)。

  • 所有者:文件的建立者
  • 所属组:一组用户的集合,在该组中,除了文件所有者,其他人对该文件的访问权限都一样,他们是合作关系(除非某一个user特别设定某一文件的访问权限)
  • 其他人:非所有者和非所属组成员都是其他人,对文件的权限非常有限,甚至没有。

2、文件的属性信息

在命令行中使用ll命令会显示当前目录下的文件详细信息,比如:

-rw-r--r-- 1 root root 231 Oct 1 15:58 file.txt

- 表示文件类型,分为:

-:普通文件

d:目录

l:软链接(类似Windows的快捷方式)

p:管道文件

b:块设备文件(例如硬盘、光驱等)

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

注:通过 file+文件名 查看文件类型

rw-r--r--这9个字符三个为一组,分别代表user、group、others对于该文件的访问权限。

其中,r表示可读,w表示可写,x表示可执行,而对应位置为 - 的则表示没有对应权限,比如:rw-表示可读可写不可执行;

1表示连接数

root root分别代表:文件所有者和所属组的名字。如果文件的访问者不是这两种,那么他就是others。

231表示文件大小。

Oct 1 15:58表示该文件最近的修改日期。

file.txt表示文件名。

注意:文件的权限只能约束普通用户,无法约束root用户!

3、文件权限的概念

I.权限的八进制表示法

rwx对应111,即7;

---对应000,即0;

对应位为1表示拥有该权限。

II.文件掩码

文件的初始权限为: (默认权限) & (~权限掩码);

其中:

普通文件的默认权限为666(rw- rw- rw-),目录为777(rwx rwx rwx)

普通用户的默认权限掩码为002,root为022

示例:

当普通用户创建目录,那么目录的初始权限就是:

777 & ~(002) = 775(rwx rwx r-x)

III.目录的权限

目录是一种特殊的文件,它的权限也分别有特殊的定义。

  1. 目录可读是指:能够查看在该目录下有哪些文件;
  2. 目录可写是指:能够在该目录下创建、删除文件;
  3. 目录可执行是指:能够对该目录执行指令,或者说,能够进入(cd)该目录。

如果一个目录没有x权限,那么就无法对该目录下的文件执行读写,因为读写的前提是:必须先进入该目录。

而要删除一个文件,对该文件所在目录需要拥有wx权限,但是对该文件本身却没有w权限要求

IV.粘滞位

对于只有---权限的用户,无法读、写、执行文件,但是可以删除该文件!

因此linux为目录增添了一种特殊权限:粘滞位(t)

粘滞位的设置方法为:chmod +t file_name;

当设置了粘滞位后,目录下的文件只能由三种用户删除:

  • 文件所有者
  • 目录所有者
  • root

系统根目录下保存程序产生的临时文件的tmp目录就使用了粘滞位。

注:粘滞位实际上是针对其他人(others)设置的。当其他人拥有目录x权限时,粘滞位在x处显示t,未拥有x权限时,显示T

4、文件权限相关命令

chmod

chmod [选项] 文件名

修改文件的权限,该命令只有文件的拥有者和root可以执行

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限

用户符号:

u:拥有者

g:拥有者同组用

o:其它用户

a:所有用户

示例:

chmod o+w f.txt 给others增加写权限

chmod o-r f.txt 回收others的读权限

chmod o=--- f.txt 不给others任何权限

当然,也可以通过八进制的方式增减权限,例如:

chmod 000 f.txt 不给任何人权限

chmod 777 f.txt 给任何人所有权限

注:对于只有写权限,没有读权限的普通用户,想要写文件就必须使用echo+重定向的方式。

chown

chown [选项] 新的拥有者 文件名

改变文件的拥有者(普通用户需要sudo)

-R:递归修改所有子文件和子目录的拥有者

chgrp

chgrp [选项] 新的所属组 文件名

改变文件的所属组(普通用户需要sudo)

-R:递归修改所有子文件和子目录的拥有者

umask

查看/修改文件掩码

umask:查看掩码

umask + 数字:修改当前用户的掩码

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

Linux常用命令

Linux--权限操作

Linux下文件特殊权限

Linux文件权限

Linux中权限管理之ACL权限

linux权限,所有者所在组其他组(其他人员),chmod,chown