转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
专题:Windows 到 Linux 之旅:第 4 部分. 用户管理         ★★★★

专题:Windows 到 Linux 之旅:第 4 部分. 用户管理

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1384 更新时间:2009/4/22 20:45:18
密码、组和它们的映像

级别:初级

Chris Walden (cmwalden-at-us.ibm.com)
电子商务架构师,IBM Developer Relations
2004 年 1 月

IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。在本部分,我们使用 Webmin 界面和命令行添加、删除用户和组,并介绍了密码和组文件的映像。

Linux 中的用户管理与 Windows 中的用户管理很相似,但又很不相同。两个系统都是多用户系统,基于用户身份来控制他们对资源的访问。两个操作系统都允许将用户分组管理以简化访问控制,以避免为众多用户分别设置权限。不过,相同之处也仅此而已。

超级用户
在 Linux 中,超级用户称为 root。root 用户可以控制所有的程序,访问所有文件,使用系统上的所有功能。对 root 用户来说没有不可以做的事情。就管理的角度而言,root 的权限是至高无上的。所以,root 帐号一定要通过安全的密码保护起来,这一点非常重要。您不应该使用 root 身份来处理日常的事务。

其他用户也可以被赋予 root 特权,但一定要谨慎行事。通常您可以配置一些特定的程序由某些用户以 root 身份去运行,而不必赋予他们 root 权限。

创建新用户
可以通过命令行或者 Webmin 等工具来创建新用户。

添加用户的命令是 useradd。例如,从控制台中创建一个新用户:

useradd -c "normal user" -d /home/userid -g users\
-G webadm,helpdesk -s\ /bin/bash userid

这个命令创建了一个名为“userid”(命令的最后一个参数)的新用户。“normal user”是对这个用户的注释。userid 的主目录将是“/home/userid”。userid 的主组将是 users,但他也被加入到“webadm”和“helpdesk”这两个组。userid 将使用“/bin/bash”shell 作为他的常规控制台环境。

使用 Webmin 创建新用户简单而且直观。使用您喜欢的浏览器登录到 Webmin,切换到 System 窗体。选择“Users and Groups”工具,然后点击 Create a new user

图 1. Webmin 的 Create User 屏幕
图 1. Webmin 的 Create User 屏幕

填写好用户的详细信息,然后点击 Create。用户创建完成。

用 GUI 工具添加用户在“Basic tasks for new Linux developers”一文中也讨论了。

修改密码
可以从控制台使用 passwd 命令来修改用户的密码:

passwd userid

只有 root 用户可以用 passwd 修改其他用户的密码。输入完命令后,系统将提示您输入并确认您要设置的密码。如果两次输入一致,用户的标识就会更新,密码修改成功。从控制台输入 passwd,用户可以修改自己的密码;在这种情况下,系统会向用户询问原来的密码,验证通过后才可以输入新密码。

大多数的 Linux 发行版本安装时都会启用 password cracker 模块,用于修改密码。这个模块将检查密码是否遵循了良好的密码设置习惯。如果用户使用了不安全的密码,它将自动警告用户。您可以将系统配置为要求用户必须使用安全的密码。root 在设置不安全的密码时也会被警告,但是仍然可以设置成功。

在 Webmin 中,可以使用 System 窗体中的“Change Passwords”模块来修改密码。在列表中选择一个用户,然后在空白处输入新密码。

删除用户
可以从控制台使用 userdel 命令来删除用户。

userdel -r userid

使用可选的 -r 开关可以将用户的主目录及所有相关信息全部删除。如果想要保留用户主目录,那么不要使用 -r 开关。这个开关不会自动删除系统中所有属于这个用户的文件,只是删除他的主目录。

如何组织用户
Linux 的配置是基于文本的。Linux 中的所有用户都存放于 /etc/passwd 文件中。您可以使用 more 命令来分页查看这个文件:

more /etc/passwd

/etc 目录
不要忘记,Linux 的大多数配置文件都是在 /etc 目录下。

这个文件的结构非常直观。每一行是一个新用户,参数用冒号隔开。

userid:x:75000:75000::/home/userid:/bin/bash

第一列是用户名。第二列是用户的密码。第三列是用户的数字 ID。第四列是用户的主组的 ID。第五列是用户的全名,或者是注释。第六列是用户主目录的位置,这个目录通常位于 /home 目录下,目录名与用户 ID 相同。第七列是用户的默认控制台 shell。

Password 文件结构
Login ID Password User ID Group ID Comment Home directory Default shell userid x 75000 75000 /home/userid /bin/bash

注意上面的例子中 Password 列是一个“x”。这并不是说用户的密码是“x”。以前密码曾经是以平文本的形式存储在这个文件中。现在也还有这样的配置,但由于密码容易泄露,已经很少有人再这样做了。解决的方法是创建 shadow password。在 /etc/passwd 文件中存放密码的位置只是存放一个“x”,而经过加密的密码存放于 /etc/shadow 文件中。这项技术通过将用户信息与密码数据分离而提高了安全性。MD5 密码加密算法支持更为可靠的密码,从而进一步提高了安全性。一个映像密码条目的样例如下所示:

映像密码和用户权限
Linux 用户管理的特点之一在于它沿袭了 UNIX 风格,使用 passwd 文件。登录的用户必须可以读取 /etc/passwd 文件,以判断他的用户名是否存在。如果将用户名和密码存放在同一个文件中,潜在的攻击者就可能获得密码;他们可以下载 /etc/passwd 文件,然后以暴力破解的方法获得密码。映像文件不必所有人都可读,这样攻击者将不能获得任何形式的密码。

这种方法还是不最好的,因为攻击还是可以得到 一些 用户信息。更好的方法是将用户保存于一个单独的地方,比如使用 LDAP。

userid:$1$z2NXZR19$PZpyL84DmPKBXMeURaXXM.:12138:0:186:7:::

所有的映像密码过程都是在后台进行,您只需要启用这项功能,别的什么都不用去做。


Linux 中的组与 Windows 中的组很类似。您可以创建一个组,然后将成员添加到这个组的列表中。可以以组为单位来分配资源。隶属于同一个组的成员可以访问同一资源。

使用控制台命令 groupadd 创建组很简单:

groupadd mygroup

这将创建一个名为“newgroup”的没有任何成员的组。组存放于 /etc/group 文件中。每一个组由单独的一行列出,如下所示:

mygroup:x:527:

第一列是组的名字。第二列是一个密码。同样,“x”说明真正的密码存放在 /etc/gshadow 映像文件中。第三列是组的一个数字索引。在第三列之后将是以逗号隔开的组的成员的用户 ID。

可以使用 gpasswd 命令向组中添加成员,要使用 -a 开关,后面跟要添加的用户名:

gpasswd -a userid mygroup

删除组的成员还是使用这个命令,不过使用的开关是 -d 而不是 -a

gpasswd -d userid mygroup

也可以通过直接编辑 /etc/group 文件来对组进行修改。

编辑 passwd 文件时要当心
直接编辑 /etc/passwd 文件和 /etc/group 文件的真正危险在于有可能偶然失误而造成 ID 编号的重复。所有的资源都通过 ID 编号而不是用户或组的名字来确定用户的身份。如果您不小心造成了 ID 编号的重复,那么可能会有一些意想不到的事情发生。例如,如果您将一个用户的 ID 编号设置为 0 (root 用户的 ID),那个用户的身份将是 root!。另外,如果您在文件中删除了用户行或者组行,那么对应的用户或组也就被删掉了。

这些都是人为的错误。使用工具可以避免这些错误。不过,有时直接去编辑 /etc/group 文件是解决问题最快捷的途径。您一定要记住,当您在编辑那些文件时,您管理的是实际的权力。一定要小心。

在 Webmin 中,可以使用前面用到的管理用户的工具来创建、编辑、除去组。

用户和组的关联
虽然在这里我们不能详尽地论述访问控制,不过您应该对用户和组对文件的访问权限有初步的了解。如果您以长格式列出一个目录下的文件,您看到的将如下显示。

-rw-r--r-- 1 userid mygroup 703 Jun 23 22:12 myfile

现在暂时忽略其他的列,只去看第三、四和最后一列。第三列是文件主人的名字,userid。第四列是关联到这个文件的组,mygroup。最后一列是文件名。每个文件只能属于一个主人和一个组。可以为不能归于这两类的其他用户 (Other)设置权限。可以认为 Other 相当于 Windows 中的 Everyone 组。

一个文件只能属于一个主人,这在操作系统中很常见,但是,文件只能属于一个组,初次使用这一规则的管理员可能会觉得受到了限制。事实并不如此。由于用户可以同时是多个组的成员,所以只需要创建新的组就可以安全使用资源。在 Linux 中,往往是基于所需要的资源访问权限而不是根据业务单位来定义组。如果系统的资源逻辑上是有组织的,那么可以创建更多的组来更好地控制对资源的访问。

在本文最后的 参考资料 部分,您可以找到关于关联用户和组的更多详细资料。查看 man chmod 可以获得如何改变文件权限的详细信息。

结束语
在 Linux 中管理用户和组的方式与 Windows 中本质上是相同的,但是 Linux 中只能有惟一的组可以关联到一个系统资源。应该这样认识 Linux 中的组管理:不要吝惜对组的使用,在复杂的环境中,不要害怕创建很多组。应该根据资源访问权限而不是基于业务单位去创建组。

用户和组信息分别存储在 /etc/passwd 文件和 /etc/group 文件中。您的系统可能还会有 /etc/shadow 和 /etc/gshadow 文件,它们存储的是为了安全而经过加密的密码。直接编辑这些文件来管理用户和组不是不可以,但您一定要谨慎行事。

所有的用户和组的管理都可以在控制台中完成,可以写成脚本。也可以使用 Webmin 等工具以图形化的方式管理用户和组。

参考资料

  • 阅读 Windows 到 Linux 之旅系列文章 的其他部分(developerWorks, 2003 年 11 月)。

  • The Linux System Administrator''''s Guid, Chapter 11. Managing user accounts 虽然是一份比较老的文档,但是仍值得一读,因为管理用户和组的技术是通用的。这份指南将帮助您深入学习 Linux 中基于控制台的管理。

  • Linux Headquarters 站点给出了关于很多主题的基本教程和提示。那些标签往往是“我已经安装了 Linux ... 现在该怎么办???”您可能会对 这些教程 很感兴趣。

  • Linux Documentation Project 也提供了一个 分类的 HOWTO 列表,来帮助您快速方便地找到适当的文档。

  • 在“针对 Linux 开发新手的基本任务”中也对使用 GUI 系统工具添加用户进行了介绍。

  • developerWorks 教程“LPI certification 101 exam prep, Part 3: Intermediate administration”中也涉及了用户管理方面的内容。

  • IBM Directory Server 实现了轻量目录访问协议(Lightweight Directory Access Protocol , LDAP),用于访问目录服务,尤其是那些基于 X.500 的目录服务。 更多细节请阅读“使用 IBM Directory Server 进行 Linux 用户验证”。

  • Linux Documentation Project 的 Introduction to Linux 指南的 第 3 章中讲述了文件权限和安全。

  • 阅读更多 Users and Logins 资料,请参考 Linux Unleashed (Macmillan Computer Publishing,1998 年)的相关章节,以及 The Official Red Hat Linux System Administration Primer(Red Hat, 2002 年)的 Managing Accounts and Groups

  • Maryland 大学共享了他们的关于 安全密码的选择 的思路与技巧。

  • Red Hat Linux Manual 文档中有关于使用 Shadow passwd file 的详细资料。

  • Linux Shadow Password HOWTO 介绍了映像系统的背景历史和相关资料,以及面向实现的循序渐进的指南。

  • 系统安全是一个广泛而复杂的主题,但是在互联网的世界中,它会影响到每一个人。幸运的是,只要开始意识到这个问题,就不算晚。以下两篇文章将对您有所帮助,一篇是 Adding Security to Common Linux Distributions,另一篇是 Strategies for Keeping a Secure Server (来自于以前引用过的 Linux Administration Made Easy 指南的第 12 章)。

  • IBM developerWorks 文章“Addressing security issues in Linux”将带您开始实现初步的安全。

  • Linux 用户技术 FAQ” (developerWorks, 2001 年 7 月)也可以帮助您顺利地从 Windows 过渡到 Linux。

  • 要开始在 Linux 上使用 IBM 的软件产品,为您的 Linux 应用开发加油提速 将为您提供最好的参考资料。您可以找到关于 DB2、Lotus Domino、WebSphere Application Server、WebSphere Studio 等多种应用软件的安装提示和参考资料。您还可以登录获得免费的 Linux Software Evaluation Kit,里面有试用软件和培训资料。

  • developerWorks Linux 专区可以找到更多 为 Linux 开发者准备的参考资料

关于作者
Chris Walden 是位于德克萨斯州奥斯汀的 IBM Developer Relations Technical Consulting(也称为 dragonslayers)的一名电子商务架构师,该公司为 IBM 商业伙伴提供教育、实现和咨询。他致力于 Linux 相关工作,一有机会就向身边的人宣传 Linux 的种种好处。除了完成他的架构师的职责之外,他还精通 Linux 基础设施服务器的各个领域,包括混合平台用户环境下的文件、打印以及其他应用服务等。Chri

[1] [2]  下一页


[C语言系列]C# 和 Linux 时间戳转换  [Web开发]PHP flock文件锁介绍
[Web开发]flock() Linux下的文件锁  [电脑应用]Linux下的六个免费的虚拟主机管理系统介绍
[电脑应用]Linux数据库大比拚  [操作系统]在Windows中玩转Linux操作系统
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]掌握 Linux 调试技术
[办公软件]理解 Linux 配置文件  [聊天工具]Real10 & Xpdf installation on Linux Box
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台