首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
Google
首页 入门 Linux编程 系统管理 网络管理 Linux认证 Unix/BSD Linux数据库 Linux集群 Linux手册 Linux下载 Ubuntu 论坛 专题 RSS
您现在的位置: 中国IT实验室 >> Linux >> 系统管理 >> 系统管理 >> 正文

Linux操作系统口令文件安全问题详细解析

    几乎所有的类Unix操作系统的口令文件的格式都雷同,Linux 亦不例外。口令安全是Linux 操作系统的传统安全问题之一。

    传统口令与影子口令

    /etc/passwd 是存放用户的基本信息的口令文件。该口令文件的每一行都包含由6 个冒号分隔的7 个域:&nbsp ;username: passwd : uid: gid: comments: directory: shell

    以上从左到右7 个域分别叙述如下:

    username:是用户登陆使用的名字。

    passwd:是口令密文域。密文是加密过的口令。如果口令经过shadow则口令密文域只显示一个x ,通常,口令都应该经过shadow以确保安全。如果口令密文域显示为* ,则表明该用户名有效但不能登陆。如果口令密文域为空则表明该用户登陆不需要口令。

    uid :系统用于唯一标识用户名的数字,uid 系统是这样分配的:

    0 超级用户

    1 ~10守护程序和伪用户

    11~99系统保留用户

    100 ~正常用户

    gid :表示用户所在默认组号。由/etc/group文件决定。

    comments:描述用户的个人信息。

    directory :定义用户的初始工作目录。

    shell :就是指定用户登陆到系统后启动的外壳程序。

    表1 列出了系统在安装过程中创建的标准用户,表中的内容和/etc/passwd文件的描述是一致的。

    表2 列出系统安装过程中创建的标准用户组,和/etc/group文件是一致的:

    Linux 使用不可逆的加密算法如DES 来加密口令,由于加密算法是不可逆的,所以从密文是得不到明文的。但问题在于,/etc/passwd 文件是全局可读的,加密的算法是公开的,如果有恶意用户取得了/etc/passwd 文件,他就可以穷举所有可能的明文通过相同的算法计算出密文进行比较,直到相同,于是他就破解了口令。因此,针对这种安全问题,Linux/Unix广泛采用了“shadow(影子)”机制,将加密的口令转移到 /etc/shadow文件里,该文件只为root超级用户可读,而同时/etc/passwd 文件的密文域显示为一个x ,从而最大限度减少密文泄露的机会。

    /etc/shadow 文件的每行是8 个冒号分割的9 个域,格式如下:

    username: passwd : lastchg: min: max: warn : inactive : expire: flag

    其中:

    lastchg :表示从1970年1 月1 日起到上次修改口令所经过的天数。

    min :表示两次修改口令之间至少经过的天数。

    max :表示口令还会有效的最大天数,如果是99999 则表示永不过期。

    warn:表示口令失效前多少天内系统向用户发出警告。

    inactive:表示禁止登陆前用户名还有效的天数。

    expire:表示用户被禁止登陆的时间。0

    flag:无意义,未使用。

    启用影子口令

    RedHat Linux缺省安装shadow,如果你发现你的系统的/etc/passwd 文件仍然可以看到密文,就说明你没有启用shadow. 可以执行pwconv来启用shadow.

    在RedHat Linux 7.1中,影子工具包(shadow utils)包含了几个工具支持以下功能:

    传统口令与影子口令之间的转换工具:pwconv、pwunconv.

    验证口令,组和相应的影子文件:pwck、grpck.

    以符合工业标准的方法增加、删除和修改用户帐户:useradd 、usermod 、userdel.

    以符合工业标准的方法增加、删除和修改用户组:groupadd、groupmod、groupdel.

    以符合工业标准的方法管理文件/etc/group.

    无论系统是否启用shadow机制,上述工具都可以正常使用。

    更改Linux 口令的最短长度

    Linux 系统默认最短口令长度为5 个字符,这个长度不足以保证口令的健壮性,应该改为最短8 个字符,编辑/etc/login.defs 文件,在此文件中,将

    PASS_MIN_LEN  5

    改为:

    PASS_MIN_LEN  8

    表1

    User Uid gid Directory shell

    Root 0 0 /root /bin/bash

    Bin 1 1 /bin

    Daemon 2 2 /sbin

    Adm 3 4 /var/adm

    Lp 4 7 /var/spool/lpd

    Sync 5 0 /sbin /bin/sync

    shutdown 6 0 /sbin /sbin/shutdown

    Halt 7 0 /sbin /sbin/halt

    Mail 8 12 /var/spool/mail

    News 9 13 /var/spool/news

    Uucp 10 14 /var/spool/uucp

    Operator 11 0 /root

    Games 12 100 /usr/games

    Gopher 13 30 /usr/lib/gopher-data

    ftp 14 50 /home/ftp

    Nobody 99 99 /

    表2

    Group Gid Members

    Root 0 Root

    Bin 1 root,bin ,daemon

    Daemon 2 root ,bin ,daemon

    Sys 3 root,bin ,adm

    Adm 4 root,adm ,daemon

    Tty 5

    Disk 6 Root

    Lp 7 daemon ,lp

    Mem 8

    Kmem 9

    Whell 10 Root

    Mail 12 Mail

    News 13 News

    Uucp 14 Uucp

    Man 15

    Games 20

    Gopher 30

    Dip 40

    ftp 50

    nobody 99

    Users 100

    floppy 19

【责编:Zenghui】
中国IT教育
相关产品和培训
文章评论
 友情推荐链接
 专题推荐

 ·防范Linux病毒 打造没有病毒的乐土…
 ·Linux Shell编程实用指南…
 ·Linux日志分析与管理
 ·揭密Linux内存管理
 ·邮件服务Sendmail应用配置
 ·Linux 安全管理…
 ·Linux 下DNS服务器架设攻略…
 ·Linux 下的路由的配置与应用…
 ·专题:Apache实用手册
 ·全面剖析Linux文件系统
 今日更新
 认证培训
 频道精选
 Windows频道导航