⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s1-navigating-ownership.html

📁 Redhat9中文官方文档, 初学者必备
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML><HEAD><TITLE>所有权和许可权限</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="Red Hat Linux 9"HREF="index.html"><LINKREL="UP"TITLE="Shell 提示基本知识"HREF="ch-basics.html"><LINKREL="PREVIOUS"TITLE="使用多个命令"HREF="s1-navigating-stringing.html"><LINKREL="NEXT"TITLE="管理文件和目录"HREF="ch-managers.html"><LINKREL="STYLESHEET"TYPE="text/css"HREF="rhdocs-man.css"><METAHTTP-EQUIV="Content-Type"CONTENT="text/html; charset=gb2312"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">Red Hat Linux 9: Red Hat Linux 入门指南</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="s1-navigating-stringing.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">13. Shell 提示基本知识</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="ch-managers.html"ACCESSKEY="N">前进</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="S1-NAVIGATING-OWNERSHIP"></A>13.14. 所有权和许可权限</H1><P>在本章前部,当你试图转换到根用户的登录目录时,你收到了以下消息:      </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">cd /root</TT><TTCLASS="COMPUTEROUTPUT">bash: /root: Permission denied</TT></PRE></TD></TR></TABLE><P>这是 Linux 安全功能的一个演示。Linux 和        UNIX 一样,是一个多用户系统。文件权限是系统防止故意篡改的一种方法。      </P><P>当你被拒绝权限后要重获访问权的方法之一是使用你在前面学到的	<TTCLASS="COMMAND">su</TT> 命令登录为根用户。这是因为知道根口令的人有完全的访问权。      </P><P>但是切换成超级用户并不总是很方便,我们也不建议你如此,因为使用超级用户身份太容易导致错误或改变重要的配置文件。      </P><P>所有的文件和目录都被创建它们的人所“拥有”。你在你的登录目录中创建了文件      <TTCLASS="FILENAME">sneakers.txt</TT> (请参见<AHREF="s1-navigating-usingcat.html#S2-NAVIGATING-REDIRECTION">第 13.9.1 节</A>),因此      <TTCLASS="FILENAME">sneakers.txt</TT> 属于你。      </P><P>这意味着你可以指定谁可以读取这个文件,谁可以写入这个文件,或者(如果它是程序而不是文本文件的话)谁可以执行这个文件。      </P><P>读取、写入、和执行是许可权限中的三个主要设置。既然用户在他们的帐号创建之时就被编入一个组群,你还可以指定哪些组群可以读取、写入、或执行某一文件。      </P><P>让我们用带有 <TTCLASS="COMMAND">-l</TT>(长)选项(请参阅<AHREF="s1-navigating-ownership.html#GR-NAVIGATING-PERMISS1">图 13-11</A>)的      <TTCLASS="COMMAND">ls</TT> 命令来仔细查看一下文件 <TTCLASS="FILENAME">sneakers.txt</TT>。      </P><P>这里提供了许多细节。你可以看到谁能读取(r)和写入(w)文件,以及谁创建了这个文件(test),所有者所在的组群(test)。请记住,按照默认设置,你的组群名和你的登录名相同。        </P><DIVCLASS="FIGURE"><ANAME="GR-NAVIGATING-PERMISS1"></A><DIVCLASS="MEDIAOBJECT"><P><IMGSRC="./figs/basics/permiss1.png"></P></DIV><P><B>图 13-11. <TTCLASS="FILENAME">sneakers.txt</TT> 的许可权限</B></P></DIV><P>在组群右侧的信息包括文件大小、创建的日期和时间,以及文件名。      </P><P>第一列显示了当前的权限;它有十位。第一位代表文件类型。其余九位实际上是用于三组不同用户的三组权限。      </P><P>例如:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">-rw-rw-r--</TT></PRE></TD></TR></TABLE><P>那三组是:文件的所有者,文件所属的组群,和“其他人”,这是前面没有包括的用户和组群。      </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">-    (rw-)   (rw-)   (r--) 1 test test|      |       |       | 类型  所有者  组群   其他人      </TT></PRE></TD></TR></TABLE><P>第一个项目指定文件类型,它可以显示以下几种:      </P><P></P><UL><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">d</TT> &#8212; 目录          </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">-</TT>(短线)&#8212; 常规文件(而不是目录或链接)          </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">l</TT> &#8212; 到系统上其它位置的另一个程序或文件的符号链接          </P></LI></UL><P>在第一个项目之后的三组中,你可以看到下面几种类型:      </P><P></P><UL><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">r</TT> &#8212; 文件可以被读取          </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">w</TT> &#8212; 文件可以被写入          </P></LI><LISTYLE="list-style-type: disc"><P><TTCLASS="COMPUTEROUTPUT">x</TT> &#8212; 文件可以被执行(如果它是程序的话)          </P></LI></UL><P>当你在所有者、组群、或其他人中看到一个短线(“-”),这意味着相应的权限还没有被授予。再看一看文件      <TTCLASS="FILENAME">sneakers.txt</TT> 的第一列,然后辩别它的许可权限。      </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">ls -l sneakers.txt</TT><TTCLASS="COMPUTEROUTPUT">-rw-rw-r--    1 test test     39 3月 11 12:04 sneakers.txt</TT></PRE></TD></TR></TABLE><P>文件的所有者(这个情况下是 test)有读取和写入该文件的权限。组群      test 也有读取和写入 <TTCLASS="FILENAME">sneakers.txt</TT>      的权限。它不是一个程序,因此所有者和组群都没有执行它的权限。      </P><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="CHMOD"></A>13.14.1. chmod 命令</H2><P>使用 <TTCLASS="COMMAND">chmod</TT> 命令来改变权限。这个例子显示了如何使用	  <TTCLASS="COMMAND">chmod</TT> 命令来改变 <TTCLASS="FILENAME">sneakers.txt</TT> 文件的权限。	</P><P>带有初始权限设置的最初文件与下面相仿:      </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>此刻,所有者和组群可以读取和写入文件,组群之外的任何人只能读取文件(<TTCLASS="COMPUTEROUTPUT">r--</TT>)。      </P><DIVCLASS="CAUTION"><P></P><TABLECLASS="CAUTION"WIDTH="100%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/caution.png"HSPACE="5"ALT="小心"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>小心</B></TH></TR><TR><TD>&nbsp;</TD><TDALIGN="LEFT"VALIGN="TOP"><P>请记住,文件权限是一种安全措施。无论何时你允许其他人读取、写入或执行文件,你都在增加文件被篡改或删除的危险。作为一种基本原则,你应该只给那些真正需要这些文件的人以读写权限。        </P></TD></TR></TABLE></DIV><P>在下面的例子中,你想给每个人以写入文件的权限,因此他们可以读取文件,在其中加注,并保存文件。这意味着你非得改变文件权限中的“其他人”部分不可了。      </P><P>让我们先来看一看这个文件。在 shell 提示下,键入:      </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-rw-r--    1 test test     39 3月 11 12:04 sneakers.txt</TT></PRE></TD></TR></TABLE><P>现在,键入下面的命令:      </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">chmod o+w sneakers.txt</TT></PRE></TD></TR></TABLE><P><TTCLASS="COMMAND">o+w</TT> 命令告诉系统你想给其它人写入文件	<TTCLASS="FILENAME">sneakers.txt</TT> 的权限。要查看结果,再次列出文件的细节。现在,这个文件看起来与下面的输出相仿:      </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">-rw-rw-rw-    1 test test     39 3月 11 12:04 sneakers.txt</TT></PRE></TD></TR></TABLE><P>现在,每个人都可以读取和写入这个文件。	</P><P>要从 <TTCLASS="FILENAME">sneakers.txt</TT> 中删除读写权限,使用	   <TTCLASS="COMMAND">chmod</TT> 命令来取消读取和写入这两个的权限。	</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">chmod go-rw sneakers.txt</TT></PRE></TD></TR></TABLE><P>通过键入 <TTCLASS="COMMAND">go-rw</TT>,你在告诉系统删除文件	<TTCLASS="FILENAME">sneakers.txt</TT> 中组群和其它人的读取和写入权限。	</P><P>结果与下面的输出相似:	</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">-rw-------    1 test test    39 3月 11 12:04 sneakers.txt</TT></PRE></TD></TR></TABLE><P>当你想用 <TTCLASS="COMMAND">chmod</TT> 命令来改变权限时,把它们当做速记符号来记忆,因为你实际要做的只是记住几个符号而已。      </P><P>下面是一个速记符号含义的列表:      </P><P></P><DIVCLASS="VARIABLELIST"><DL><DT>身份</DT><DD><P><TTCLASS="OPTION">u</TT> &#8212; 拥有文件的用户(所有者)          </P><P><TTCLASS="OPTION">g</TT> &#8212; 所有者所在的组群          </P><P><TTCLASS="OPTION">o</TT> &#8212; 其他人(不是所有者或所有者的组群)          </P><P><TTCLASS="OPTION">a</TT> &#8212; 每个人或全部(<TTCLASS="OPTION">u</TT>、<TTCLASS="OPTION">g</TT>、和            <TTCLASS="OPTION">o</TT>)          </P></DD><DT>权限</DT><DD><P><TTCLASS="OPTION">r</TT> &#8212; 读取权          </P><P><TTCLASS="OPTION">w</TT> &#8212; 写入权          </P><P><TTCLASS="OPTION">x</TT> &#8212; 执行权          </P></DD><DT>行动</DT><DD><P

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -