Linux管理员手册(6)--登录和注销_unix linux

说明当一个用户登录和注销时发生了什么。较详细地说明后台进程的各种交互、log文件、配置文件等

  通过终端登录

  首先,init 确认有一个getty 程序提供给终端连接(或控制台)。 getty 侦听终端等候用户告知它要登录 (这通常意味着用户必然键入些什么)。当它注意到一个用户,getty 输出一个欢迎信息(存在/etc/issue 中),并提示用户名,最后运行login 程序。 login 作为一个参数得到用户名,并提示用户输入口令。如果正确,login 启动给此用户设置的shell;否则退出并终止进程 (可能在再给用户一个机会输入用户名和口令之后)。 init 注意到进程终止,就给这个终端启动一个新的getty 。

  注意唯一的新进程是由init 产生的(用fork 系统调用); getty 和login 只是替代进程运行的程序 (使用exec 系统调用)。

  为注意用户,串行线需要一个单独的程序,因为终端活动时可以(传统上也是)变得复杂。 getty 也适应连接的速度和其他设置,这对拨号连接特别重要,因为连接和连接的参数可能不同。

  getty 和init 有多个版本在使用,各有优缺点。学习你的系统的版本也了解其他版本是个好主意(你可以用 Linux Software Map来找。)如果你没有拨入,可能不必考虑 getty ,但 init 仍然很重要。

  通过网络登录

  一个网络中的2台计算机通常通过一个物理电缆连接。当他们通过网络通信是,参与通信的每个计算机里的程序通过虚拟连接virtual connection通信,即一些虚构的电缆。虚拟连接的每端的程序,独占自己的(虚拟)电缆。然而,因为这电缆不是真的,只是虚构的,所有计算机的操作系统可以在同一物理电缆上有多条虚拟连接。这样,只用一条电缆,多个程序可以不必考虑其他通信而相互通信。使用同一电缆使多台计算机是可能的;2台计算机间存在的虚拟连接,其他计算机会忽略他们不参加的连接。

  那是一个复杂和抽象的真实描述。但可能足够理解网络登录与普通登录的不同的重要原因。不同计算机上的2个程序要通信时,虚拟连接建立。由于理论上可能从网络上的任何一台计算机登录到任何一台计算机,因此可能有极大数量的潜在的虚拟通讯。因此,为每个潜在的login启动一个getty 是不现实的。

  有一个进程inetd(与getty 协同)处理所有的网络登录。当它发现一个进来的网络登录(即发现某台其他计算机来的新的虚拟连接), 它启动一个新进程来处理那个登录。原来的进程继续侦听新的登录。

  更复杂的是,网络登录有多个通讯协议。2个最重要的协议是 telnet 和rlogin 。除了登录,还有许多其他虚拟连接可能建立(为FTP、Gopher、HTTP和其他网络服务)。为要侦听的每种类型的连接提供一个进程不是很有效,因此,只用一个侦听器来识别连接的种类,能启动正确的程序来提供服务。这个侦听器叫inetd ;更多的信息请见《Linux网络管理指南》。
  login干了些什么

  login 程序负责认证用户(确认用户名和口令相配),并建立串行线,启动shell,建立用户的初始环境。

  部分初始化设置是输出文件/etc/motd (每天的短信息)的内容,并检查电子邮件。可以在用户家目录中产生一个叫.hushlogin 的文件来是上面所述的失效。

  如果存在文件/etc/nologin ,就不允许登录。这个文件一般由shutdown 及其相关的东西产生。 login 检查这个文件,如果这个文件存在,就拒绝接受登录。如果这个文件确实存在,login 就会在退出之前,将它的内容输出到终端。

  login 将所有失败的登录企图登记在系统log文件中 (通过syslog )。它也登记所有的root的登录。这些都对跟踪入侵者有用。

  当前登录着的用户列在/var/run/utmp 中。这个文件直到系统下次启动或关机前有效。系统刚启动时它被清空。它列出了每个用户和用户使用的终端(或网络连接),及一些有用的信息。 who 、w 及其他类似的命令查看utmp 文件得到都有谁登录着。

  所有成功的登录记录在/var/log/wtmp 中。这个文件将无限制地增大,所以必须有规律的清除,例如有个每周的cron 任务来清除它。 last 命令浏览wtmp 文件。

  utmp 和wtmp 都是二进制格式 (见utmp 的man页);不幸的是,没有特殊的程序无法查看它们。

  X和xdm

  META: X implements logins via xdm; also: xterm -ls

  存取控制

  用户数据库传统上包含在/etc/passwd 文件中。有些系统使用影子口令shadow passwords,并把口令移到 /etc/shadow 中。许多计算机的场所可以用NIS或其他存储用户数据库的方法共享帐户;它们可能也自动从中心位置复制数据库到所有其他计算机。

  用户数据库不仅包含口令,还包括有用户的其他信息,比如其真实姓名、家目录、登录 shell等。这其他信息需要公用,使所有人都能读。因此口令是加密保存的。这有缺点,任何人取得加密的口令,可以用不同的加密方法猜试口令,而不用试着真正登录到计算机。影子口令试图用把口令移动到其他文件的办法避免这种情况,只有 root能读(口令还是加密保存的)。 However, installing shadow passwords later onto a system that did not support them can be difficult.

  不管有没有口令,确认系统中的所有口令是好的是很重要的,即不易猜。 crack 程序可用于破解口令;任何可以精确地找到的口令都不是好的口令。同时crack 可以为入侵者运行,也可由系统管理员运行以避免坏的口令。好的口令也可以被passwd 程序强制实现;这样对CPU周期来说很有效,因为破解口令需要许多计算。

  用户组数据库保存在/etc/group 文件中;有影子口令的系统,是/etc/shadow.group 。

  root通常不能通过更多的终端或网络登录,只能通过列在/etc/securetty 文件中的终端登录。这使得必须能够物理存取这其中的一个终端。当然也可能通过任何终端用任何拥护登录,然后使用su 命令变成root。

  Shell启动

  当一个交互的登录shell启动时,它自动执行一个或更多预定义的文件。不同的shell执行不同的文件;更多的信息见每个shell的文档。

  多数shell首先运行一些全局文件,例如,Bourne shell(/bin/sh ) 和它引出执行的/etc/profile ;另外,它们执行用户家目录中的.profile 。 /etc/profile 允许系统管理员建立一个公用的用户环境,特别是建立PATH,以包括本地命令目录。另外,.profile 允许用户通过覆盖按照自己的口味客户化环境,如果必要,使用确省环境。

时间: 2024-10-24 00:03:44

Linux管理员手册(6)--登录和注销_unix linux的相关文章

Linux管理员手册(2)--目录树概述_unix linux

本章说明标准Linux目录树的重要部分,基于FSSTND文件系统标准.概述根据不同的目的和给定的要求将目录树分为若干分离的文件系统的一般方法.也说明一些其他方法. 背景 本章松散地基于Linux文件系统标准FSSTND版本1.2(见参考书目[Qui95]),它意图建立一个如何组织Linux系统目录树的标准.这样一个标准具有易于写或port(移植?)Linux软件.管理Linux系统的优点,因为所有东西都将在他们的一般地方.此标准没有强制所有人遵从的权威,但它有最多的Linux distribut

Linux管理员手册(5)--引导和关机_unix linux

本节说明当Linux系统引导和关机时发生了什么,应该任何正确完成. 如果没有遵循正确的过程, 文件可能损坏或丢失. 引导和关机概述 开启计算机并导致其操作系统被加载的过程 叫引导. The name comes from an image of the computer pulling itself up from its bootstraps, but the act itself slightly more realistic. 启动过程中,计算机首先加载了一小段叫 bootstrap lo

Linux管理员手册(3)--存贮介质_unix linux

Linux管理员手册(3)--磁盘和其他存贮介质的使用 安装和升级系统时,需要对硬盘做很多工作.必须在硬盘上做文件系统,使文件能存在其上,并为系统不同的部分保留空间. 本章说明所有这些初始化工作.通常,一旦你建立了系统,就不必再做这些工作(除了使用软盘).如果你要增加一个新硬盘或更好地调整你的硬盘的使用,那么可能回到这一章. 管理磁盘的基本任务有: 格式化磁盘.这为磁盘进入使用做一些工作,比如检查坏扇区.(现在多数硬盘无须格式化.) 给硬盘分区,如果想用于互相不干扰的几件事.分区的一个原因是要在

Linux 管理员手册(2)_unix linux

    本章说明标准Linux目录树的重要部分,基于FSSTND文件系统标准.概述根据不同的目的和给定的要求将目录树分为若干分离的文件系统的一般方法.也说明一些其他方法.     背景 本章松散地基于Linux文件系统标准FSSTND版本1.2(见参考书目[Qui95]),它意图建立一个如何组织Linux系统目录树的标准.这样一个标准具有易于写或port(移植?)Linux软件.管理Linux系统的优点,因为所有东西都将在他们的一般地方.此标准没有强制所有人遵从的权威,但它有最多的Linux d

Linux 管理员手册(6)_unix linux

    说明当一个用户登录和注销时发生了什么.较详细地说明后台进程的各种交互.log文件.配置文件等     通过终端登录 首先,init 确认有一个getty 程序提供给终端连接(或控制台). getty 侦听终端等候用户告知它要登录 (这通常意味着用户必然键入些什么).当它注意到一个用户,getty 输出一个欢迎信息(存在/etc/issue 中),并提示用户名,最后运行login 程序. login 作为一个参数得到用户名,并提示用户输入口令.如果正确,login 启动给此用户设置的she

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

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

关于Linux常见紧急情况的处理方法_unix linux

1.使用急救盘组进行维护 急救盘组(也称为boot/root盘组),是系统管理员必不可少的工具.用它可以独立地启动和运行一 个完整的Linux系统.实际上,急救盘组中的第2张盘上就有一个完整的Linux系统,包括root文件系 统:而第1张盘则存放了可启动的内核.使用急救盘组维护系统很简单.只需用这两张盘启动系统后,进入急救模式,这时使用的是root账户.为了能访问硬盘上的文件,需要手工安装硬盘文件系统.例如,用下面的命令可在/mnt目录中安装 /dev/hda2盘上的ext2fs类型的Linu

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

几乎所有的类Unix操作系统的口令文件的格式都雷同,Linux亦不例外.口令安全是Linux操作系统的传统安全问题之一. 传统口令与影子口令 /etc/passwd是存放用户的基本信息的口令文件.该口令文件的每一行都包含由6个冒号分隔的7个域: username: passwd: uid: gid: comments: directory: shell 以上从左到右7个域分别叙述如下: username:是用户登陆使用的名字. passwd:是口令密文域.密文是加密过的口令.如果口令经过shad