Linux里面w写的权限对应是2吗?

    我们已经知道了权限的赋予方式,但是这些读、写、执行权限到底是什么含义呢?有些人可能会说:"你也太小瞧我们了,读、写、执行的含义这么明显,我们还能不知道吗?"其实,这些权限的含义不像表面上这么明显,下面我们就来讲讲这些权限到底是什么含义。
    首先,读、写、执行权限对文件和目录的作用是不同的。

    -读(r):对文件有读(r)权限,代表可以读取文件中的数据。如果把权限对应到命令上,那么一旦对文件有读(r)权限,就可以对文件执行 cat、more、less、head、tail 等文件查看命令。
    -写(w):对文件有写(w)权限,代表可以修改文件中的数据。如果把权限对应到命令上,那么一旦对文件有写(w)权限,就可以对文件执行 vim、echo 等修改文件数据的命令。注意,对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件,则需要对文件的上级目录拥有写权限。
    -执行(x):对文件有执行(x)权限,代表文件拥有了执行权限,可以运行。在 Linux 中,只要文件有执行(x)权限,这个文件就是执行文件了。只是这个文件到底能不能正确执行,不仅需要执行(x)权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行(x)权限是最高权限。

    -读(r):对目录有读 (r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。如果把权限对应到命令上,那么一旦对目录拥有了读(r)权限,就可以在目录下执行 ls 命令,查看目录下的内容了。
    -写(w):对目录有写(r)权限,代表可以修改目录下的数据,也就是可以在目录中新建、删除、复制、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写(w)权限,就可以在目录下执行 touch、rm、cp、mv 命令。对目录来说,写(w)权限是最高权限。
    -执行(x):目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录。如果把权限对应到命令上,那么一旦对目录拥有了执行(x)权限,就可以对目录执行 cd 命令,进入目录。

    初学权限的时候,可能对两种情况最不能理解,我们一个一个来看。
    这需要通过分区的格式化来讲解。我们之前讲过,分区的格式化可以理解为给分区打入隔断,这样才可以存储数据。
    一部分占用空间较小,用于保存 inode(i 节点)信息;绝大部分格式化为 block(数据块),用于保存文件中的实际数据。
    在 Linux 中,默认 inode 的大小为 128 Byte,用于记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的状态改变时间(ctime)、文件的最近一次读取时间(atime)、文件的最近一次修改时间(mtime)、文件中的数据真正保存的 block 编号。每个文件需要占用一个 inode。
    仔细观察,在 inode 中并没有记录文件的文件名。那是因为文件名是记录在文件上级目录的 block 中的。我们画一张示意图看看,假设有这样一个文件 /test/cangls,如图 1 所示。

信息。然后一级一级地查找到最终文件的 block 信息,从而读取数据。
    总结:因为文件名保留在上级目录的 block 中,所以对文件拥有写权限,是不能删除文件本身的,只能删除文件中的数据(也就是文件 block 中的内容)。要想删除文件名,需要对文件所在目录拥有写权限。
    对目录来讲,如果只赋予只读(r)权限,则是不可以使用的。大家想想,要想读取目录下的文件,你怎么也要进入目录才可以吧?而进入目录,对目录来讲,需要执行(x)权限的支持。

    》》》更多的关于知识,欢迎随时咨询传智播客网站右下侧咨询窗口《《《


}

Linux中,默认情况下所有系统上的账号、一般身份用户和root的相关信息都记录在 /etc/passwd 这个文件中。而个人密码则是记录在 /etc/shadow 这个文件中。此外,Linux所有的组名都记录在 /etc/group 中。这三个文件千万不要随意删除哦!

ls -al:列出所有文件的详细权限和属性(包含隐藏文件:文件名第一个字符为“.”的文件)

ls -lhS:列出所有文件的详细权限和属性(不包含隐藏文件),并且文件显示大小以M为单位(h参数),列表会按文件从大到小排序(S参数)

ls -l --full-time:列出所有文件的详细权限和属性,且显示的是完整的时间格式

“d”开头表示是目录,“-”开头表示是文件,“l”开头表示为连接文件,“b”开头表示设备文件里面的可供存储的接口设备,“c”开头表示设备文件里面的串行端口设备,如键盘、鼠标(一次性读取设备)

接下来的字符中,3个为一组,共3组,且均为“rwx”,标识owner(即root用户)、group、others的权限,且位置不会改变,如果没有权限,该位置会出现“-”。【r】表示可读(read),【w】表示可写(write),【x】表示可执行(execute)。

-R 表示递归,也就是说连同其子目录下的所有文件、目录都可以更新成为这个用户组,通常用在更改某一目录内所有的文件情况,此参数可加可不加,视情况而定

注意:要被改变的组名必须要在 /etc/group 文件内存在才行,否则就会显示错误!

注意:在 /etc/passwd 文件中有记录的用户名称才能改变!

xyz:表示数字类型的权限属性,为rwx属性数值的相加值,r=4、w=2、x=1,xyz=r+w+x

r:读取文件的实际内容

w:可编辑、新增、修改该文件的内容(不能删除该文件)

三者都是针对文件内容而言,与文件名没有关系

r:读取目录结构列表,可查询该目录下的文件名数据

w:新建新的文件与目录;删除已存在的文件与目录(不管文件的权限如何);重命名已存在的文件或目录;转移该目录内的文件或目录的位置

x:表示用户能进入该目录成为工作目录

/(root,根目录):与开机系统有关

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...

  • Linux命令收集 1、文件处理命令:ls 功能描述:显示目录文件 命令英文原意:list 命令所在路径:/bin...

  • 这场祈盼已久的雨终于落了下来,有一个重要的仪式需要这场雨来落幕。 天空像一个巨大的花洒,将这密集的雨水倾泄而出,万...

  • 东方文礼生活,问道易经智慧!从古代的皇族帝王选址,到当今香港大学开设风水系学科,风水运气渗透生活的方方面面,备受菁...

  • 今天是5.5号。 其实本科就学过数据库的相关课程,实际也比较简单,而且之前python部分也涉及到数据库知识,只不...

}

Linux中每个文件都有一个特定的拥有者(一般是创建它的用户)和所属用户组,这是它的固有属性。文件可以利用这两个固有属性来规定它的拥有者或者是所属用户组内的用户是否拥有对它的访问权利,即读、写和执行的权利。此外为了提高适应性,文件还规定了其他不相关的人等的访问权限,也就是第三个固有属性。这三个固有属性和三个权利合起来,就构成了文件针对系统中所有用户的访问控制,也就构成了Linux中的文件权限体系。

1.2 单独拿出一行来分析,结果如下:

1.3 文件权限和类型(图1中的第1个字段)

这些属性当中最重要的就是前面的文件类型和权限了,那么rwx代表什么呢?详见下图:

Linux中的权限控制是当某个用户需要访问某个文件时,系统就读取这个文件的属性和权限信息与当前的UID和GID进行对比,来确定当前用户是文件的拥有者还是其所属组的用户,或者是毫无关系。然后根据这些比对结果和用户执行的动作来判断是否满足权限要求。这也引出了文件权限与命令的一些关系,因为Linux系统中一个文件是否为可执行文件是通过属性来决定的,而不是后缀名。

首先说说“r”权限,顾名思义(read简写)

对目录而言,“r”表示的是遍历目录中的所有文件名和子目录名,仅仅是遍历文件名而已,并不是实际内容。

#######这说明“r”权限在目录中的控制作用,要查看目录中文件列表,必须具有“r”权限

对于文件而言,“r”表示的是遍历文件中的实际内容,文件中不管有没有内容,拥有“r”权限,在操作的时候都会去遍历一遍。

######这就是“r”权限对于文件的访问控制

######执行者要查看文件的内容,就必须具有该文件的“r”权限

接着说说“w”权限,(write的简写)

对目录而言,“w”权限就是说可以在该目录中修改信息,什么是修改信息呢?在目录中信息就是各种文件的名称,修改信息就是与该目录下的文件名或子目录名的变动有关的操作,注意:指的是名字。具体如下:

#######这就是“w”权限对在目录中添加文件的控制作用

#######要在目录中创建文件,执行者必须拥有该目录的“w”权限

2)删除该目录下已经存在的文件或子目录(不论该文件或子目录的权限如何),注意:这点很重要,用户能否删除一个文件或目录,看的是该用户是否具有该文件或目录所在的目录的w权限。

######这就说明了“w”权限对删除目录中文件的控制作用

######要删除目录中的文件,执行者必须具有该目录的“w”权限

#####这就说明“w”对目录中文件名的控制作用,执行者要修改目录下的文件名,必须拥有“w”权限

#####这就说明“w”权限对移动目录的控制,其实就和删除是一样的,

#####只要文件要离开这个目录,就必须有“w”权限

对文件而言,“w”权限是对文件内容的控制,只要修改文件内容,就必须要有“w”权限,比如vim,echo等命令对文本的修改,执行者就必须有“w”权限,否则是不可以编辑文件的!

再说说“x”权限,(exec简写)

对于目录文件,“x”权限控制用户是否能打开它,只有具备了“x”权限,才能打开目录。而要查看目录下的内容,就必须有“r”权限,即查看显示的相关命令都必须具有文件的“r”权限才可以访问文件,比如ls命令,要显示ls对目录文件的执行结果,执行者必须具有该文件的x和r权限,毕竟是先打开(x),再显示(r)嘛。

例如:1.创建目录文件day001,看出默认创建目录文件权限是775

2.在该目录中创建文件a.txt和b.txt,看出默认创建文件权限是:661;执行ll命令会显示出a和b文件

3.我们去掉目录day001的“rw”权限,再执行cd命令和ll命令,看看结果:

#####对于目录而言,“x”权限就是一个开关,执行者拥有这个目录的开关“x”,才能进入该目录

1.4 修改文件基本权限:

其实Linux文件权限除了“r”、“w”、“x”外,还有“s”、“t”两种权限。只不过“s”和“t”比较特殊,是建立在“x”权限基础上的,它们与操作系统的账号和系统进程相关。

“s”和“t”存在的必要条件是相应的“x”权限必须存在。“s”这个标记可以出现在文件拥有者的x权限位上,也可以出现在文件所属组的x权限位上。那么其他用户位上的“x”权限位是否也可以被取代呢?答案是肯定的,只不过不再是“s”取代,而是“t”去取代,如下图:

从上命令结果,能够看到su这个命令的文件权限是“-rws r-x r-x”,拥有者的“x”权限位上是“s”,这就是SUID了,SUID权限拥有这样的功能:

1).SUID仅对二进制程序有效

2).执行者对该程序有“x”权限

3).执行权限仅在执行过程中有效

4).执行者将具有该程序拥有者的权限

su这个命令,无论任何人,执行它的瞬间都将拥有root权限,因为su命令的拥有者是root,只是这个权限仅在执行su命令时有效。这也是su命令能切换用户的原理。

设置SUID的方法就是使用“u+s”来改变权限。SUID在Linux中是非常常见的,那些需要提供给普通用户,但又需要root权限才能正常运行的程序,基本上都拥有SUID,比如:passwd,mount等,这也是实际用户和有效用户不一致的触发条件。

从上述命令结果看出,locate命令的文件权限是“rwx --s --x”,这就是SGID,拥有SGID的权限有:

2).执行者对该程序有x权限

3).执行者在执行过程中将会获得该程序所属用户组的支持

SGID除了用在二进制程序上,还可以用在目录上。当一个目录设置了SGID权限后,它将具有如下功能:

1).用户若对此目录拥有“r”和“x”权限时,该用户能够进入此目录查看文件名

2).该用户在此目录下的有效用户组将变成该目录的用户组。若用户在此目录下具有“w”的权限,则用户所创建的新文件的用户组与此目录的用户组相同。

根据这一特性,进入这类目录的用户就会发生有效用户组和实际用户组不一致的情况。而另一种导致有效用户组与实际用户组不一致的情况是使用newgrp命令。而有效用户组所起到的作用就在于其创建文件时文件的用户组。

####这就是“s”权限对于目录的控制作用!

如上命令结果看出,/tmp文件就是“rwx rwx rwt”权限,也就是SBIT。仅对目录有效。对目录的作用如下:

1).用户若对此目录有“w”和“x”的权限,即拥有写的权限(这和普通目录一样)

2).当用户在此目录下建立了文件或目录,仅自己或root才有权利删除文件(这也和普通目录一样)

换句话说就是:当用户U在目录D下建立了文件F,若D拥有SBIT权限,则仅用户U和root可以删除文件。

SBIT应用的典型例子就是/tmp目录。

###测试“t”查找的时候,普通用户是否可以删除其他用户的文件

####这就看出了“t”权限对于删除文件的文件限制!普通目录只要有“wx”就可以删文件。

}

我要回帖

更多关于 怎样关闭app访问相册权限 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信