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

转载 2007年09月28日 02:13:00
原贴:http://blog.chinaunix.net/u/17030/showart_311410.html

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

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

相关文章推荐

Linux操作系统故障排除-centos7口令丢失

今天演示centos7口令丢失的解决方法 1.重启系统,然后再五秒之内按下任意键进入菜单界面。进入下面画面后按 [ e ] 键 2修改文件为可写,指定init的shell,按Ctrl+x 开机 ...

Linux操作系统的内存使用方法详细解析

我是一名程序员,那么我在这里以一个程序员的角度来讲解Linux内存的使用。 一提到内存管理,我们头脑中闪出的两个概念,就是虚拟内存,与物理内存。这两个概念主要来自于linux内核的支持。 Linux在...

Linux操作系统内核启动参数详细解析

Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。 如果不使用启...

Linux操作系统PS命令详细解析

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进...

Linux操作系统下的多线程编程详细解析----条件变量

Linux操作系统下的多线程编程详细解析----条件变量   1.初始化条件变量pthread_cond_init #include int pthread_cond_init(pthrea...

Linux操作系统PS命令详细解析,RSS 驻留中页的数量

http://blog.csdn.net/cui55/article/details/2560232 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps ...

Linux操作系统下的多线程编程详细解析

zieckey (zieckey@yahoo.com.cn)     线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼...
  • ruglcc
  • ruglcc
  • 2012年08月16日 16:55
  • 931

Linux操作系统下的多线程编程详细解析----条件变量pthread_cond_t那些事儿

推荐两个博文: http://www.cnblogs.com/Creator/archive/2012/04/18/2455584.html http://blog.csdn.net/su...

Linux操作系统内核启动参数详细解析

Linux操作系统内核启动参数详细解析 Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动...
  • ce123
  • ce123
  • 2011年08月23日 15:46
  • 2222

浅析Arm Linux操作系统调用流程详细解析 .

系统调用是os操作系统提供的服务,用户程序通过各种系统调用,来引用内核提供的各种服务,系统调用的执行让用户程序陷入内核,该陷入动作由swi软中断完成.At91rm9200处理器对应的linux2.4....
  • tigerjb
  • tigerjb
  • 2012年07月02日 14:29
  • 2047
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux操作系统的口令安全问题详细解析
举报原因:
原因补充:

(最多只允许输入30个字)