0410accountmanager.htm

来自「鸟哥LINUX 学习课本」· HTM 代码 · 共 1,086 行 · 第 1/5 页

HTM
1,086
字号
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head>   <meta http-equiv="Content-Type" content="text/html; ">   <meta name="Author" content="VBird">   <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]">   <title>鸟哥的 Linux 私房菜 -- 账号管理</title><!-- saved from url=(0022)http://internet.e-mail --><style>   <!--   body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED}   --></style></head><body nosave="" background="0410accountmanager_files/VBirdLinux.jpg"><center><center><b><font size="+2" color="#3333ff"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org/" target="_top"><img src="0410accountmanager_files/VBirdTitle2.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_basic"><img src="0410accountmanager_files/icon_system.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_server"><img src="0410accountmanager_files/icon_server.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_security"><img src="0410accountmanager_files/icon_security.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://phorum.vbird.org/" target="_blank"><img src="0410accountmanager_files/icon_forums.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/adsl"><img src="0410accountmanager_files/icon_adsl.gif" nosave="" border="0" height="25" width="90"></a><br><hr width="100%"></center><font size="+2" color="#3333ff"><a href="http://linux.vbird.org//linux_basic/0410accountmanager.php" target="_self"><font face="Times New Roman,Times">Linux</font><font face="SimSun">账号与身份管理</font></a></font></center><div align="right"><font size="-1" color="#3333ff" face="SimSun">最近更新日期:2003/02/10</font></div><font size="+1" color="#000099"><a href="#ID">账号管理</a></font>:<a href="#groupadd">groupadd</a>,<a href="#groupdel">groupdel</a>,<a href="#useradd">useradd</a>,<a href="#userdel">userdel</a>,<a href="#chsh">chsh</a>,<a href="#chfn">chfn</a>,<a href="#userconf">userconf</a>,<br><font size="+1" color="#000099"><a href="#password_control">密码管理与设定</a></font>:<a href="#passwd">passwd</a>,<br><font size="+1" color="#000099"><a href="#userchange">使用者身份切换</a>:</font><a href="#su">su</a>,<a href="#sudo">sudo</a>,<a href="#visudo">visudo</a>,<br><font color="#000099"><font size="+1"><a href="#user_finger">使用者查询</a></font>:<a href="#id">id</a>,<a href="#finger">finger</a>,<a href="#groups">groups</a>,</font><br><font size="+1" color="#000099"><a href="#manual">手动增加使用者</a></font>:<a href="#normal_account">一般使用者账号</a>,<a href="#pop%20account">仅开放POP (邮件)账号</a><br><font size="+1" color="#000099"><a href="#FAQ">本章习题练习</a></font><br><hr width="100%"><a name="ID"></a><font size="+1" color="#000099">账号管理</font>:<blockquote>管理员的工作中,相当重要的一环就是『管理账号』啦!因为整个系统都是你在管理的,并且所有的一般用户的申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个网站的账号管理啦!在管理Linux 主机的账号时,我们必须先来了解一下 Linux 到底是如何辨别每一个使用者的!<ul><li><b><font color="#000099">使用者的 ID 与群组的 ID :</font></b></li><br>其实 Linux 并不会直接认识你的『账号名称』,他认识的其实是你的『账号ID 』才是!如果你曾经以 tarball 安装过软件的话,那么应该不难发现,在解压缩之后的档案,嘿?档案拥有者竟然是『不明的数字』?奇怪吧?这没什么好奇怪的,因为Linux 说实在话,他真的只认识代表你身份的号码而已!而对应的号码与账号,则是记录在/etc/passwd 当中!</ul><ul><li><b><font color="#000099">怎样登入 Linux 主机呀?</font></b></li><br>好了,那么我们再来谈一谈,到底我们是怎样登入 Linux 主机的呢?其实也不难啦!当我们在主机前面或者是以telnet 或者 ssh 登入主机时,系统会出现一个 login 的画面让你输入账号,这个时候当你输入账号与密码之后,Linux 会:<br> <ol><li><font color="#000066">先找寻 /etc/passwd 里面是否有这个账号?如果没有则跳出,如果有的话则将该账号对应的UID ( User ID )与 GID ( Group ID )读出来,另外,该账号的家目录与 shell设定也一并读出;</font></li><li><font color="#000066">再来则是核对密码表啦!这时 Linux 会进入 /etc/shadow里面找出对应的账号与 UID,然后核对一下你刚刚输入的密码与里头的密码是否相符?</font></li><li><font color="#000066">如果一切都 OK 的话,就进入 Shell 控管的阶段啰!</font></li></ol></ul>大致上的情况就像这样,所以呢,当你要登入你的 Linux 主机的时候,那个 /etc/passwd与 /etc/shadow 就必须要让系统读取啦,(这也是很多攻击者会将特殊账号写到/etc/passwd 里头去的缘故!)所以呢,如果你要备份 Linux 的系统的账号的话,那么这两个档案就一定需要备份才行呦!<ul><li><b><font color="#000099">认识 UID、GID、SUID与SGID:</font></b></li><br>还记得我们在『<a href="http://linux.vbird.org//linux_basic/0210filepermission.php">档案系统与档案属性</a>』那一篇文章的时候有提到每一个档案都具有『拥有人与拥有群组』的属性吗?那么档案如何判别他的拥有者与群组呢?其实就是利用UID 与 GID 啦!每一个档案都会有所谓的拥有者 ID 与拥有群组 ID ,亦即是 UID与 GID ,然后系统会依据 /etc/passwd 的内容,去将该档案的拥有者与群组名称,使用账号的形式来秀出来!我们可以作个小实验,你可以以root 的身份 vi /etc/passwd ,然后将你的一般身份的使用者的 ID 随便改一个号码,然后再到你的一般身份的目录下看看原先该账号拥有的档案,你会发现该档案的拥有人变成了『数字了』呵呵!这样可以理解了吗?<br>&#160;<table bgcolor="#000000" cols="1" width="500"><tbody><tr><td><font size="-1" color="#ffffff" face="SimSun">[root @test/root]# vi /etc/passwd</font><br><font size="-1" color="#ffffff" face="SimSun">root:x:0:0:root:/root:/bin/bash</font><br><font size="-1" color="#ffffff" face="SimSun">bin:x:1:1:bin:/bin:/sbin/nologin</font><br><font size="-1" color="#ffffff" face="SimSun">daemon:x:2:2:daemon:/sbin:/sbin/nologin</font><br><font size="-1" color="#ffffff" face="SimSun">adm:x:3:4:adm:/var/adm:/sbin/nologin</font><br><font size="-1" face="SimSun"><font color="#ffffff">test:x:500:500:testuser:/home/test:/bin/bash&#160;</font><font color="#ff9900"> &lt;==将 500改成 510&#160;</font></font><br><font size="-1" color="#ffffff" face="SimSun">[root @test/root]# cd /home/test</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @testtest]#</font><font color="#ffff00"> ll&#160;</font></font><br><font size="-1" color="#ffffff" face="SimSun">-rw-rw-r--&#160;&#160;&#160;1 500&#160;&#160;&#160;&#160;&#160; test&#160;&#160;&#160;&#160;&#160;&#160;&#160;12542 Apr 12 11:22 test</font><br><font size="-1" color="#ff9900" face="SimSun">看上面,拥有这变成了数字了~</font></td></tr></tbody></table><p>了解了之后,请赶快回到 /etc/passwd 里面,将数字改回来喔!</p></ul><ul><li><b><font color="#000099">认识 /etc/passwd 档案与 /etc/shadow 档案:</font></b></li><br>由上面的说明您大概已经知道,嘿嘿!账号管理最重要的两个档案就是『 /etc/passwd与 /etc/shadow 』了!这两个档案可以说是 Linux 里头最重要的档案之一了!如果没有这两个档案的话,呵呵!您可是无法登入Linux 的呦!<br> <ul><li><b><font color="#000066">passwd 的构造:</font></b></li><br>这个档案的构造是这样的:每一行都代表一个账号,有几行就代表有几个账号在你的系统中!不过需要特别留意的是,里头很多账号本来就是系统中必须要的(例如bin, daemon, adm, nobody 等等),请不要随意的杀掉他??;<br>&#160;<table bgcolor="#000000" cols="1" width="500"><tbody><tr><td><font size="-1" color="#ffffff" face="SimSun">root:x:0:0:root:/root:/bin/bash</font><br><font size="-1" color="#ffffff" face="SimSun">bin:x:1:1:bin:/bin:/sbin/nologin</font><br><font size="-1" color="#ffffff" face="SimSun">daemon:x:2:2:daemon:/sbin:/sbin/nologin</font><br><font size="-1" color="#ffffff" face="SimSun">adm:x:3:4:adm:/var/adm:/sbin/nologin</font></td></tr></tbody></table><p>上面是 Mandrake 9.0 预设的几个账号,这些账号是系统在使用的呦!我们先来看一下root 这个系统管理员这一行好了,你可以明显的看出来,每一行使用『:』分隔开,共有七个咚咚,分别是<br>&#160;</p><ol><li><font color="#000066">账号名称</font>:就是账号名称啦!对应 UID 用的!例如root 就是预设的系统管理员的账号名称;</li><br> <li>密码:早期的 Unix 系统的密码是放在这个档案中的,不过由于这样一来很容易造成数据的被窃取,所以后来就将数据给他改放到/etc/shadow 中了,这一部份等一下再说,而这里你会看到一个 x ,呵呵!别担心密码已经被移动到shadow 这个加密过后的档案啰;</li><br> <li><font color="#000066">UID</font>:这个就是使用者识别码(ID)啰!通常 Linux对于 UID 有几个限制需要说给您了解一下:</li><ul><li><b><font color="#3333ff">0</font></b> 系统管理员,所以当你要作另一个系统管理员账号时,你可以将该账号的UID 改成 0 即可;</li><li><b><font color="#3333ff">1~500 </font></b>保留给系统使用的ID,其实 1~65534之间的账号并没有不同,也就是除了 0 之外,其它的 UID 并没有不一样,预设500 以下给系统作为保留账号只是一个习惯。这样的好处是,以 named 为例,这个程序的预设所有人named 的账号 UID 是 25 ,当有其它的账号同样是 25 时,很可能会造成系统的一些小问题!为了杜绝这样的问题,建议保留500 以前的 UID 给系统吧!</li><li><b><font color="#3333ff">500~65535</font></b> 给一般使用者用的!</li></ul>上面这样说明可以了解了吗?是的, UID 为 0 的时候,就是 root 呦!所以请特别留意一下你的/etc/passwd 档案!<br> <li><font color="#000066">GID</font>:这个与 /etc/group 有关!其实 /etc/group的观念与 /etc/passwd 差不多,只是他是用来规范 group 的而已!</li><br> <li><font color="#000066">说明</font>:这个字段基本上并没有什么用途,只是用来解释这个账号的意义而已!不过,如果您提供使用 finger 的功能时,这个字段可以提供很多的讯息呢!底下的chfn 可以解释一下啰!</li><br> <li><font color="#000066">家目录</font>:这是使用者的家目录,以上面为例, root的家目录在 /root ,所以当 root 登入之后,马上在的所在就是 /root 里头啦!呵呵!如果你有个账号的使用空间特别的大,你想要将该账号的家目录移动到其它的硬盘去,没有错!可以在这里进行修改呦!预设的使用者家目录在/home/yourIDname</li><br> <li><font color="#000066">Shell</font> :所谓的 shell 是用来沟通人类下达的指令与硬件之间真正动作的界面!我们通常使用/bin/bash 这个 shell 来进行指令的下达!关于 shell 的用法我们会在后面再提及的!这里比较需要注意的是,有一个shell 可以用来替代成让账号无法登入的指令!那就是 /bin/false 这个东西!这也可以用来制作纯pop 邮件账号者的数据呢!</li></ol></ul><ul><li><b><font color="#000066">shadow 的构造:</font></b></li><br>由于 /etc/passwd 并不安全,所以后来发展出将密码移动到 /etc/shadow 这个档案中分隔开来的技术!并且加入了很多的限制参数在/etc/shadow 里头!我们来了解一下这个档案的构造吧!<br>&#160;<table bgcolor="#000000" cols="1" width="500">

⌨️ 快捷键说明

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