导航:首页 > 操作系统 > linux权限解释

linux权限解释

发布时间:2022-10-24 03:56:12

A. linux对于文件,目录,r,w,x权限分别表示什么意思

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。

w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。

x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

(1)linux权限解释扩展阅读:

权限对于文件的意义

1、也应该明白的是文件是实际含有数据的地方,所以r、w、x权限对文件来说是与其内容有关的。

2、r权限:用于此权限表示可以读取此文件的实际内容。

3、w权限:拥有此权限表示可以编辑、添加或者是修改该文件的内容。但是不包含删除该文件,因为由上面权限对于目录的意义得知删除文件或目录的条件是什么。

4、x权限:表示该文件具有可以被系统执行的权限。文件是否能被执行就是由该权限来决定的,跟文件名没有绝对的关系。

B. linux的权限分配特点

Linux中的用户与用户组

1、Linux多用户、多任务的特性

不同用户具有不同的权限,每个用户在权限允许的范围内完成不同的任务,

Linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

2、Linux用户的分类(3种)

在Linux下用户是根据角色定义的,具体分为三种角色

每个用户都有一个UID,并且是唯一的,通常UID号的取值范围是0~65535,

a. 管理员(超级用户):拥有对系统的最高管理权限 ,默认是root用户【0】

b. 系统用户(虚拟用户):

也叫“伪”用户,这类用户最大特点是不能登录系统, 它们的存在主要是为了方便系统管理,满足相应的系统进程对文件属主的要求。

例如,系统默认的bin、adm、nobody用户等,一般运行的web服务,默认使用的就是nobody用户,但是nobody用户是不能登录系统的【1-499】

(运行后台程序,daemon守护进程)

c. 普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限

例如,上面提到的crx用户,A,B用户等【500+】

3、用户和组的概念

我们知道,Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个帐户,然后通过这个帐户进入系统。这个帐户和用户是一个概念。

通过建立不同属性的用户,一方面,可以合理利用和控制系统资源;

另一方面,也可以帮助用户组织文件,提供对用户文件的安全性保护.

每个用户都用一个唯一的用户名和用户密码,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。

用户组是具有相同特征用户的逻辑集合。

通过定义用户组,在很大程度上简化了管理工作

4、用户和组的关系:

用户和用户组的对应关系有:一对一、一对多、多对一、多对多

一对一:一个用户可以存在一个组中,也可以是组中的唯一成员。

一对多:一个用户可以存在多个用户组中,此用户具有多个组的共同权限

多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限

多对多:多个用户可以存在多个组中,其实就是上面三个对应关系的扩展

为了方便用户管理,提出了“组”的概念,可以给组分配权限,把相同用户的权限放在同一个组中



5、三个重要配置文件

(1)/etc/passwd (冒号“:”为分隔符)

由于/etc/passwd文件是所有用户都可读的,因此就导致了用户的密码容易出现泄露,于是,Linux将用户的密码信息从/etc/passwd中分离出来,单独放到一个文件中, 这个文件就是/etc/shadow。该文件只有root用户拥有读权限,从而保证了用户密码的安全性。

现在许多linux版本都使用了shadow技术,把真正加密后的用户密码存放到/etc/shadow文件中,而在/etc/passwd文件的密码字段只存放一个特殊的字符,例如用“x"或者"*"来表示。



(3)/etc/group

5、每个用户和每个用户组都有一个属于自己惟一的一个ID(分别是UID和GID)

6、什么是shell ?

shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。相当于一个翻译官。Linux下常用的shell用sh、bash、csh等,

C. LINUX 如何对文件分配权限 权限分别是什么

在Linux中,权限的所有者分为用户权限,组权限和其他权限,分别是用字母u, g, o 代表
权限分为:读 r , 写 w , 执行 x。

比如看到了,你一个文件夹1个的权限是: rwxr-xr-x 这个权限的意思是这个文件夹的所有者用户是完全控制(第一段rwx),这个文件夹的所属组用户的权限是读取和执行(第二段r-x),这个文件夹的对于其他用户来说是读取和执行(第三段r-x)。

这些权限都可以用数字来表示:r 4, w 2 , x 1, 那么上边的权限就是755 (一段一段的加和)更改权限的命令是chmod。

想这对文件夹/test设置权限,希望是test文件夹的所属用户完全控制,所属组和其他用户只能读取和执行。

(3)linux权限解释扩展阅读:

HFS+卷使用分配文件有以下几点优势:

1、使用文件允许分配文件为其自身分配存储块,这种方式相对简单得多,因为这样卷就只有一种块类型——分配块。HFS之所以复杂是因为它使用扇区来存储分配位图,用分配块来存储文件。

2、分配文件可以是不连续的,允许分配信息和用户数据交叉存取。许多现代的文件系统都采取这种方式以减少文件增大的过程中的磁头运动行程。

3、分配文件可以扩展。因为分配文件的可扩展性,所以很容易增加磁盘上的分配块的数量。这无论是对于想减小分配块的大小还是扩大整个磁盘的空间都是非常有用的。

4、分配文件的可收缩性。可以为不同大小的卷创建适当的镜像,回写至磁盘时,即便磁盘很大,也可以建立足够的分配文件数据;如果写入较小的磁盘,分配文件又可以收缩至适当的大小。

D. linux文件权限是指什么

Linux/UNIX系统的权限是指:对文件所有者本人、同组用户、以及其他用户的可读、可写、可执行权限。
可以通过 chmod 命令设置任何文件的权限。

E. 测试时需要使用Linux,请问Linux权限的字母的含义是什么

文件系统部分

- 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
d 目录文件(蓝色)
b 设备文件(块设备)存储设备硬盘,U盘 /dev/sda, /dev/sda1
c 设备文件(字符设备)打印机,终端 /dev/tty1
l 链接文件(淡蓝色)
s 套接字文件
p 管道文件

文件权限部分

- //表普通文件

rwx //读、写、执行(数字表示4、2、1)

a所有人,= 表覆盖

s是此处含有x权限,当去除x权限则为S。

s分为suid和sgid,suid可以为普通用户提权,sgid可以让组属性得以继承。

基本权限 ACL

acl权限的理解:假如有一个test.txt文件,只有属主和属组有rwx权限,其他用户没权限。有一个用户既不在该用户属组也不是属主,想要访问test.txt文件,就得通过acl权限

。即acl权限可以针对单个用户。

mask权限

acl权限中有个"mask"的选项,它就是ACL权限的最大权限,现在是rwx,当你设置某个用户或组的ACL权限时,要跟mask的权限“相与”之后产生的权限才是该用户的最终权限,也就是加入mask的最大权限是rx,但是你给st用户设置的是rwx权限,此时st用户它的权限只有rx的权限,因为与最大权限“相与”得出的结果就是rx。

4、特殊权限chattr:常用于锁定某个文件,拒绝修改。可参考《Linux就该这么学》了解更多Linux知识。

F. linux RWX权限的解读

注意

chown 和 chgrp 都有一个 -R 选项,该选项可以用来告诉它们递归地将所属权和组改变应用到整个目录树中。例如:

注意 :除非您是超级用户,否则您不可以使用 chown,然而任何人都可以使用 chgrp 来将文件的组所有权改为他们所属的组。

该操作chmod 示例已经影响到了所有三个三元组 — 用户、组和所有其他用户

亦可指定,对于“用户”三元组使用 u,对于“组”三元组使用 g,对于“其他/每个人”使用 o

定制化设定权限

直到现在为止,我们使用了叫做“符号”的模式来用 chmod 指定权限的改变。然而,指定权限还有一种普遍使用的方法 — 使用 4 位八进制数。使用叫做数字权限语法的语法,每一位代表一个权限三元组。例如,在 1777 中,777 设置本章我们所讨论的“owner”、“group”和“other”标志。1 用来设置专门的权限位,我们将在本章的结束部分讲到。

举例:7=4+2+1,读写执行,5=4+1,读执行。各种组合方式。
rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 --x 1 --- 0

当进程创建了新文件时,它指定新文件应该具有的权限。通常,所请求的模式是 0666(每个人可读和可写),它比我们希望的具有更多的权限。幸运的是,不管什么时候创建了新文件,Linux 将参考叫做“umask”的东西。系统用 umask 值来将初始指定的权限降低为更合理、更安全的权限。您可以通过在命令行中输入 umask 来查看您当前的 umask 设置:

Linux 系统上,umask 的缺省值一般为 0022,它允许其他人读您的新文件(如果他们可以得到它们),但是不能进行修改。为了在缺省的情况下使新文件更安全,您可以改变 umask 设置: $ umask 0077umask 将确保组和其他用户对于新创建的文件绝对没有任何权限。那么,umask 怎样工作呢? 与文件的“常规”权限不同,umask 指定应该关闭哪一个权限 。我们来参阅一下我们的“模式到数字”映射表,从而使我们可以理解 0077 的 umask 的意思是什么: 模式 数字 rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 --x 1 --- 0 使用该表,0077 的最后三位扩展为 ---rwxrwx。现在,请记住 umask 告诉系统禁用哪个权限。根据推断,我们可以看到将关闭所有“组”和“其他”权限,而“用户”权限将保留不动。

当您最初登录时,将启动一个新的 shell 进程。您已经知道,但是您可能还不知道这个新的 shell进程(通常是 bash)使用您的用户标识运行。照这样,bash 程序可以访问所有属于您的文件和目录。事实上,作为用户,我们完全依靠其它程序来代表我们执行操作。因为您启动的程序继承了您的用户标识,因此它们不能访问任何不允许您访问的文件系统对象。例如,一般用户不能直接修改 passwd 文件,因为“write”标志已经对除“root 用户”以外的每个用户关闭:

但是,一般用户确实需要在他们需要改变其密码的任何时候,能够修改 /etc/passwd(至少间接地)。但是,如果用户不能修改该文件,究竟怎样完成这个工作呢?
Suid
幸好,Linux 权限模型有两个专门的位,叫做“suid”和“sgid”。当设置了一个可执行程序的“suid”这一位时,它将代表可执行文件的所有者运行,而不是代表启动程序的人运行。现在,回到 /etc/passwd 问题。如果看一看 passwd 可执行文件,我们可以看到它属于 root 用户:
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root wheel 17588 Sep 24 00:53 /usr/bin/passwd
您还将注意到,这里有一个 s 取替了用户权限三元组中的一个 x。这表明,对于这个特殊程序,设置了 suid 和可执行位。由于这个原因,当 passwd 运行时,它将代表 root 用户执行(具有完全超级用户访问权),而不是代表运行它的用户运行。又因为 passwd 以 root 用户访问权运行,所以能够修改 /etc/passwd 文件,而没有什么问题。
suid/sgid 告诫说明
我们看到了 suid 怎样工作,sgid 以同样的方式工作。它允许程序继承程序的组所有权,而不是当前用户的程序所有权。这里有一些关于 suid 和 sgid 的其它的但是很重要的信息。首先,suid 和 sgid 占据与 ls -l 清单中 x 位相同的空间。如果还设置了 x 位,则相应的位表示为 s(小写)。但是,如果没有设置 x 位,它将表示为 S(大写)。另一个很重要的提示:在许多环境中,suid 和 suid 很管用,但是不恰当地使用这些位可能使系统的安全遭到破坏。最好尽可能地少用“suid”程序。passwd 命令是为数不多的必须使用“suid”的命令之一。
改变 suid 和 sgid
设置和除去 suid 与 sgid 位相当简单。这里,我们设置 suid 位:

此处,我们从一个目录除去 sgid 位。我们将看到 sgid 位怎样影响下面几屏中的目录:

权限和目到此为止,我们从常规文件的角度来看权限。当从目录的角度看权限时,情况有一点不同。目录使用同样的权限标志,但是它们被解释为表示略微不同的含义。 对于一个目录,如果设置了“read”标志,您可以列出目录的内容;“write”表示您可以在目录中创建文件,“execute”表示您可以进入该目录并访问内部的任何子目录。没有“execute”标志,目录内的文件系统对象是不可访问的。没有“read”标志,目录内的文件系统对象是不可查看的,但是只要有人知道磁盘上对象的完整路径,就仍然可以访问目录内的对象。目录和 sgid如果启用了目录的“sgid”标志,在目录内创建的任何文件系统对象将继承目录的组。当您需要创建一个属于同一组的一组人使用的目录树时,这种特殊的功能很管用。只需要这样做:

现在,mygroup 组中的所有用户都可以在 /home/groupspace 内创建文件或目录,同样,他们也将自动地分配到 mygroup 的组所有权。根据用户的 umask 设置,新文件系统对象对于 mygroup 组的其他成员来说,可以或不可以是可读、可写或可执行的。目录和删除缺省情况下,Linux 目录以一种不是在所有情况下都很理想的方式表现。一般来说,只要对一个目录有写访问权,任何人都可以重命名或删除该目录中的文件。对于个别用户使用的目录,这种行为是很合理的。但是,对于很多用户使用的目录来说,尤其是 /tmp 和 /var/tmp,这种行为可能会产生麻烦。因为任何人都可以写这些目录,任何人都可以删除或重命名任何其他人的文件 — 即使是不属于他们的!显然,当任何其他用户在任何时候都可以输入“rm -rf /tmp/*”并损坏每个人的文件时,很难把 /tmp 用于任何有意义的文件。所幸,Linux 有叫做“粘滞位”(sticky bit)的东西。当给 /tmp 设置了粘滞位(用chmod +t),唯一能够删除或重命名 /tmp 中文件的是该目录的所有者(通常是 root 用户)、文件的所有者或 root 用户。事实上,所有 Linux 分发包都缺省地启用了 /tmp 的粘滞位,而您还可以发现粘滞位在其它情况下也很管用。难以理解的第一位
总结本章,我们最后来看一看数字模式的难以理解的第一位数。您可以看到,这个第一位数
用来设置 sticky、suid 和 sgid 位:
suid sgid sticky 模式数字 on on on 7 on on off 6 on off on 5 on off off 4 off on on 3 off on off 2 off off on 1 off off off 0
这里有一个怎样用 4 位数字模式来设置一个目录的权限的示例,该目录将由一个工作组使用:
# chmod 1775 /home/groupfiles
请想一想 1755 数字模式权限设置的含义。

linux权限补充:rwt rwT rws rwS 特殊权限

众所周知,Linux的文件权限如: 777;666等,其实只要在相应的文件上加上UID的权限,就可以用到加权限人的身份去运行这个文件。所以我们只需要将bash复制出来到另一个地方,然后用root加上UID权限,只要用户运行此Shell就可以用用root的身份来执行任何文件了

一个文件都有一个所有者, 表示该文件是谁创建的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组.

如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置.

setuid:该位是让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令。比如我们用普通用户运行passwd命令来更改自己的口令,实际上最终更改的是/etc/passwd文件我们知道/etc/passwd文件是用户管理的配置文件,只有root权限的用户才能更改

[root@localhost ~]# ls -l /etc/passwd

-rw-r--r-- 1 root root 2379 04-21 13:18 /etc/passwd

作为普通用户如果修改自己的口令通过修改/etc/passwd肯定是不可完成的任务,但是不是可以通过一个命令来修改呢答案是肯定的,作为普通用户可以通过passwd 来修改自己的口令这归功于passwd命令的权限我们来看一下;

[root@localhost ~]# ls -l /usr/bin/passwd

-r-s--x--x 1 root root 21944 02-12 16:15 /usr/bin/passwd

因为/usr/bin/passwd 文件已经设置了setuid 权限位(也就是r-s--x--x中的s),所以普通用户能临时变成root,间接的修改/etc/passwd,以达到修改自己口令的权限

setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.

sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.

下面说一下如何操作这些标志:

操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,

chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效)

chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效)

abc

a - setuid位, 如果该位为1, 则表示设置setuid 4---

b - setgid位, 如果该位为1, 则表示设置setgid 2---

c - sticky位, 如果该位为1, 则表示设置sticky 1---

设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如

rwsrw-r-- 表示有setuid标志

rwxrwsrw- 表示有setgid标志

rwxrw-rwt 表示有sticky标志

那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
https://blog.csdn.net/zhao12795969/article/details/53448039/

G. Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)

权限简介

Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。

Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。

Linux下权限的粒度有

拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组,

如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。

Linux上通常使用chmod命令对文件的权限进行设置和更改。

一、快速入门

更改文件权限 (chmod命令)

一般使用格式

chmod [可选项]

可选项:  -c, --changes          like verbose but report onlywhena change is made (若该档案权限确实已经更改,才显示其更改动作)  -f, --silent, --quiet  suppress most error messages(若该档案权限无法被更改也不要显示错误讯息)  -v, --verbose          output a diagnosticforevery file processed(显示权限变更的详细资料)      --no-preserve-rootdonottreat'/'specially (the default)      --preserve-root    fail to operate recursively on'/'      --reference=RFILE  use RFILE's mode instead of MODE values-R, --recursive        change files and directories recursively(以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更)--help显示此帮助信息--version显示版本信息mode :权限设定字串,详细格式如下 :[ugoa...][[+-=][rwxX]...][,...],其中[ugoa...]

u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。[+-=]

+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。[rwxX]

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

file...文件列表(单个或者多个文件、文件夹)

范例:

设置所有用户可读取文件 a.conf

设置 c.sh 只有 拥有者可以读写及执行

设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写

设置当前目录下的所有档案与子目录皆设为任何人可读写

数字权限使用格式

在这种使用方式中,首先我们需要了解数字如何表示权限。

首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w=2,x=1

。此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4

+1 = 5 即

若要同时设置

rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7 若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置

为 4 + 2 = 6 若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5

上面我们提到,每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。即我们可以用用三个8进制数字分别表示 拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限。语法格式为 :

chmod file...

其中a,b,c各为一个数字,分别代表User、Group、及Other的权限。相当于简化版的chmod u=权限,g=权限,o=权限file...而此处的权限将用8进制的数字来表示User、Group、及Other的读、写、执行权限

范例:

设置所有人可以读写及执行

设置拥有者可读写,其他人不可读写执行

更改文件拥有者(chown命令)

linux/Unix 是多人多工作业系统,每个的文件都有拥有者(所有者),如果我们想变更文件的拥有者(利用 chown 将文件拥有者加以改变),一般只有系统管理员(root)拥有此操作权限,而普通用户则没有权限将自己或者别人的文件的拥有者设置为别人。

语法格式:

chown [可选项] user[:group] file...

使用权限:root说明:[可选项] :同上文chmoser :新的文件拥有者的使用者group :新的文件拥有者的使用者群体(group)

范例:

设置文件 d.key、e.scrt的拥有者设为 users 群体的 tom

设置当前目录下与子目录下的所有文件的拥有者为 users 群体的 James

二、Linux权限详解

Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。这也是Linux有别于Windows的机制,也是基于这个权限机智,Linux可以有效防止病毒自我运行,因为运行的条件是必须要有运行的权限,而这个权限在Linux是用户所赋予的。

Linux的文件权限有以下设定:

Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。

Linux下权限的属组有 拥有者 、群组 、其它组 三种。每个文件都可以针对这三个属组(粒度),设置不同的rwx(读写执行)权限。

通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。

如果我们要表示一个文件的所有权限详情,有两种方式:

第一种是十位二进制表示法,(三个属组每个使用二进制位,再加一个最高位共十位),可简化为三位八进制形式

另外一种十二位二进制表示法(十二个二进制位),可简化为四位八进制形式

十位权限表示

常见的权限表示形式有:

-rw------- (600)只有拥有者有读写权限。-rw-r--r-- (644)只有拥有者有读写权限;而属组用户和其他用户只有读权限。-rwx------ (700)只有拥有者有读、写、执行权限。-rwxr-xr-x (755)拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。-rwx--x--x (711)拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。-rw-rw-rw- (666)所有用户都有文件读、写权限。-rwxrwxrwx (777)所有用户都有读、写、执行权限。

后九位解析:我们知道Linux权限总共有三个属组,这里我们给每个属组使用三个位置来定义三种操作(读、写、执行)权限,合起来则是权限的后九位。 上面我们用字符表示权限,其中 -代表无权限,r代表读权限,w代表写权限,x代表执行权限。

实际上,后九位每个位置的意义(代表某个属组的某个权限)都是固定的,如果我们将各个位置权限的有无用二进制数 1和 0来代替,则只读、只写、只执行权限,可以用三位二进制数表示为

r--=100-w-=010--x=001---=000

转换成八进制数,则为 r=4, w=2, x=1, -=0(这也就是用数字设置权限时为何是4代表读,2代表写,1代表执行)

实际上,我们可以将所有的权限用二进制形式表现出来,并进一步转变成八进制数字:

rwx=111=7rw-=110=6r-x=101=5r--=100=4-wx=011=3-w-=010=2--x=001=1---=000=0

由上可以得出,每个属组的所有的权限都可以用一位八进制数表示,每个数字都代表了不同的权限(权值)。如 最高的权限为是7,代表可读,可写,可执行。

故 如果我们将每个属组的权限都用八进制数表示,则文件的权限可以表示为三位八进制数

-rw------- =600-rw-rw-rw- =666-rwxrwxrwx =777

关于第一位最高位的解释:上面我们说到了权限表示中后九位的含义,剩下的第一位代表的是文件的类型,类型可以是下面几个中的一个:

d代表的是目录(directroy)-代表的是文件(regular file)s代表的是套字文件(socket)p代表的管道文件(pipe)或命名管道文件(named pipe)l代表的是符号链接文件(symbolic link)b代表的是该文件是面向块的设备文件(block-oriented device file)c代表的是该文件是面向字符的设备文件(charcter-oriented device file)

十二位权限(Linux附加权限)

附加权限相关概念

linux除了设置正常的读写操作权限外,还有关于一类设置也是涉及到权限,叫做Linxu附加权限。包括 SET位权限(suid,sgid)和粘滞位权限(sticky)。

SET位权限:

suid/sgid是为了使“没有取得特权用户要完成一项必须要有特权才可以执行的任务”而产生的。

一般用于给可执行的程序或脚本文件进行设置,其中SUID表示对属主用户增加SET位权限,SGID表示对属组内用户增加SET位权限。执行文件被设置了SUID、SGID权限后,任何用户执行该文件时,将获得该文件属主、属组账号对应的身份。在许多环境中,suid

和 sgid 很管用,但是不恰当地使用这些位可能使系统的安全遭到破坏。所以应该尽量避免使用SET位权限程序。(passwd

命令是为数不多的必须使用“suid”的命令之一)。

suid(set User ID,set UID)的意思是进程执行一个文件时通常保持进程拥有者的UID。然而,如果设置了可执行文件的suid位,进程就获得了该文件拥有者的UID。

sgid(set Group ID,set GID)意思也是一样,只是把上面的进程拥有者改成进程组就好了。

SET位权限表示形式(10位权限):

如果一个文件被设置了suid或sgid位,会分别表现在所有者或同组用户的权限的可执行位上;如果文件设置了suid还设置了x(执行)位,则相应的执行位表示为s(小写)。但是,如果没有设置x位,它将表示为S(大写)。如:

1、-rwsr-xr-x表示设置了suid,且拥有者有可执行权限2、-rwSr--r--表示suid被设置,但拥有者没有可执行权限3、-rwxr-sr-x表示sgid被设置,且群组用户有可执行权限4、-rw-r-Sr--表示sgid被设置,但群组用户没有可执行权限

设置方式:

SET位权限可以通过chmod命令设置,给文件加suid和sgid的命令如下(类似于上面chmod赋予一般权限的命令):

chmo+sfilename设置suid位chmo-sfilename去掉suid设置chmodg+sfilename设置sgid位chmodg-sfilename去掉sgid设置

粘滞位权限:

粘滞位权限即sticky。一般用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据。设置了粘滞位权限的目录,是用ls查看其属性时,其他用户权限处的x将变为t。

使用chmod命令设置目录权限时,+t、-t权限模式可分别用于添加、移除粘滞位权限。

粘滞位权限表示形式(10位权限):

一个文件或目录被设置了粘滞位权限,会表现在其他组用户的权限的可执行位上。如果文件设置了sticky还设置了x(执行)位,其他组用户的权限的可执行位为t(小写)。但是,如果没有设置x位,它将表示为T(大写)。如:

1、-rwsr-xr-t表示设置了粘滞位且其他用户组有可执行权限2、-rwSr--r-T表示设置了粘滞位但其他用户组没有可执行权限

设置方式:

sticky权限同样可以通过chmod命令设置:

chmod +t <文件列表..>

十二位的权限表示方法

附加权限除了用十位权限形式表示外,还可以用用十二位字符表示。

11109876543210S  G  T r w x r w x r w x

SGT分别表示SUID权限、SGID权限、和 粘滞位权限,这十二位分别对应关系如下:

第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于上面的三组rwx位(后九位)。

在这十二位的每一位上都置值。如果有相应的权限则为1, 没有此权限则为0。

-rw-r-sr--的值为:010110100100-rwsr-xr-x的值为:100111101101-rwsr-sr-x的值为:110111101101-rwsr-sr-t的值为:111111101101

如果将则前三位SGT也转换成一个二进制数,则

suid 的八进制数字是4

sgid 的代表数字是 2

sticky 位代表数字是1

这样我们就可以将十二位权限三位三位的转化为4个八进制数。其中

最高的一位八进制数就是suid,sgdi,sticky的权值。

第二位为 拥有者的权值

第三位为 所属组的权值

最后一位为 其他组的权值

附加权限的八进制形式

通过上面,我们知道,正常权限和附加权限可以用4位八进制数表示。类似于正常权限的数字权限赋值模式(使用三位八进制数字赋值)

chmod file...

我们可以进一步使用4位八进制数字同时赋值正常权限和附加权限。

chmod file...

其中s是表示附加权限的把八进制数字,abc与之前一致,分别是对应User、Group、及Other(拥有者、群组、其他组)的权限。因为SUID对应八进制数字是4,SGID对于八进制数字是2,则“4755”表示设置SUID权限,“6755”表示同时设置SUID、SGID权限。

我们进一步将上小节的例子中的二进制数转变为八进制表示形式,则

-rw-r-sr-- =010110100100=2644-rwsr-xr-x =100111101101=4755-rwsr-sr-x =110111101101=6755-rwsr-sr-t =111111101101=7755

对比范例:

设置 netlogin 的权限为拥有者可读写执行,群组和其他权限为可读可执行

设置 netlogin 的权限为拥有者可读写执行,群组和其他权限为可读可执行,并且设置suid

chmod 4755与chmod 755对比多了附加权限值4,这个4表示其他用户执行文件时,具有与所有者同样的权限(设置了SUID)。

为什么要设置4755 而不是 755?

假设netlogin是root用户创建的一个上网认证程序,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令使其他用户也能运行netlogin。但假如netlogin执行时需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网。这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。

H. 简述Linux文件和目录的权限,并解释其具体含义

- rwx rwx rwx: "-"表示普通文件,后面三个“rwx”从左到右分别表示文件拥有者(用户)、用户所在组、组外用户的读、写、执行权限,一般新建一个文件,其权限是755,翻译成二进制就是:111 101 101。翻译成权限,就是rwx r-x r-x,即用户(文件创建者)拥有读、写、执行的权限,其他人只有读、执行的权限,而没有写权限。另外需要注意的是,你能否访问一个目录,是由“执行”的权限决定的,而不是拥有对目录的读权限就能访问。

I. linux对于文件,目录,r,w,x权限分别表示什么意思

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目
录的权限。
w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

J. linux中的 代表什么权限

Linux的用户在登录(login)之后,就带有一个用户身份(user ID, UID)和一个组身份(group ID, GID)。在Linux文件管理背景知识中,我们又看到,每个文件又有九位的权限说明,用来指明该文件允许哪些用户执行哪些操作(读、写或者执行)。
(参考Linux文件管理背景知识)

一般来说,Linux的用户信息保存在/etc/passwd中,组信息保存在/etc/group中,文件的每一行代表一个用户/组。早期的Linux将密码以名码的形式保存在/etc/passwd中,而现在则多以暗码(也就是加密之后的形式)的形式保存在/etc/shadow中。将密码存储在/etc/shadow中提高了密码的安全性,因为/etc/passwd允许所有人查看,而/etc/shadow只允许root用户查看。

进程权限
但是,在Linux中,用户的指令是在进程的范围内进行的。当我们向对某个文件进行操作的时候,我们需要在进程中运行一个程序,在进程中对文件打开,并进行读、写或者执行的操作。因此,我们需要将用户的权限传递给进程,以便进程真正去执行操作。例如我们有一个文件a.txt, 文件中为一个字符串:
Hello world!

我以用户Vamei的身份登录,并在shell中运行如下命令:
$cat a.txt
整个运行过程以及文件读取如下:

我们可以看到,整个过程中我们会有两个进程,一个是shell本身(2256),一个是shell复制自身,再运行/bin/cat (9913)。图中的fork, exec, PID可参看Linux进程基础。第二个进程总共对文件系统进行了两次操作,一次是执行(x)文件/bin/cat,另外一次是读取(r)文件a.txt。使用$ls -l 查看这两个文件的权限:
$ls -l /bin/cat
-rwxr-xr-x 1 root root 46764 Apr 1 2012 /bin/cat

$ls -l a.txt
-rw-rw-r-- 1 Vamei Vamei 14 Oct 7 09:14 a.txt
从上面可以看到(参考Linux文件管理背景知识),/bin/cat让所有用户都享有执行的权利,而Vamei作为a.txt的拥有者,对a.txt享有读取的权利。

让我们进入更多的细节 (The devil is in the details)。在进行这两次操作的时候,尽管用户Vamei拥有相应的权限,但我们发现,真正做工作的是进程9913。我们要让这个进程得到相应的权限。实际上,每个进程会维护有如下6个ID:
真实身份: real UID, real GID
有效身份: effective UID, effective GID
存储身份:saved UID, saved GID
其中,真实身份是我们登录使用的身份,有效身份是当该进程真正去操作文件时所检查的身份,存储身份较为特殊,我们等一下再深入。当进程fork的时候,真实身份和有效身份都会复制给子进程。大部分情况下,真实身份和有效身份都相同。当Linux完成开机启动之后,init进程会执行一个login的子进程。我们将用户名和密码传递给login子进程。login在查询了/etc/passwd和/etc/shadow,并确定了其合法性之后,运行(利用exec)一个shell进程,shell进程真实身份被设置成为该用户的身份。由于此后fork此shell进程的子进程都会继承真实身份,所以该真实身份会持续下去,直到我们登出并以其他身份再次登录(当我们使用su成为root的时候,实际上就是以root身份再次登录,此后真实身份成为root)。

最小权限原则
每个进程为什么不简单地只维护真实身份,却选择费尽麻烦地去维护有效身份和存储身份呢?这牵涉到Linux的“最小特权”(least priviledge)的原则。Linux通常希望进程只拥有足够完成其工作的特权,而不希望赋予更多的特权给它。从设计上来说,最简单的是赋予每个进程以super user的特权,这样进程就可以想做什么做什么。然而,这对于系统来说是一个巨大的安全漏洞,特别是在多用户环境下,如果每个用户都享有无限制的特权,就很容易破坏其他用户的文件或者系统本身。“最小特权”就是收缩进程所享有的特权,以防进程滥用特权。

然而,进程的不同阶段可能需要不同的特权。比如一个进程最开始的有效身份是真实身份,但运行到中间的时候,需要以其他的用户身份读入某些配置文件,然后再进行其他的操作。为了防止其他的用户身份被滥用,我们需要在操作之前,让进程的有效身份变更回来成为真实身份。这样,进程需要在两个身份之间变化。

存储身份就是真实身份之外的另一个身份。当我们将一个程序文件执行成为进程的时候,该程序文件的拥有者(owner)和拥有组(owner group)可以被,存储成为进程的存储身份。在随后进程的运行过程中,进程就将可以选择将真实身份或者存储身份复制到有效身份,以拥有真实身份或者存储身份的权限。并不是所有的程序文件在执行的过程都设置存储身份的。需要这么做的程序文件会在其九位(bit)权限的执行位的x改为s。这时,这一位(bit)叫做set UID bit或者set GID bit。

$ls -l /usr/bin/uuidd
-rwsr-sr-x 1 libuuid libuuid 17976 Mar 30 2012 /usr/sbin/uuidd

当我以root(UID), root(GID)的真实身份运行这个程序的时候,由于拥有者(owner)有s位的设定,所以saved UID被设置成为libuuid,saved GID被设置成为libuuid。这样,uuidd的进程就可以在两个身份之间切换。

我们通常使用chmod来修改set-UID bit和set-GID bit:

$chmod 4700 file

我们看到,这里的chmod后面不再只是三位的数字。最前面一位用于处理set-UID bit/set-GID bit,它可以被设置成为4/2/1以及或者上面数字的和。4表示为set UID bit, 2表示为set GID bit,1表示为sticky bit (暂时不介绍)。必须要先有x位的基础上,才能设置s位。

阅读全文

与linux权限解释相关的资料

热点内容
做程序员学什么 浏览:318
pdfeditor教程 浏览:878
fortran把文件放入文件夹 浏览:709
程序员1年经验不敢投简历 浏览:481
如何看电脑的源码 浏览:896
找工作app软件哪个好 浏览:96
信息管理网站源码 浏览:439
小说app哪个好免费 浏览:224
域名在线加密 浏览:146
软件编程西安交大 浏览:453
是不是串货的奶粉查不到溯源码的 浏览:825
北京dns服务器云主机 浏览:221
openldaplinux安装 浏览:23
java取月的最后一天 浏览:10
腾讯云服务器多久退款 浏览:949
微信广告植入系统源码 浏览:922
一年级语文上册pdf 浏览:315
好久不见app干什么用的 浏览:143
压缩包解压码对方可以更改吗 浏览:256
pdf电子书制作软件 浏览:888