Linux操作系统口令文件安全问题详细解析_unix 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

时间: 2024-12-09 12:02:46

Linux操作系统口令文件安全问题详细解析_unix linux的相关文章

linux mount命令的用法详细解析_unix linux

挂接命令(mount)首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的.命令格式:mount [-t vfstype] [-o options] device dir其中: 1.-t vfstype 指定文件系统的类型,通常不必指定.mount 会自动选择正确的类型.常用类型有:光盘或光盘镜像:iso9660DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindows NT ntfs文件系统:ntf

Linux tcpdump命令的用法详细解析_unix linux

英文原意是dump traffic on a network ,即截获网络上的数据报,可以根据指定的网络接口来截获不同的数据报.它会输出在某个网络接口上符合匹配表达式的报内容的描述.当tcpdump完成抓包后,会打印出类似下面的内容:  9 packets captured56 packets received by filter17 packets dropped by kernel 当然,在读取网络上的数据包时,得需要特权,比如linux上的超级用户 tcpdump用法 tcpdump -A

linux 内存管理机制详细解析_unix linux

物理内存和虚拟内存我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念. 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space). 作为物理内存的扩展,linux会在物理内存不足时,使用交换分区的

Linux下的压缩与解压缩命令详细解析_unix linux

linux zip命令 zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzipunzip -o -d /home/sunny myfile.zip把myfile.zip文件解压到 /home/sunny/-o:不提示的情况下覆盖文件:-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下: 3.其他zip -d myfile.zip smart.txt删除压缩文件中

Linux目录结构以及目录内的主要内容详细解析_unix linux

"/"根目录部分有以下子目录:/usr 目录包含所有的命令.程序库.文档和其它文件.这些文件在正常操作中不会被改变的.这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscape. /var 目录包含在正常操作中被改变的文件:假脱机文件.记录文件.加锁文件.临时文件和页格式化文件等 /home 目录包含用户的文件:参数设置文件.个性化文件.文档.数据.EMAIL.缓存数据等.这个目录在系统省级时应该保留. /proc 目录整个包含虚幻的文件.它们实际上并不存在磁盘上,也

Linux下的Chrome快捷键详细整理_unix linux

Linux下的Chrome快捷键详细整理 标签页和窗口快捷键 Ctrl+N 打开新窗口. Ctrl+T 打开新标签页. Ctrl+Shift+N 在隐身模式下打开新窗口. 按 Ctrl+O,然后选择文件. 在 Chrome 浏览器中打开计算机中的文件. 按住 Ctrl 键的同时点击链接.或用鼠标中键(或鼠标滚轮)点击链接. 从后台在新标签页中打开链接. 按住 Ctrl+Shift 的同时点击链接.或按住 Shift 键的同时用鼠标中键(或鼠标滚轮)点击链接. 在新标签页中打开链接并切换到刚打开的

Linux操作系统12则经典应用技巧_unix linux

本文介绍了Linux操作系统应用过程中12则经典技巧,合理应用这些技巧可以更好的使用Linux系统. 1.处理特殊的文件名 假设Linux系统中有一个文件名叫"-ee",如果我们想对它进行操作,例如要删除它,按照一般的删除方法在命令行中输入rm -ee命令,界面会提示我们是"无效选项"(invalid option),原来由于文件名的第一个字符为"-",Linux把文件名当作选项了,我们可以使用"--"符号来解决这个问题,输入

linux 系统调用与标准库调用的区别详细解析_unix linux

1.系统调用和库函数的关系 系统调用通过软中断int 0x80从用户态进入内核态. 函数库中的某些函数调用了系统调用. 函数库中的函数可以没有调用系统调用,也可以调用多个系统调用. 编程人员可以通过函数库调用系统调用. 高级编程也可以直接采用int 0x80进入系统调用,而不必通过函数库作为中介. 如果是在核心编程,也可以通过int 0x80进入系统调用,此时不能使用函数库.因为函数库中的函数是内核访问不到的.  2.从用户调用库函数到系统调用执行的流程. 1) 假设用户调用ssize_t wr

Linux C中库函数与系统调用的区别详细解析_unix linux

从程序完成的功能来看,函数库提供的函数通常是不需要操作系统的服务,函数是在用户空间内执行的,除非函数涉及到I/O操作等,一般是不会切到核心态的.系统调用是要求操作系统为用户提供进程,提供某种服务,通常是涉及系统的硬件资源和一些敏感的软件资源等. 函数库的函数,尤其与输入输出相关的函数,大多必须通过Linux的系统调用来完成.因此我们可以将函数库的函数当成应用程序设计人员与系统调用程序之间的一个中间层,通过这个中间层,我们可以用一致的接口来安全的调用系统调用.这样程序员可以只要写一次代码就能够在不