Linux管理员手册(7)--管理用户帐户

本章解释如何产生新用户帐户,如何修改帐户的属性,如何删除帐户。不同的Linux系统有不同的工具实现。

  什么是帐户?

  当一台计算机为多人所用时,通常需要区分用户,例如,使个人文件保持个人化。即使计算机同时只为一人所用,这也很重要,如多数微机。 因此,每个用户给定一个单独的用户名,这个名字被用于登录。

  用户除了名字还有更多。一个帐户是所有的文件、资源和属于这个用户的信息。这个属于暗示是银行,在一个商业系统中,每个帐户通常与一些钱有关,且这些钱依赖于用户使用系统的多少以不同的速度被花掉。例如,磁盘空间可能有个每MB每天的价格,处理时间也可能有个每秒的价格。

  创建用户

  Linux核心自己只不过视用户为数字。每个用户用一个单一的整数识别,user id或uid,因为数字对计算机来说比文本名字处理更快更容易。核心之外的一个单独的数据库给每个user id安排了文本的名字,即用户名username。这个数据库还包含一些其他信息。

  要产生一个用户,需要给用户数据库增加关于用户的信息,并给他产生家目录。培训用户、建立合适的初始化环境也是必要的。

  多数Linux distributions有产生帐号的程序,而且有多个。 adduser 和useradd 是其中2个;可能还有GUI的工具。 Whatever the program, the result is that there is little if any manual work to be done. Even if the details are many and intricate, these programs make everything seem trivial. However, section 8.2.4 describes how to do it by hand.

  /etc/passwd和其他信息文件
  Unix系统的基本用户数据库是文本文件,/etc/passwd (叫口令文件),它列出所有有效用户名及其相关信息。文件的每个用户一行,分为用:分隔的7个域:

  用户名
  加密格式的口令
  数字的user id
  数字的group id
  全名或帐户的其他说明
  家目录
  登录shell(登录时运行的程序)

  详细的格式说明在passwd (5)中。

  系统中的任何用户可以读口令文件,因此他们可以得到其他用户的名字。即任何人也可以得到口令(第二个域)。口令文件加密了口令,所以利润上说应该没有问题。但是,加密是可破解的,尤其是口令比较简单时(例如太短,或能在词典中找到的)。因此,口令存在口令文件中并不好。

  许多Linux系统有影子口令shadow passwords文件。这种方法将加密的口令存在另一个文件/etc/shadow 中,而这个文件只有root能读。 /etc/passwd 文件在第二个域只有一个special marker。 Any program that needs to verify a user is setuid,那么可以存取影子口令文件。而只使用口令文件其他域的普通程序,不能得到口令。
  取得数字的用户和组ID

  多数系统不管数字的用户和组ID是什么,但如果使用网络文件系统(NFS),所有系统必须使用相同的uid和gid。因为NFS也用uid认证用户。如果不使用NFS,可以用帐户产生工具自动取得的uid。

  如果用NFS,必须用一个机制来同步帐户信息。一个方法是使用NIS系统 (见[Kir])。

  初始环境:/etc/skel

  当新用户的家目录产生时,用/etc/skel 目录的文件初始化。系统管理员可以产生/etc/skel 里的文件给用户提供一个好的缺省环境。例如,产生一个/etc/skel/.profile 设定EDITOR环境变量,提供新用户一个友善的编辑器。

  然而,通常最好保持/etc/skel 尽量小,因为it will be next to impossible to update existing users' files. 例如,如果友善的编辑器的名字改变了,所有现存用户必须编辑他们的.profile 。系统管理员可以用一个script自动完成,但仍可能破坏某个用户的文件。

  只要可能,最好把全局设置放在全局文件中,如/etc/profile 。这样可以升级,而避免破坏用户自己的设置。

  手工创建用户

  按以下步骤手工创建新用户:

  用vipw (8)编辑/etc/passwd ,为新用户增加一个新行。注意语法。 不要用编辑器直接编辑! vipw 锁定了这个文件,其他命令这时不能更新它。设定口令域为"*",这样不能登录。

  类似,如果要创建新组,用vigr 编辑/etc/group 。

  用mkdir 产生用户的家目录。

  将/etc/skel 中的文件复制到新的家目录中。

  用chown 和chmod 修改所有者和权限。 -R选项是最有用的。 The correct permissions vary a little from one site to another, but usually the following commands do the right thing:

  cd /home/newusername
  chown -R username.group .
  chmod -R go=u,go-w .
  chmod go= .

  用passwd (1)设定口令。

  最后一步设定完口令,这个帐户就能用了。不应该在其他所有事做完之前设定口令,否则这个用户可能不允许登录while you're still copying the files.

  有时需要产生不为任何人使用的虚假(dummy)帐户 例如,建立一个匿名FTP服务器(这样任何人都可以从它下载文件,无须得到一个帐户),必须产生一个叫ftp的帐户。这种情况,通常无须随后一步的口令设定。而且,最好不设,这样没有人可以使用这个帐户,除非先变成root,因为root可以变成任何用户。

  改变用户属性

  有几个改变帐户不同属性的命令(即/etc/passwd 中的相关域):

  chfn
  改变全名域。
  chsh
  改变登录shell。
  passwd
  改变口令。

  超级用户可以用这些口令改变任何帐户的属性。普通用户只能改变自己帐户的属性。有时可能有必要使这些命令对普通用户不可用(用chmod ),例如在一个有许多新手的环境中。

  其他任务需要手工完成。例如改变用户名,需要编辑/etc/passwd (记住:用vipw )。同样,要增加或删除用户to more groups,需要编辑/etc/group (用vigr )。这种任务较少,需要小心从事:例如,改变了用户名,电子邮件就不能到达这个用户,除非你同时产生一个邮件别名。

  删除用户

  要删除用户,必须先删除他的所有文件,然后从/etc/passwd 和/etc/group 删除相关的行。有些Linux distributions带特定的命令,看看有没有 deluser 或userdel 。然而,手工删除也很简单。

  临时禁止一个用户

  有时需要临时禁止一个用户,而不删除它。例如用户没有付费,或系统管理员怀疑黑客得到了某个帐户的口令。

  禁止一个用户的最好方法是将它的shell变到一个特定的只打印出一条信息的程序,用这种方法,任何想登录此帐户的人将无法登录,并得知原因。该信息可以告诉用户与系统管理员联系,以处理任何问题。

  也可以改变用户名或口令,但这样用户不知道怎么回事。 Confused users mean more work.

  产生上述特定程序的一个简单方法是写"tail scripts":

  #!/usr/bin/tail +2
  This account has been closed due to a security breach.
  Please call 555-1234 and wait for the men in black to arrive.
  前2个字符("#!")告诉核心本行的其他部分是解释本文件要运行的命令。这样tail 命令将输出处理第一行外的所有东西到标准输出。
  如果怀疑billg是个安全缺口,系统管理员可以这样做:

  # chsh -s /usr/local/lib/no-login/security billg
  # su - tester
  This account has been closed due to a security breach.
  Please call 555-1234 and wait for the men in black to arrive.
  #
  su 的目的是此时改变是否工作。
  Tail scripts应该放在一个分离的目录中,这样它们的名字不会干扰普通用户的命令

(0)

相关推荐

  • Linux管理员手册(7)--管理用户帐户

    本章解释如何产生新用户帐户,如何修改帐户的属性,如何删除帐户.不同的Linux系统有不同的工具实现. 什么是帐户? 当一台计算机为多人所用时,通常需要区分用户,例如,使个人文件保持个人化.即使计算机同时只为一人所用,这也很重要,如多数微机. 因此,每个用户给定一个单独的用户名,这个名字被用于登录. 用户除了名字还有更多.一个帐户是所有的文件.资源和属于这个用户的信息.这个属于暗示是银行,在一个商业系统中,每个帐户通常与一些钱有关,且这些钱依赖于用户使用系统的多少以不同的速度被花掉.例如,磁盘空间

  • Linux 中锁定和解锁用户帐户的三种方法

    如果你已经在你的组织中实施了某种密码策略,你无需看这篇文章了.但是在这种情况下,如果你给账户设置了 24 小时的锁定期,你需要手动解锁用户帐户. 本教程将帮助你在 Linux 中手动锁定和解锁用户帐户. 这可以通过三种方式使用以下两个 Linux 命令来完成. passwd usermod 为了说明这一点,我们选择 daygeek 用户帐户.让我们看看,怎么一步步来实现的. 请注意,你必须使用你需要锁定或解锁的用户的帐户,而不是我们的帐户.你可以使用 id 命令检查给定的用户帐户在系统中是否可用

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

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

  • Linux 管理员手册(7)

    本章解释如何产生新用户帐户,如何修改帐户的属性,如何删除帐户.不同的Linux系统有不同的工具实现. 什么是帐户? 当一台计算机为多人所用时,通常需要区分用户,例如,使个人文件保持个人化.即使计算机同时只为一人所用,这也很重要,如多数微机. 因此,每个用户给定一个单独的用户名,这个名字被用于登录. 用户除了名字还有更多.一个帐户是所有的文件.资源和属于这个用户的信息.这个属于暗示是银行,在一个商业系统中,每个帐户通常与一些钱有关,且这些钱依赖于用户使用系统的多少以不同的速度被花掉.例如,磁盘空间

  • 如何修复受损的Windows XP用户帐户很不错

    大家都知道,Windows XP 相比其它版本的 Windows 而言提供了 Windows 欢迎屏幕登录方式和快速用户切换的功能,为我们实现多人使用一台计算机提供了方便.正是因为如此,Windows XP 控制面板中的"用户帐户"也与其它版本的 Windows 有所不同,我们可以通过它选择是否启用欢迎屏幕.是否启用快速用户切换,以及为用户帐户设置头像等等. 然而,Windows XP 的"用户帐户"的主界面是一个基于 HTML 界面的程序,例如"用户帐户

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

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

  • Linux 管理员手册(6)

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

  • Linux管理员手册(4)--内存管理

    本章说明Linux的内存管理特征,即虚拟内存和磁盘缓存.描述系统管理员应该考虑的东西.工作和目的. 什么是虚拟内存? Linux支持虚拟内存, 就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大.核心把当前不用的内存块存到硬盘,腾出内存给其他目的.当原来的内容又要使用时,再读回内存.这对用户全透明:运行于Linux的程序只看到大量的可用内存而不甘心哪部分在磁盘上.当然,读写硬盘比真的内存慢(慢千倍),所以程序运行较慢.用做虚拟内存的这部分硬盘叫 对换空间. Linux可以使用文件系统中的普通

  • Linux 管理员手册(3)

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

  • Linux 管理员手册(2)

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

随机推荐