本章解释如何产生新用户帐户,如何修改帐户的属性,如何删除帐户。不同的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])。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/linux/)初始环境:/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:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/linux/)cd /home/newusername
chown -R username.group .
chmod -R go=u,go-w .
chmod go= .
用passwd (1)设定口令。
最后一步设定完口令,这个帐户就能用了。不