当前位置: 首页 > Linux

Linux系列的文件和目录权限

时间:2023-04-06 22:48:59 Linux

前言我们知道root用户基本上可以在系统中做任何事情。其他用户有更多的限制,通常被收集到组中。您将具有相似需求的用户放入一个组中,并授予相关权限,每个成员继承该组的权限。让我们来看看:检查权限更改权限默认权限特殊权限授予的权限分为三个级别,即:r:读取权限。w:写权限。x:执行权限。当一个文件被创建时,通常创建它的用户就是它的所有者,而拥有组就是用户的当前组。我们可以使用chown命令将文件的所有权转移给不同的用户。chowngps/tmp/file.txt这里我们将/tmp目录下的file.txt的所有权授予用户gps。我们还可以将文件的所有权从一个组转移到另一个组,为此使用chgrp命令。chgrpcloudadminsnewIDS假设我们有一个名为newIDS的应用程序,这里我们将组所有权赋予newIDS的cloudadmins组。查看权限ls-l带有-l(长)开关的ls命令将显示目录的内容,包括权限。让我们把这个问题分解一下。drwxr-xr-x2azureuserazureuser4096Feb1422:31Videos第一个字符表示文件类型,在示例中为d,表示它是一个目录。该字符可以是:(-)常规文件。(d)目录。(c)特殊字符。(b)特殊区块。(p)fifo(命令管道)。(l)符号链接。(s)插座。通常,您会看到d、-、l。在本文中,我们将重点关注-和d。符号链接有点类似于文件链接。然后我们可以看到:rwxr-xr-x一共有9个字符,前三个代表用户的权限;中间三个代表组的权限;最后三个代表其他用户的权限。在此示例中,组用户具有rwx(读、写、执行)权限。该组有r-x(读、非写、执行)权限,-表示不授予相应权限。其他用户有r-x(读,不写,执行)权限。2azureuserazureuser40962月14日22:31视频其余列包括:链接数、用户、大小、创建日期和名称。如果需要,可以更改权限。更改权限只有root用户或文件的所有者可以更改权限。我们使用chmod命令来处理这个,我们可以使用十进制表示法或UGO(用户、组、其他)。我们先来看十进制。使用十进制表示法更改权限该表包含所有可能的权限组合及其八进制和二进制表示形式。二进制八进制rwx0000---0011--x0102-w-0113-wx1004r--1015r-x1106rw-1117rwx如果我们要表示所有者,组,其他用户的所有权限,我们可以使用777在这个例子中,每个数字都是它为7,表示所有者、组和其他用户的权限。在表中,我们发现八进制的7对应rwx,即所有(读、写、执行)权限。那么应该如何使用chmod呢?chmod777sample.txt这将赋予所有者所有权限,组所有权限,所有其他用户所有权限。chmod700sample.txtchmod774sample.txtchmod755sample.txt第一行将所有权限授予所有者,没有权限给组,也没有权限给其他用户。第二行将所有权限授予所有者,所有权限授予组,以及只读权限授予其他用户。第三行将所有权限赋予所有者,读取和执行权限赋予组,读取和执行权限赋予其他用户。使用UGO更改权限更改权限的数值方法是最常见的,但我们仍然可以使用符号方法:UGO(User,Group,Other)。-删除权限。+添加权限。=设置权限。让我们删除拥有sample.txt的用户的写权限。chmodu-wsample.txt我们可以一次更改多个权限。chmodu-rwsample.txtchmodu+rwx,o+rwxsample.txt默认权限Linux自动授予对所有文件和目录的默认权限。文件的默认权限为666,目录的默认权限为777。默认情况下,文件下载后不能立即执行。可以使用umask(用户文件创建掩码)方法更改默认权限。此方法指示要从文件或目录的基本权限中删除的权限。umask是三个权限号对应的三位八进制数。在大多数Debian系统上,umask设置为022。从权限数中减去它后,它将获得新的权限状态。新文件新目录权限666777Linux基本权限-022-022umask644755结果权限每个用户都可以在其个人.profile文件中为文件和目录设置个人默认umask值。查看umask的当前值:umask特殊权限setuserID(SUID)setgroupID(SGUID)stickybitSUIDSUID位表示任何用户都可以执行拥有所有者权限的文件,但这些权限不超过使用范围文件。要更改此位,您必须将第一个值更改为4,通常您只使用3个数字,因为第一个数字默认为0。如果您在文件的所有者权限中看到一个s而不是x,则表示SUID位被设置。chmod4644sample.txtSGIDSGID将组所有权分配给文件。用于共享组目录。您可以将SGID应用于目录和文件。通过在文件上设置SGID位,如果所有者属于对该文件具有执行权限的组,则没有执行权限的人可以执行该文件。通过在目录上设置SGID位,在该目录中创建的新文件归目录创建者组所有,而不是文件创建者组所有。SGID位在常规权限之前表示为2。如果您在文件或目录的组权限中看到一个s而不是x,则表示设置了SGID位。chmod2644sample.txtStickyBit(粘性位)这个权限在其他用户x中被t代替。当您在目录上设置粘滞位时,人们只能删除该目录中属于他们的文件。他们不能删除属于其他人的文件,无论文件权限的组合是什么。您只能将粘滞位应用于目录。如果您在其他用户对某个目录的权限中看到一个t代替了一个x,则表示设置了粘滞位。chmod1777sample.txt现代Linux系统会忽略粘滞位,但您至少应该熟悉该术语。