在Linux系统中有一些用户帐户是在系统安装后就有的,它们是用来完成特定任务的,比如nobody和ftp等,我们访问LinuxSir.Org
的网页程序,就是nobody用户(相当于Windows系统中的匿名帐户);我们匿名访问ftp时,会用到用户ftp或nobody ;如果您想了解Linux系统的一些帐号,可以通过查看/etc/passwd文件实现。
与用户相关的配置文件主要有两个:
n /etc/passwd :用户配置文件;
n /etc/shadow :用户影子口令文件;
Password文件内容参见上面内容,只有root帐户才有权限修改。该文件中包含了系统中所有用户的用户名和它们的相关信息。
每个用户帐号在文件中对应一行,并且用冒号(;)分为7个部分(Linux系统中称为“域”),各部分间用冒号(:)分隔。格式如下:
帐户名 : 是否有加密口令 : 用户ID : 组ID : 帐户全名或描述 : 登录目录 : 登录shell
如root用户在/etc/passwd
所对应的行为:
root:x:0:0:root:/root:/bin/bash
它表示:
root帐户的是有密码的(以x表示,没有x的表示没有设置密码),
用户ID和组ID号均为“0”(内置帐户的用户ID和组ID均小于500,而新建的帐户用户ID和组ID均等于或大于500),
帐户全名为root,
登录的shell有为/bin/bash。
/etc/passwd
文件对系统的所有用户都是可读的,这样的好处是每个用户都可以知道系统上有哪些用户,但缺点是其他用户的口令容易受到攻击(尤其当口令较简单时)。所以在像红帽子和红旗等品牌Linux中均使用影子口令格式,将用户的口令存储在另一个文件/etc/shadow
中,该文件只有根用户root可读,因而大大提高了安全性。如下所示:
root:$1$qnvzih07$LKCr9gldeq1ajos5tuLPH.:13670:0:99999:7:::
bin:*:13670:0:99999:7:::
daemon:*:13670:0:99999:7:::
adm:*:13670:0:99999:7:::
lp:*:13670:0:99999:7:::
sync:*:13670:0:99999:7:::
...
...
> 引用块内容
ntp:!!:13670:0:99999:7:::
gdm:!!:13670:0:99999:7:::
htt:!!:13670:0:99999:7:::
......
同样,在这个文件中,也是每个用户对应一行,并且用冒号分成九个部分(Linux系统中称为“域”)。每一行的格式如下:
f1 : f2 : f3 : f4 : f5 : f6 : f7 : f8 : f9
f1 用户登录名
f2 用户加密后的口令(若为空,表示该用户不需口令即可登录,若为*号,表示该帐号被禁用)
f3 从1970年1月1日至口令最近一次被修改的天数
f4口令在多少天内不能被用户修改
f5口令在多少天后必须被修改(0为没有修改过)
f6 口令过期多少天后用户帐号被禁止
f7口令在到期多少天内给用户发出警告
f8 口令自1970年1月1日被禁止的天数
f9保留域
同样以root帐户为例,它在上面的代码为:
root:$1$qnvzih07$LKCr9gldeq1ajos5tuLPH.:13670:0:99999:7:::
对照上面的格式可以得出:
它的用户登录名为root,
加密口令为“ 1 <script type="math/tex" id="MathJax-Element-8">1</script>qnvzih07$LKCr9gldeq1ajos5tuLPH.”(因为是加密的,所以显示的并不是直接的口令),
从1970年1月1日至口令最近一次被修改的天数为13670天,
口令不允许修改,
口令在99999天后必须被修改,
口令过期7天后用户帐号被禁止,
后面的3个域f7-f8没有配置。