作者:249126059_a32331 | 来源:互联网 | 2017-07-13 14:20
学习参考。在任何一个Linux系统中,都有一个passwd文件,它存放在/etc目录下。这个文件存放着所有用户账号的信息,包括用户名和密码,因此,它对系统来说是至关重要的。读者可以使用如下命令查看该文件:
#cat/etc/passwd
下面是一个passwd文件的内容:
root:sWMrPGa52GO1Y:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
games:x:12:100:games:/usr/games:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTPUser:/home/ftp:
nobody:x:99:99:Nobody:/:
arp:GFcoDv58s4YYg:500:500:user:/home/somebody:/bin/bash
读者可以看到root、arp等账号。
Passwd文件由许多条记录组成,每条记录占一行,记录了一个用户账号的所有信息。
每条记录由7个字段组成,字段间用冒号“:”隔开,其格式如下:
username:password:UserID:GroupID:comment:homedirectory:Shell
各字段的涵义是:
(1)username:用户名,它惟一地标识了一个用户账号,用户在登录时使用的就是它。
(2)password:该账号的口令,passwd文件中存放的密码是经过加密处理的。Linux的加密算法很严密,其中的口令几乎是不可能被破解的。盗用账号的人一般都借助专门的黑客程序,构造出无数个密码,然后使用同样的加密算法将其加密,再和本字段进行比较,如果相同的话,就代表构造出的口令是正确的。正因为如此,笔者才建议读者不要使用生日、常用单词等作为口令,它们在黑客程序面前几乎是不堪一击的。特别是对那些直接连入较大网络的系统来说,系统安全性显得尤为重要。
(3)UserID:用户识别码,简称UID。Linux系统内部使用UID来标识用户,而不是用户名。UID是一个整数,用户的UID互不相同。
(4)GroupID:用户组识别码,简称GID。不同的用户可以属于同一个用户组,享有该用户组共有的权限。与UID类似,GID惟一地标识了一个用户组。
(5)comment:这是管理员给用户账号做的注解,它一般是用户真实姓名、电话号码、住址等,当然也可以是空的。
(6)home directory:家目录,这个目录属于该账号,当用户登录后,它就会被置于此目录中,就像回到家一样。一般来说,root账号的家目录是/root,其他账号的家目录都在/home目录下,并且和用户名同名。当然这个目录也可以改到别的地方。
(7)login command:用户登录后执行的命令,一般来说,这个命令将启动一个Shell程序。使用过BBS的用户都知道,用BBS账号登录后,会直接进入BBS系统,这是因为BBS账号的login command指向的是BBS程序,等系统登录到BBS时就自动运行这些命令。
1.系统默认账号
系统中还有一些默认的账号,如adm、daemon、bin、sys等,读者可以在前面的passwd
文件中找到它们。这些账号有着特殊的用途,一般用于进行系统管理,例如:
bin账号拥有可执行文件。
sys账号拥有可执行文件。
adm账号拥有账号文件(如passwd)和日志(log)文件。
在比较大型的工作站中,超级用户可能希望将繁重的维护任务分派给其他维护人员,但又不希望赋予他们root权限,这时这些账号就派上用场了。这些账号的口令大部分用星号表示,代表它们不能在登录时使用。
2.安全密码
为了增强系统的安全性,Linux系统还可以为用户提供MD5和Shadow安全密码服务。如果在安装红旗Linux服务器版的时候在相关配置的选项上选中了MD5和Shadow服务,那么将看到的/etc/passwd文件和上边的例子文件稍有差别,差别就是在/etc/passwd里的passwd项上无论是什么用户,都是一个“*”,这就表示这些用户都登录不了;系统其实是把真正的密码数据放在了/etc/shadow文件里,用户只能以root身份来浏览这个文件。为什么要这样做呢,原因其实很简单,在系统设计的时候,/etc/passwd文件是任何人都可以读的,那么那些心有所图的人就可以利用这个文件,使用各种各样的工具按照Linux密码加密的方法把用户甚至root的密码试出来,这样整个系统就会被他所控制,严重危害系统的安全和用户数据的保密性。
/etc/passwd中存放的加密的口令用于用户登录时输入的口令经计算后相比较,符合则允许登录,否则拒绝用户登录。用户可用passwd命令修改自己的口令,不能直接修改/etc/passwd中的口令部分。
一个好的口令应当至少有6个字符长,不要取用个人信息(如生日,名字,反向拼写的登录名,房间中可见的东西),普通的英语单词也不好(因为可用字典攻击法),口令中最好有一些非字母(如数字,标点符号,控制字符等),还要好记一些,不能写在纸上或计算机中的文件中,选择口令的一个好方法是将两个不相关的词用一个数字或控制字符相连,并截断为8个字符。当然,如果能记住8位乱码自然更好。
不应使用同一个口令在不同机器中使用,特别是在不同级别的用户上使用同一口令,会引起全盘崩溃。用户应定期改变口令,至少6个月要改变一次,系统管理员可以强制用户定期做口令修改。为防止眼明手快的人窃取口令,在输入口令时应确认无人在身边。