📄 s1-navigating-ownership.html
字号:
><TTCLASS="OPTION">+</TT> — 添加权限 </P><P><TTCLASS="OPTION">-</TT> — 删除权限 </P><P><TTCLASS="OPTION">=</TT> — 使它成为唯一权限 </P></DD></DL></DIV><P>想测试一下你的许可权限技巧么?从文件 <TTCLASS="FILENAME">sneakers.txt</TT> 中删除所有权限 — 包括每个人的权限。 </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">chmod a-rwx sneakers.txt</TT></PRE></TD></TR></TABLE><P>现在,让我们来看看你是否还能够使用 <TTCLASS="COMMAND">cat sneakers.txt</TT> 来读取这个文件,它所返回的输出应如下所示:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">cat: sneakers.txt: Permission denied</TT></PRE></TD></TR></TABLE><P>删除所有的权限,包括你自己的,会成功地锁住这个文件。但是由于这个文件属于你,你可以随时使用以下命令把它的权限改回来: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">chmod u+rw sneakers.txt</TT></PRE></TD></TR></TABLE><P>使用命令 <TTCLASS="COMMAND">cat sneakers.txt</TT> 来试试看你作为文件所有者是否还能够读取该文件。</P><P>这里是几个可以用在 <TTCLASS="COMMAND">chmod</TT> 命令设置上的常用例子: </P><P></P><UL><LISTYLE="list-style-type: disc"><P><TTCLASS="OPTION">g+w</TT> — 为组群添加写入权 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="OPTION">o-rwx</TT> — 删除其它人的所有权限 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="OPTION">u+x</TT> — 允许文件所有者执行这个文件 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="OPTION">a+rw</TT> — 允许每个人读取并写入文件 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="OPTION">ug+r</TT> — 允许所有者和组群读取文件 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="OPTION">g=rx</TT> — 只允许组群读取和执行(不能写入) </P></LI></UL><P>通过添加 <TTCLASS="OPTION">-R</TT> 选项,你可以为整个目录树改变权限。 </P><P>因为你不能象执行程序一样地“执行”目录,当你为目录添加或删除执行权限时,你实际上是在允许(或拒绝)在目录中搜索的权限。 </P><P>如果你不想给其它人对目录 <TTCLASS="FILENAME">tigger</TT> 的执行权限,那么谁有读取或写入权限便无关紧要了。除非他们知道他们想要的确切文件名,没人能够进入那个目录。 </P><P>譬如,键入: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">chmod a-x tigger</TT></PRE></TD></TR></TABLE><P>来删除每个人的执行权限。 </P><P>下面是当你试图使用 <TTCLASS="COMMAND">cd</TT> 命令来进入 <TTCLASS="FILENAME">tigger</TT> 目录时会发生的情况: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">bash: tigger: Permission denied</TT></PRE></TD></TR></TABLE><P>下一步,恢复你自己和你的组群的权限: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">chmod ug+x tigger</TT></PRE></TD></TR></TABLE><P>现在,如果你用 <TTCLASS="COMMAND">ls -dl</TT> 命令来检查一下,你会发现只有其它人(others)被拒绝了到目录 <TTCLASS="FILENAME">tigger</TT> 的访问权。 </P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-NAVIGATING-CHMODNUM"></A>13.14.2. 使用数字来改变权限</H2><P>还记得关于 <TTCLASS="COMMAND">chmod</TT> 的速记符号的方法吗?这里向你介绍另一个改变权限的方法,一开始,它可能会显得有点复杂。 </P><P>回到 <TTCLASS="FILENAME">sneakers.txt</TT> 文件的原始权限:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">-rw-rw-r-- 1 test test 39 3月 11 12:04 sneakers.txt</TT></PRE></TD></TR></TABLE><P>每种权限设置都可以用一个数值来代表: </P><P></P><UL><LISTYLE="list-style-type: disc"><P>r = 4 </P></LI><LISTYLE="list-style-type: disc"><P>w = 2 </P></LI><LISTYLE="list-style-type: disc"><P>x = 1 </P></LI><LISTYLE="list-style-type: disc"><P>- = 0 </P></LI></UL><P>当这些值被加在一起,它的总和便用来设立特定的权限。譬如,如果你想有读取和写入的权限,你会得到一个值为 6 的总和;4(读取)+ 2(写入)= 6。 </P><P><TTCLASS="FILENAME">sneakers.txt</TT> 文件的数字权限设置如下: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT"> - (rw-) (rw-) (r--) | | | 4+2+0 4+2+0 4+0+0</TT></PRE></TD></TR></TABLE><P>所有者的总和为六,组群的总和为六,其他人的总和为四。这个权限设置读作 <TTCLASS="COMMAND">664</TT>。 </P><P>如果你想改变 <TTCLASS="FILENAME">sneakers.txt</TT> 文件的权限,因此你的组群中的人没有写入权,但是仍旧能够读取文件的话,从这组数字中减掉二(2)就可以删除写入权限了。 </P><P>然后,这组数值就变成六四四(644)。 </P><P>要实现这些新设置,键入: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">chmod 644 sneakers.txt</TT></PRE></TD></TR></TABLE><P>现在,列举这个文件来校验改变。键入: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">ls -l sneakers.txt</TT></PRE></TD></TR></TABLE><P>输出应为: </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">-rw-r--r-- 1 test test 39 3月 11 12:04 sneakers.txt</TT></PRE></TD></TR></TABLE><P>现在,组群和其他人都没有了到文件 <TTCLASS="FILENAME">sneakers.txt</TT> 的写入权。要归还组群到文件的写入权,在第二组权限中加上 w (2) 的值就可以了。 </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">chmod 664 sneakers.txt</TT></PRE></TD></TR></TABLE><DIVCLASS="WARNING"><P></P><TABLECLASS="WARNING"WIDTH="100%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/warning.png"HSPACE="5"ALT="警告"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>警告</B></TH></TR><TR><TD> </TD><TDALIGN="LEFT"VALIGN="TOP"><P>把权限设为 666 会允许每个人对文件或目录都有读取和写入的权限。把权限设为 777 允许每个人都有读取、写入和执行的权利。这些权限可能会允许对机密文件的篡改,因此,一般来说,使用这类设置是不明智的。 </P></TD></TR></TABLE></DIV><P>这里是一个某些常用设置、数值、以及它们的含义的列表: </P><P></P><UL><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">-rw-------</TT> (600) — 只有所有者才有读取和写入的权限。 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">-rw-r--r--</TT> (644) — 只有所有者才有读取和写入的权限;组群和其他人只有读取的权限。 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">-rwx------</TT> (700) — 只有所有者才有读取、写入、和执行的权限。 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">-rwxr-xr-x</TT> (755) — 所有者有读取、写入、和执行的权限;组群和其他人只有读取和执行的权限。 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">-rwx--x--x</TT> (711) — 所有者有读取、写入、和执行权限;组群和其他人只有执行权限。 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">-rw-rw-rw-</TT> (666) — 每个人都能够读取和写入文件。(请谨慎使用这些权限。) </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">-rwxrwxrwx</TT> (777) — 每个人都能够读取、写入、和执行。(再重申一次,这种权限设置可能会很危险。) </P></LI></UL><P>下面列举了一些对目录的常见设置: </P><P></P><UL><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">drwx------</TT> (700) — 只有所有者能在目录中读取、写入。 </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">drwxr-xr-x</TT> (755) — 每个人都能够读取目录,但是其中的内容却只能被所有者改变。 </P></LI></UL></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="s1-navigating-stringing.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">起点</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="ch-managers.html"ACCESSKEY="N">前进</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">使用多个命令</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="ch-basics.html"ACCESSKEY="U">上级</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">管理文件和目录</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -