📄 doc077.htm
字号:
<HTML>
<HEAD>
<TITLE>Users, Groups and User-Private Groups</TITLE>
</HEAD>
<BODY>
<P><A HREF="doc078.htm"><IMG SRC="next.gif" ALT="Next" HEIGHT=24 WIDTH=37></A>
<A HREF="doc000.htm"><IMG SRC="up.gif" ALT="Up" HEIGHT=24 WIDTH=26></A>
<A HREF="doc076.htm"><IMG SRC="previous.gif" ALT="Previous" HEIGHT=24 WIDTH=63></A>
<A HREF="doc000.htm"><IMG SRC="contents.gif" ALT="Contents" HEIGHT=24 WIDTH=65></A>
<A HREF="doc136.htm"><IMG SRC="index.gif" ALT="Index" HEIGHT=24 WIDTH=43></A>
<HR></P>
<H2><A NAME="s11.1"></A>11.1 用户,组及私有用户组</H2>
<P><A NAME="i619"></A><A NAME="i620"></A><A NAME="i621"></A><A NAME="i622"></A>管理用户和组历来是枯燥和乏味的。红帽子LINUX拥有若干
系统工具和约定措施,相当有用,使用户和组的管理简单了许多。</P>
<P>管理用户和组最为简单的方法是使用控制面板上的“UsersandGroups”模块
(有关控制面板的详细信息请看第9节,9.1节上用户和组模块的详细描述)。
您还可以以命令行的方式用adduser命令创建新用户。</P>
<H3><A NAME="s11.1.1"></A>11.1.1 Standard Users</H3>
<P><A NAME="i623"></A><A NAME="i624"></A></P>
<P><A HREF="doc077.htm#f81">表81</A> 列出了系统在安装过程中创建的标准用户(其中所列内容与/etc/passwd文件的描述
是一致的)。表中的组ID号是用户所在的首要组的代号。请到<A HREF="doc077.htm#s11.1.3">11.1.3</A>节查看有关组的
知识。</P>
<CENTER><P><A NAME="f81"></A></P></CENTER>
<CENTER><TABLE BORDER=1 CELLSPACING=0 CELLPADDING=0 >
<TR valign=top>
<TD colspan=1 align=left nowrap><B>User</B> </TD>
<TD colspan=1 align=left nowrap><B>UID</B> </TD>
<TD colspan=1 align=left nowrap><B>GID</B> </TD>
<TD colspan=1 align=left nowrap><B>Home Directory</B> </TD>
<TD colspan=1 align=left nowrap><B>Shell</B> </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>root </TD>
<TD colspan=1 align=left nowrap>0 </TD>
<TD colspan=1 align=left nowrap>0 </TD>
<TD colspan=1 align=left nowrap>/root </TD>
<TD colspan=1 align=left nowrap>/bin/bash </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>bin </TD>
<TD colspan=1 align=left nowrap>1 </TD>
<TD colspan=1 align=left nowrap>1 </TD>
<TD colspan=1 align=left nowrap>/bin </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>daemon </TD>
<TD colspan=1 align=left nowrap>2 </TD>
<TD colspan=1 align=left nowrap>2 </TD>
<TD colspan=1 align=left nowrap>/sbin </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>adm </TD>
<TD colspan=1 align=left nowrap>3 </TD>
<TD colspan=1 align=left nowrap>4 </TD>
<TD colspan=1 align=left nowrap>/var/adm </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>lp </TD>
<TD colspan=1 align=left nowrap>4 </TD>
<TD colspan=1 align=left nowrap>7 </TD>
<TD colspan=1 align=left nowrap>/var/spool/lpd </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>sync </TD>
<TD colspan=1 align=left nowrap>5 </TD>
<TD colspan=1 align=left nowrap>0 </TD>
<TD colspan=1 align=left nowrap>/sbin </TD>
<TD colspan=1 align=left nowrap>/bin/sync </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>shutdown </TD>
<TD colspan=1 align=left nowrap>6 </TD>
<TD colspan=1 align=left nowrap>0 </TD>
<TD colspan=1 align=left nowrap>/sbin </TD>
<TD colspan=1 align=left nowrap>/sbin/shutdown </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>halt </TD>
<TD colspan=1 align=left nowrap>7 </TD>
<TD colspan=1 align=left nowrap>0 </TD>
<TD colspan=1 align=left nowrap>/sbin </TD>
<TD colspan=1 align=left nowrap>/sbin/halt </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>mail </TD>
<TD colspan=1 align=left nowrap>8 </TD>
<TD colspan=1 align=left nowrap>12 </TD>
<TD colspan=1 align=left nowrap>/var/spool/mail </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>news </TD>
<TD colspan=1 align=left nowrap>9 </TD>
<TD colspan=1 align=left nowrap>13 </TD>
<TD colspan=1 align=left nowrap>/var/spool/news </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>uucp </TD>
<TD colspan=1 align=left nowrap>10 </TD>
<TD colspan=1 align=left nowrap>14 </TD>
<TD colspan=1 align=left nowrap>/var/spool/uucp </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>operator </TD>
<TD colspan=1 align=left nowrap>11 </TD>
<TD colspan=1 align=left nowrap>0 </TD>
<TD colspan=1 align=left nowrap>/root </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>games </TD>
<TD colspan=1 align=left nowrap>12 </TD>
<TD colspan=1 align=left nowrap>100 </TD>
<TD colspan=1 align=left nowrap>/usr/games </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>gopher </TD>
<TD colspan=1 align=left nowrap>13 </TD>
<TD colspan=1 align=left nowrap>30 </TD>
<TD colspan=1 align=left nowrap>/usr/lib/gopher-data </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>ftp </TD>
<TD colspan=1 align=left nowrap>14 </TD>
<TD colspan=1 align=left nowrap>50 </TD>
<TD colspan=1 align=left nowrap>/home/ftp </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>nobody </TD>
<TD colspan=1 align=left nowrap>99 </TD>
<TD colspan=1 align=left nowrap>99 </TD>
<TD colspan=1 align=left nowrap>/ </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
</TABLE></CENTER>
<CENTER><P>表81: 标准用户</P></CENTER>
<H3><A NAME="s11.1.2"></A>11.1.2 标准用户组</H3>
<P><A NAME="i625"></A><A NAME="i626"></A></P>
<P><A HREF="doc077.htm#f82">表82</A>列出了系统安装过程中创建的标准用户组(其中就是/etc/group文件所描述的内容)。</P>
<CENTER><P><A NAME="f82"></A></P></CENTER>
<CENTER><TABLE BORDER=1 CELLSPACING=0 CELLPADDING=0 >
<TR valign=top>
<TD colspan=1 align=left nowrap><B>Group</B> </TD>
<TD colspan=1 align=left nowrap><B>GID</B> </TD>
<TD colspan=1 align=left nowrap><B>Members</B> </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>root </TD>
<TD colspan=1 align=left nowrap>0 </TD>
<TD colspan=1 align=left nowrap>root </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>bin </TD>
<TD colspan=1 align=left nowrap>1 </TD>
<TD colspan=1 align=left nowrap>root,bin,daemon </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>daemon </TD>
<TD colspan=1 align=left nowrap>2 </TD>
<TD colspan=1 align=left nowrap>root,bin,daemon </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>sys </TD>
<TD colspan=1 align=left nowrap>3 </TD>
<TD colspan=1 align=left nowrap>root,bin,adm </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>adm </TD>
<TD colspan=1 align=left nowrap>4 </TD>
<TD colspan=1 align=left nowrap>root,adm,daemon </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>tty </TD>
<TD colspan=1 align=left nowrap>5 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>disk </TD>
<TD colspan=1 align=left nowrap>6 </TD>
<TD colspan=1 align=left nowrap>root </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>lp </TD>
<TD colspan=1 align=left nowrap>7 </TD>
<TD colspan=1 align=left nowrap>daemon,lp </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>mem </TD>
<TD colspan=1 align=left nowrap>8 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>kmem </TD>
<TD colspan=1 align=left nowrap>9 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>wheel </TD>
<TD colspan=1 align=left nowrap>10 </TD>
<TD colspan=1 align=left nowrap>root </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>mail </TD>
<TD colspan=1 align=left nowrap>12 </TD>
<TD colspan=1 align=left nowrap>mail </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>news </TD>
<TD colspan=1 align=left nowrap>13 </TD>
<TD colspan=1 align=left nowrap>news </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>uucp </TD>
<TD colspan=1 align=left nowrap>14 </TD>
<TD colspan=1 align=left nowrap>uucp </TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>man </TD>
<TD colspan=1 align=left nowrap>15 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>games </TD>
<TD colspan=1 align=left nowrap>20 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>gopher </TD>
<TD colspan=1 align=left nowrap>30 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>dip </TD>
<TD colspan=1 align=left nowrap>40 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>ftp </TD>
<TD colspan=1 align=left nowrap>50 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>nobody </TD>
<TD colspan=1 align=left nowrap>99 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>users </TD>
<TD colspan=1 align=left nowrap>100 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
<TR valign=top>
<TD colspan=1 align=left nowrap>floppy </TD>
<TD colspan=1 align=left nowrap>19 </TD>
<TD colspan=1 align=left nowrap></TD>
</TR>
</TABLE></CENTER>
<CENTER><P>图表82:标准用户组</P></CENTER>
<H3><A NAME="s11.1.3"></A>11.1.3 私有用户组</H3>
<P><A NAME="i627"></A><A NAME="i628"></A></P>
<P>为了使传统UNIX用户组更易于使用,红帽子LINUX使用了一种叫做私有用户组(UPG)
的模式。私有用户组模式并不改变以往UNIX处理组的任一环节。它仅仅提供了一种新
的管理用户组的方式。您一旦创建了一个新用户,默认的就会拥有一个唯一的用户组。
该模式的原理如下:</P>
<DL>
<DT>私有用户组</DT>
<DT>系统中的每一个用户都拥有并属于一个首要组。</DT>
<DT><B>umask = 002</B></DT>
<DT>传统UNIX的umask值是022,这样就可以防止同属于该组的其他用户以及任何别的组
的用户修改该用户的文件。既然每个用户都拥有并属于一个自己的私有组,这种“组
保护模式”不在需要了。将umask值设置为002就可以阻止用户篡改他人的私有文件。
umask值是在/etc/profile文件中设置的。</DT>
<DT>目录的SGID位
如果您设置了目录的SGID位(使用命令:chmodg+s目录名),在该目录中创建的文件
的属组将与该目录的属组相同。大多数站点都喜欢为每一个主要的项目创建用户组,
然后把用户分配到相应的组中去。在以往,管理文件的存取是困难的,尽管用户创建
的文件的属组会被设置成该用户所属的首要组。但是,也恰恰如此,当某个用户工作
于多个工程项目时,将某个文件的属主设置为与工程相关的组。然而在用户私有组
(UPG)模式下,文件将会根据工程的不同被设为相应的属组,这样会使管理多用户
组的工程相当简单。让我们举个例子,比如说您有一个庞大的工程名字叫做devel,很多
人要在名为devel的目录下编辑文件。创建一个用户组名为devel,用chgrp将devel目录的属
主设置为devel,把所有参加devel工程的人员的用户组设置为devel。这样所有属于devel组
的用户就可以在devel目录下创建文件了。由于所建文件的属组均会被自动设置为devel,
则所有属于devel组的用户都可以编辑其中的文件了。如果您有多个类似于devel的工程,
并且有用户要参与多个的话,用户将没必要当自己要从一个项目转到另一个时而改变自
己的组或umask值了。因为,每个工程目录上的SGID位将为文件进行自动的属组设置。
既然每个用户的HOME目录的属主是该用户而属组是该用户的私有组,设置HOME目
录的SGID位是安全的。然而由于创建文件的属组默认被设置为用户的首要组,因此,
这种情形下设置SGID位似乎是多余的。</DT>
</DL>
<H4><A NAME="s11.1.3.1"></A>11.1.3.1 用户私有组</H4>
<P><A NAME="i629"></A><A NAME="i630"></A></P>
<P>由于用户私有组模式(UPG)是新东西,许多人对它提出质疑。人们怀疑它的存在的
必要性。以下将对其作出解释。</P>
<UL>
<LI>打个比方,您想使一些人编辑/usr/lib/emacs/site-lisp下的文件。您信任这些人,
让他们任意操纵这个目录下的文件,可当然不是信任所有的人。</LI>
<LI>于是,您键入:</LI>
<BLOCKQUOTE>
<PRE><TT><FONT SIZE=-1>chown -R root.emacs /usr/lib/emacs/site-lisp</FONT></TT>
</PRE>
</BLOCKQUOTE>
<P>然后把合适的用户增加到该组中。</P>
<LI>为使用户能真正在目录下创建文件,执行:</LI>
<BLOCKQUOTE>
<PRE><TT><FONT SIZE=-1>chmod 775 /usr/lib/emacs/site-lisp</FONT></TT>
</PRE>
</BLOCKQUOTE>
<LI>但是当用户在该目录下创建新文件时,它的属主被设置为该用户的默认组
(通常为users)。为防止这种默认设置,您应键入:</LI>
<BLOCKQUOTE>
<PRE><TT><FONT SIZE=-1>chmod 2775 /usr/lib/emacs/site-lisp</FONT></TT></PRE>
</BLOCKQUOTE>
<LI>但是文件的权限必须被设置为664才可以使emacs组的其他用户来编辑它。这只要
将umask值设置为002就可以了。</LI>
<LI>好了,一切都很正常,但是有一点例外,那就是如果您的默认组是“users”的话,
您在您的HOME下创建的每一个文件都可被同属于“users”的用户改写。</LI>
<LI>为了防止这种操作,您应使每一个用户将其默认组设置为一个该用户所私有的用户组。</LI>
</UL>
<P>至此,通过设置umask值为002和分配每个用户一个私有的用户组为默认组,您就可以轻而
一举的建立用户无须任何其他操作就可以方便使用的组了。您所要做的仅仅是创建组,
增加用户到组,然后象以上所述的那样用chown和chmod设置组目录。</P>
<P>
<HR><A HREF="doc078.htm"><IMG SRC="next.gif" ALT="Next" HEIGHT=24 WIDTH=37></A>
<A HREF="doc000.htm"><IMG SRC="up.gif" ALT="Up" HEIGHT=24 WIDTH=26></A>
<A HREF="doc076.htm"><IMG SRC="previous.gif" ALT="Previous" HEIGHT=24 WIDTH=63></A>
<A HREF="doc000.htm"><IMG SRC="contents.gif" ALT="Contents" HEIGHT=24 WIDTH=65></A>
<A HREF="doc136.htm"><IMG SRC="index.gif" ALT="Index" HEIGHT=24 WIDTH=43></A>
<HR></P>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -