Linux操作系统的口令安全问题详解

HA HA  忙就没有时间照顾她(偶的bolg)了,呵呵

 

 

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

 传统口令与影子口令

  /etc/passwd是存放用户的基本信息的口令文件。该口令文件的每一行都包含由6个冒号分隔的7个域:

  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:就是指定用户登陆到系统后启动的外壳程序。

    

               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机制,上述工具都可以正常使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值