📄 0410accountmanager.htm
字号:
20 天的话,那么当你设定了密码之后, 20 天之内都无法改变这个密码呦!</li><br>
<li><span class=text_import1>密码需要重新变更的天数</span>∶
由于害怕密码被某些『有心人士』窃取而危害到整个系统的安全,所以有了这个栏位的设计。
<span class=text_import2>你必须要在这个时间之内重新设定你的密码,否则这个帐号将会暂时失效</span>。
而如果像上面的 99999 的话,那就表示,呵呵,密码不需要重新输入啦!
不过,如果是为了安全性,最好可以设定一段时间之后,严格要求使用者变更密码呢!</li><br>
<li><span class=text_import1>密码需要变更期限前的警告期限</span>∶当帐号的密码失效期限快要到的时候,
就是上面那个『必须变更密码』的那个时间时,
系统会依据这个栏位的设定,发出『警告』言论给这个帐号,提醒他『再过 n
天你的密码就要失效了,请尽快重新设定你的密码呦!』,如上面的例子,则是密码到期之前的
7 天之内,系统会警告该用户。</li><br>
<li><span class=text_import1>密码过期的恕限时间</span>∶如果用户过了警告期限没有重新输入密码,
使得密码失效了,也就是说,你在『必须变更密码的期限前,并没有变更你的密码!』
那么该组密码就称为『失效的密码』棉~怎么办?没关系,还有这个栏位的天数设计啊~
意思就是说,当密码失效后,你还可以用这个密码在 n 天内进行登入的意思。
而如果在这个天数后还是没有变更密码,呵呵!那么您的帐号就失效了!无法登入!
</li><br>
<li><span class=text_import1>帐号失效日期</span>∶这个日期跟第三个栏位一样,都是使用 1970
年以来的总日数设定。这个栏位表示∶
<span class=text_import2>这个帐号在此栏位规定的日期之后,将无法再使用</span>。
这个栏位会被使用通常应该是在『收费服务』的系统中,
你可以规定一个日期让该帐号不能再使用啦!</li><br>
<li><span class=text_import1>保留</span>∶最后一个栏位是保留的,看以后有没有新功能加入。</li>
</ol>
举个例子来说好了,假如我的 dmtsai 这个使用者的密码栏如下所示∶<br>
<table class="term"><tr><td class="term"><pre>
dmtsai:$1$8zdAKdfC$XDa8eSus2I7nQL7UjRsIy/:13025:5:60:7:2:13125:
</pre></td></tr></table>
这表示什么呢?要注意的是, 13025 是 2005/08/30 ,所以, dmtsai 这个使用者他的密码相关意义是∶<ul>
<li>最近一次更动密码的日期是 2005/08/30 (13025);
<li>能够修改密码的时间是 5 天以后,也就是 2005/09/04 以前 dmtsai 不能修改自己的密码;
如果使用者还是尝试要更动自己的密码,系统就会出现这样的讯息∶<br>
<table class="term"><tr><td class="term"><pre>
You must wait longer to change your password
passwd: Authentication token manipulation error
</pre></td></tr></table>
<li>使用者必须要在 2005/09/04 到 2005/10/29 之间的 60 天限制内去修改自己的密码,若
2005/10/29 之后还是没有变更密码时,该帐号就会宣告失效;
<li>如果使用者一直没有更改密码,那么在 2005/10/29 之前的 7 天内,系统会警告 dmtsai
应该修改密码的相关资讯;例如当 dmtsai 登入时,系统会主动提示如下的资讯∶<br>
<table class="term"><tr><td class="term"><pre>
Warning: your password will expire in 5 days
</pre></td></tr></table>
<li>如果该帐号一直到 2005/10/29 都没有更改密码,由于还有两天的恕限时间,因此, dmtsai
还是可以在 2005/10/31 以前继续登入;
<li>如果使用者在 2005/10/29 以前变更过密码,那么那个 13025 的日期就会跟著改变,因此,
所有的限制日期也会跟著相对变动喔!^_^
<li>无论使用者如何动作,到了 13125 ,大约是 2005/12/8 左右,该帐号就失效了~</ul>
透过这样的说明,您应该会比较容易理解了吧?! ^_^
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 常常听到∶我的密码忘记或者被更动了?怎么办?<br><br>
有的时候会发生这样的情况,就是说,你的 root 密码忘记了!要怎么办?重新安装吗?另外,
有的时候是被入侵了, root 的密码被更动过,该如何是好?<br><br>
这个时候就必须要使用到 /etc/shadow 这个资料了!我们刚刚知道密码是存在这个档案中的,
所以只要你能够以各种可行的方法开机进入 Linux ,例如单人维护模式,或者是以 live CD (KNOPPIX)
来进入 Linux 系统。之后,将硬碟顺利挂载,然后进入 /etc/shadow 这个档案中,将 root
的密码这一栏全部清空!然后再登入 Linux 一次,这个时候 root 将不需要密码
(有的时候需要输入空白字元) 就可以登入了!这个时候请赶快以 passwd 设定 root 密码即可。
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div> </div>
</div>
<hr><a name="account_group"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class=text_h2>关于群组∶
有效与初始群组、groups, newgrp</span>
<div class=block2>
认识了帐号相关的两个档案 /etc/passwd 与 /etc/shadow 之后,您或许还是会觉得奇怪,
那么群组的设定档在哪里?还有,在 /etc/passwd 的第四栏不是所谓的 GID 吗?那又是啥?
呵呵~此时就需要了解 /etc/group 与 /etc/gshadow 棉~<br><br>
<hr><li><span class=text_import1>/etc/group</span></li>
<div class=block2>
这个档案就是在记录 GID 与群组名称的对应了~我的 /etc/group 内容有点像这样∶<br>
<table class="term"><tr><td class="term"><pre>
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
</pre></td></tr></table>
也是以冒号『:』作为栏位的分隔符号,共分为四栏,每一栏位的意义是∶<ol>
<li><span class=text_import1>群组名称</span>∶就是群组名称啦!</li><br>
<li><span class=text_import1>群组密码</span>∶通常不需要设定,因为我们很少使用到群组登入!
不过,同样的,密码也是被纪录在 /etc/gshadow 当中棉!</li><br>
<li><span class=text_import1>GID</span>∶就是群组的 ID 啊~</li><br>
<li><span class=text_import1>支援的帐号名称</span>∶加入这个群组里面的所有的帐号,
我们知道,一个使用者是可以加入多个群组的。举例来说,如果我想要让 dmtsai
也加入 root 这个群组,那么在第一行的最后面加上『,dmtsai』,注意不要有空格,
使成为『 root:x:0:root,dmtsai』就可以棉~</li></ol>
比较重要的特色在于第四栏啦,因为每个使用者都可以拥有多个支援的群组,
这就好比在学校念书的时候,我们可以加入多个社团一样! ^_^。
不过这里您或许会觉得奇怪的,那就是∶『<span class=text_import2>假如我同时加入多个群组,
那么我在作业的时候,到底是以那个群组为准?</span>』底下我们就来谈一谈这个『有效群组』的概念。<br><br>
</div>
<hr><a name="account_group_init"></a><li><span class=text_import1>有效群组(effective
group)与初始群组(initial group)</span></li>
<div class=block2>
还记得每个使用者在他的 /etc/passwd 里面的第四栏有所谓的 GID 吧?那个 GID 就是所谓的『初始群组 (
initial group ) 』了!也就是说,当使用者一登入系统,立刻就拥有这个群组的相关权限的意思。
举例来说,我们上面提到 dmtsai 这个使用者的 /etc/passwd 与 /etc/group 还有 /etc/gshadow
相关的内容如下∶<br>
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>grep dmtsai /etc/passwd /etc/group /etc/gshadow</span>
/etc/passwd:dmtsai:x:501:501::/home/dmtsai:/bin/bash
/etc/group:users:x:100:dmtsai
/etc/group:dmtsai:x:501:
/etc/gshadow:users:::dmtsai
/etc/gshadow:dmtsai:!::
</pre></td></tr></table>
仔细看到上面这个表格,在 /etc/passwd 里面,dmtsai 这个使用者所属的群组为 GID=501 ,
也就是 /etc/group 里头 dmtsai 那个群组啦~因为这是 initial group ,所以,
使用者一登入就会主动取得,不需要在 /etc/group 的第四个栏位写入该帐号的!<br><br>
但是非 initial group 的其他群组可就不同了。举上面这个例子来说,我将 dmtsai 加入 users
这个群组当中,由于 users 这个群组并非是 dmtsai 的初始群组,因此,
我必须要在 /etc/group 这个档案中,找到 users 那一行,并且将 dmtsai 这个帐号加入第四栏,
这样 dmtsai 才能够支援 users 这个群组啊。<br><br>
那么在这个例子当中,因为我的 dmtsai 这个帐号同时支援 dmtsai 与 users 这两个群组,
因此,在读取/写入/执行档案时,针对群组部分,只要是 users 与 dmtsai 这两个群组拥有的功能,
我 dmtsai 这个使用者都能够拥有喔!这样了呼?不过,这是针对已经存在的档案而言,
如果今天我要建立一个新的档案或者是新的目录,请问一下,新档案的群组是 dmtsai 还是 users ?
呵呵!这就得要检查一下当时的有效群组了 (effective group)。<br><br>
<a name=groups></a>如果我以 dmtsai 这个使用者的身份登入后,该如何知道我所有支援的群组呢?
很简单啊,直接输入 groups 就可以了!注意喔,是 groups 有加 s 呢!结果像这样∶<br>
<table class="term"><tr><td class="term"><pre>
[dmtsai@linux ~]$ <span class=term_command>groups</span>
dmtsai users
</pre></td></tr></table>
在这个输出的讯息中,我知道我同时属于 dmtsai 及 users 这个两个群组,而且,
<span class=text_import2>第一个输出的群组即为有效群组 (effective group) 了</span>。
也就是说,我的有效群组为 dmtsai 啦~此时,如果我以 touch 去建立一个新档,例如∶
touch test ,那么这个档案的拥有者为 dmtsai ,而且群组也是 dmtsai 的啦。
这样是否可以了解什么是有效群组了?<br><br>
<a name=newgrp></a>那么如何变更有效群组呢?这个有两个方法,不论是那个方法,都是以 newgrp 达成的!
以上面这个例子来说,因为我的 dmtsai 使用者同时拥有 dmtsai 与 users 两个群组,因此,
dmtsai 当然可以随时切换 dmtsai/users 成为有效群组棉。所以,我可以下达∶<br>
<table class="term"><tr><td class="term"><pre>
[dmtsai@linux ~]$ <span class=term_command>newgrp users</span>
[dmtsai@linux ~]$ <span class=term_command>groups</span>
users dmtsai
</pre></td></tr></table>
此时,我的有效群组就成为 users 了。当然,要能够顺利切换有效群组的话,还需要
/etc/gshadow 的辅助才行~这个等一下我们会说明的。好了,那么如果你开始在 /home/dmtsai
这个家目录底下尝试建立一个档案,例如『 touch test2 』好了,会发生什么状态呢?
呵呵!那个档案的群组竟然变成 users 了!这样更清楚有效群组的意义了吧?!<br><br>
我们额外的来讨论一下 newgrp 这个指令,这个指令可以变更目前使用者的有效群组,
而且是另外以一个 shell 来提供登入的喔,所以,以上面的例子来说,
dmtsai 这个使用者目前是以另一个 shell 登入的,而且新的 shell 给予 dmtsai 有效 GID 为
users 就是了。当直接执行『 newgrp groupname 』时,使用者的有效群组会成为 groupname ,
此时虽然使用者的环境设定(例如环境变数等等其他资料)不会有影响,但是使用者的『权限』将会重新被计算。
举例来说, dmtsai 此时建立的新档案群组是 users 了~<br><br>
鸟哥的这个例子当中,要注意的是, dmtsai 这个使用者本来就属于 users 与 dmtsai 这两个群组,
所以他可以直接使用 newgrp 来切换有效群组,而要离开新的有效群组时,输入『 exit 』即可。
假设我的 Linux 系统当中还有另一个群组,名称为 vbird,那么 dmtsai 是否可以登入 vbird 这个群组?
在某些前提下是可以的∶<ul><span class=text_import2>
<li>vbird 这个群组在 /etc/gshadow 的密码栏为合法的(不具有 ! 开头!);
<li>dmtsai 必须让 root 或群组管理员 (group administrator) 加入到 vbird 群组中。</ul></span>
这两个大前提缺一不可喔!好了,假设我已经使用 gpasswd 建立了 vbird 这个群组的密码,
而 dmtsai 也被加入群组成员当中了,那么当 dmtsai 输入 『newgrp vbird』时,
嘿嘿! dmtsai 这个使用者的有效群组就能够变成 vbird 棉~
</div>
<hr><li><span class=text_import1>/etc/gshadow</span></li>
<div class=block2>
刚刚讲了很多关于『有效群组』的概念,另外,也提到 newgrp 这个指令的用法,
但是,如果 /etc/gshadow 这个设定没有搞懂得话,那么 newgrp 是无法动作的呢!
我的 /etc/gshadow 的内容有点像这样∶<br>
<table class="term"><tr><td class="term"><pre>
root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin,adm
</pre></td></tr></table>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -