文章
服务器与存储管理
作者:Alexandre Borges
2013 年 8 月发布
root 角色如果要用一个词来概括 Oracle Solaris 11 操作系统,那么我认为非完美 莫属。毫不夸张。我从 2001 年开始使用 Oracle Solaris 并从事相关教学工作(Oracle Solaris 8、9、10 和 11),在此期间该操作系统经历了众多改进。市面上还有许多其他功能强大的操作系统,但性能、安全性和可用性都无法与 Oracle Solaris 相媲美。此外,Oracle Solaris 还在全球最重要的环境中得到了广泛采用。
|
在本文中,我将向您介绍如何在未安装 Oracle Solaris 11 的情况下了解该操作系统的相关信息。随后,我将帮助您安装该操作系统,并介绍 Oracle Solaris 11 桌面,如何使用 root 角色以及如何获取关于该系统的一些基本信息。
在本系列的第二部分中,我将介绍 Oracle Solaris 11 的一些重要特性,例如网络特性、服务管理工具和映像包管理系统。
在此过程中,我还将分享安装、配置和管理 Oracle Solaris 11 的一些经验以及在使用过程中遇到的各种问题。
首先,我将对一些重要的 Oracle Solaris 11 特性进行简要定义:
pkginfo、pkgadd 和 pkgrm 等命令更加强大、更易于使用。sudo 特性大致类似,可以为普通用户赋予非常具体的权限 — 无需透露 root 口令,因此用户可以执行一些管理任务。自从 Oracle Solaris 10 以及新添了另一项特性(最小权限)以来,RBAC 提供了一种非常强大的方式来限制用户或进程的权限,仅授予执行作业或任务所需的权限,从而减小向黑客暴露的攻击面。Oracle Solaris 11 既可以在 Oracle SPARC 服务器(例如,Oracle SPARC T 系列服务器和 SPARC M5-32 服务器)上运行,也可以在 x86_64 平台上运行,因此您可以在 Intel 或 AMD 硬件(x86_64 平台)上执行本文中的任何命令。
在本文中,我使用的是 VMware Workstation 版本 8,并且选择 Oracle Solaris 10 作为虚拟机硬件类型。
注:如果您使用的是 Oracle VM VirtualBox,那么本文中的指示仍然有效。
我建议您预留 4 GB RAM 和足够的磁盘空间(约 100 GB),这样可以进行任何测试。而这一要求又引发了一个很好的问题:Oracle Solaris 建议的最低配置是什么?最低应不少于 1 GB RAM 和 13 GB 磁盘。
要获取 Oracle Solaris 11,您需要一个 Oracle 帐户,该帐户是免费的,可在下载 Oracle Solaris 时创建。
要下载 Oracle Solaris,请访问 http://www.oracle.com/technetwork/cn/server-storage/solaris11/downloads/index.html,下载“适用于 x86 的 Oracle Solaris 11.1 Live Media”部分中提供的文件。(截至本文撰写时,该文件大小为 966 MB。)该文件将允许您测试已发布的 Oracle Solaris 11 版本,然后再决定是否要安装。别忘了在页面顶部接受许可协议。
此外,我还建议您阅读一篇优秀的文档:“Oracle Solaris 11 — 新增内容”。该文档重点介绍了一些非常重要的特性,如果您使用过之前版本的 Oracle Solaris,将大受裨益。
在初始化 Oracle Solaris 11 的过程中有一些要点需要格外注意,例如 Oracle Solaris 安装程序不会要求您提供 IP 地址、子网掩码或网关。为什么?因为 Oracle Solaris 11 基于反应性网络配置 (RNC) 特性 — 以前称为网络自动配置 (NWAM),该特性将完成一切繁杂工作。您只需提供 DHCP 服务。提供该服务之后,RNC 将完成所有剩余工作。
注:除了由 Oracle Solaris 11.1 Live Media 执行自动安装以外,还可以使用 Oracle Solaris 11 文本安装程序进行另一种安装。该安装程序与 Live Media 执行的任务相同,不过显示的选项不同,允许您设置固定的 IP 地址(而非 DHCP)、子网掩码和网关。此外,该安装程序还将安装一组基于服务器的软件包(而 Live Media 则安装一组基于桌面的软件包),允许您将 root 帐户配置角色或用户(详见下文),所需的内存比 Live Media 方法少。
接下来,您应该将 Oracle Solaris 11 DVD(或 .iso 文件)与一个虚拟机相关联。为此,请选择 VM->Settings。然后,您应该进入 CD/DVD 部分,单击 Browse 按钮,选择 .iso 文件。别忘了选择 Connect at power on 并单击 OK。
启动虚拟机之后,引导进程开始并显示如图 1 所示的屏幕。

图 1 — Oracle Solaris 11 安装选项
由于 Oracle Solaris 11.1 选项已经高亮显示,因此不需要执行任何操作。只需按 Enter 键,Oracle Solaris 安装向导将显示下一个屏幕(图 2),您可以在其中选择键盘和语言:

图 2 — 选择键盘和语言
选择键盘和语言之后,下一个屏幕将显示功能桌面(图 3),其中提供了一些重要图标。

图 3 — Oracle Solaris 11 功能桌面
其中一个图标的标签是 GParted Partition Editor,可调出一个工具,用于修改磁盘分区以及根据安装要求进行调整。参见图 4。

图 4 — GParted Partition Editor
另外还有一个图标可调出 Device Driver Utility 工具,该工具用于检查 Oracle Solaris 11 是否可为您计算机上的所有硬件提供设备驱动程序。图 5 显示了一个屏幕示例。建议在安装 Oracle Solaris 11 之前运行此工具,以便确定 Oracle Solaris 11 是否无法为某些设备提供合适的软件驱动程序。
请记住,您目前只是在运行 Oracle Solaris 11 Live Media DVD 版,尚未安装任何程序。顺便说一下,如果应用程序要求您提供口令,默认口令为 solaris。

图 5 — Device Driver Utility
如图 5 所示,我在 VMware 虚拟机上运行 Oracle Solaris 11,一切运行正常,不过有一些重要的事情您需要知道,以便您遇到问题时备用。在屏幕底部可以看到一个 Submit 按钮。当您将数据提交给 Oracle 时(电子邮件地址是 feedback_ww-grp@oracle.com),您将为完善 Oracle Solaris 11 贡献一份力量。
如何实现?以下是一个很奇妙的故事:若干年前,当我还在使用 Oracle Solaris 10 时,安装程序找不到与网卡相适的驱动程序。我向 Sun Microsystems 提交了一份报告,然后我就没再管这事。数周后,我收到了一封来自 Sun 的电子邮件,告诉我下一个版本的 Solaris 10 中将包括我的网络驱动程序。
图 6 显示了向 Oracle 提交信息的屏幕:

图 6 — 向硬件兼容性列表提交信息
我们已经了解了 Oracle Solaris 11 安装 DVD 中的一些工具,接下来要安装 Oracle Solaris 11。
首先,单击桌面上的 Install Oracle Solaris 图标。您将看到图 7 所示的 Welcome 屏幕:

图 7 — Oracle Solaris 11 安装程序 Welcome 屏幕
单击 Next。
随即显示图 8 所示的屏幕。您可以在其中指定使用本地磁盘还是 iSCSI 磁盘来安装 Oracle Solaris 11。由于我将计算机设置为使用 VMware,因此选择 Local Disks 并单击 Next。

图 8 — Disk Discovery 屏幕
随即显示图 9 所示的屏幕,其中显示两个选项。为简便起见,请选择 Use the whole disk,然后单击 Next。

图 9 — Disk Selection
随即显示图 10 所示的屏幕。这是其他操作系统中会出现的一个典型屏幕,您必须在其中选择地区、位置和时区。建议同时设置日期和时间,不过也可以使用 Oracle Solaris 11 中的 NTP 服务进行设置。
完成必要的选择之后,单击 Next。

图 10 — Time Zone, Date and Time
下一个屏幕(图 11 所示)要求您通过输入姓名、用户名和口令来创建一个普通用户帐户。建议选择由字母(大写和小写)、数字和特殊字符组成的口令。
在 Computer name 框中,输入一个包含小写字母(因为 UNIX 区分大小写)且不包含特殊字符(例如 #、! 和 $)的简单名称。
此用户帐户用于第一次登录 Oracle Solaris 11,因此切勿忘记口令!然后单击 Next。

图 11 — 创建用户帐户
如果您已经拥有 Oracle Support 帐户,那么可以在图 12 所示的屏幕中输入详细的 Oracle 个人信息(电子邮件地址和口令),以于从 Oracle 接收有关 Oracle Solaris 11 的安全新闻。
由于我们目前只是测试和了解 Oracle Solaris 11,因此必须取消选择 I wish to receive security updates via My Oracle Support 复选框并保留此屏幕中的其他选项不变。然后单击 Next。

图 12 — 注册 Support
接下来,我们将看到 Oracle Solaris 11 安装的最后一个摘要屏幕(图 13)。请在此处检查所有选项是否都正确无误,然后单击 Install。

图 13 — 验证安装说明
安装开始运行,将安装整个操作系统。您可以喝杯咖啡(我喝了一杯可乐)。在我的计算机上(使用 Intel 930 i7 Extreme Edition 处理器的 Dell 笔记本工作站 6600),安装过程花费了 10 分钟。
安装完成后,应单击 Reboot。
首次启动时,您会看到 Oracle Solaris Grub 菜单(与 Oracle Linux 中的 Grub 菜单极为类似)。其中只有一个选项,如图 14 所示:

图 14 — Oracle Grub 菜单
与 Linux 安装一样,您可能希望自定义新 Oracle Solaris 11 安装的引导参数,方法是在图 15 所示的屏幕中按下“E”键(编辑):

图 15 — 自定义引导参数
由于我们仅仅是刚开始了解 Oracle Solaris 11,因此暂时保留一切不动,请按 ESC 返回上一个屏幕(图 14)。在初始菜单中,按 Enter 键,Oracle Solaris 11 将完成其引导过程。(这需要一些时间)最后会显示登录屏幕:
输入在安装过程中指定的用户名。

图 16 — 登录屏幕
在下一个屏幕上(如图 17 所示),输入在安装过程中指定的口令。您还可以修改 Window Manager(GNOME 或 xterm)、键盘和语言。

图 17 — 口令屏幕
输入口令之后,随即显示 Oracle Solaris 11 桌面(图 18):

图 18 — Oracle Solaris 桌面
root 角色登录之后,您或许会有以下疑问:“为何无法使用 root 帐户?”Oracle Solaris 11 中的 root 帐户 (与 Oracle Solaris 10 中一样)只是一个角色。您可以在使用普通帐户(我使用的是 alex)登录之后使用此角色,具体方法是执行 su - root 命令。
使用这个 root 角色,您将能够执行环境中所需的一切任务。在以后的文章中,我将更详细地介绍 RBAC。目前,让我们来看看如何使用 root 角色。
首先,打开一个终端窗口。这是一个简单的任务:只需右键单击背景并选择 Open Terminal。然后键入以下命令:
$ su - root
如图 19 所示,需要输入一个新口令。建议输入一个由字母(大写和小写)、数字和特殊字符组成的口令。

图 19 — 创建 Root 口令
现在,我们可以继续。我之前说过,root 帐户是一个角色(与 RBAC 概念类似)。为了证明这一点,我将显示一个非常有趣的 /etc/user_attr 文件:
# more /etc/user_attr # The system provided entries are stored in different files # under "/etc/user_attr.d". They should not be copied to this file. root::::type=role alex::::lock_after_retries=no;profiles=System Administrator;roles=root
root 帐户是一个角色(而不是用户)。root 角色的帐户是 alex。alex 多次输入错误口令,他也不会被锁定。了解此文件之后,我们将 root 角色转换为 root 用户,即键入以下内容:
# rolemod -K type=normal root
要让此命令生效,请选择 System -> Log out。然后,尝试使用 root 帐户再次登录。其中有一个选项用于设置 Window Manager(GNOME)、键盘和语言。
有必要再次检查 /etc/user_attr 文件,了解 rolemod 命令进行了哪些修改:
# more /etc/user_attr # # The system provided entries are stored in different files # under "/etc/user_attr.d". They should not be copied to this file. # alex::::profiles=System Administrator;roles=root;lock_after_retries=no
您会看到 root::::type=role 行已消失。从现在开始,root 就是用户帐户了。
此外,我们还可以通过键入以下命令来验证同样的信息:
# id -a uid=0(root) gid=0(root) groups=0(root),1(other),2(bin),3(sys),4(adm),5(uucp),6(mail),7(tty),8(lp),9(nuucp),12(daemon)
可以看到,我们使用 root 帐户登录操作系统,我们的主要组是 root 并且加入了许多其他辅助组。每个配置都来自以下两个主文件:/etc/passwd 和 /etc/shadow。
不时地修改 root 口令是一个不错的主意。操作方法非常简单:
# passwd root
每次修改用户口令都会更改 /etc/shadow 文件。
还有一件事:如果有人要求我们证明 Oracle Solaris 11 安装已成功,应该怎么做?操作仍然非常简单。如清单 1 所示,有一个文件显示了有关 Oracle Solaris 11 安装的一切信息:
# more /var/sadm/system/logs/install_log
2013-05-19 20:07:10,837 InstallationLogger INFO **** START ****
2013-05-19 20:07:11,152 InstallationLogger INFO Loading GLADE files...
2013-05-19 20:07:11,313 InstallationLogger INFO Done loading GLADE files.
PROGRESS REPORT: progress percent:0 Preparing for Installation
2013-05-19 20:07:11,497 InstallationLogger INFO Initial screen is screen [0] [Welcome Screen]
PROGRESS REPORT: progress percent:100 TargetDiscovery completed.
2013-05-19 20:07:14,019 InstallationLogger INFO Next screen is screen [1] [Disk Discovery Screen]
2013-05-19 20:07:15,002 InstallationLogger INFO Starting Disk Discovery validation.
2013-05-19 20:07:15,004 InstallationLogger INFO Next screen is screen [2] [Disk Screen]
2013-05-19 20:07:15,107 InstallationLogger INFO TD XML:
<target name="discovered">
<disk whole_disk="false">
<disk_name name="c8t0d0" name_type="ctd"/>
<disk_prop dev_type="scsi" dev_vendor="VMware," dev_size="33543720secs"/>
<disk_keyword key="boot_disk"/>
</disk>
<logical noswap="true" nodump="true"/>
</target>
2013-05-19 20:07:15,108 InstallationLogger INFO TD found 1 disks matching criteria
2013-05-19 20:07:15,164 InstallationLogger INFO Disk [c8t0d0] selected
2013-05-19 20:07:15,164 InstallationLogger INFO TD AND TC FINISHED SUCCESSFULLY!
2013-05-19 20:07:15,206 InstallationLogger INFO Disk [c8t0d0] selected
2013-05-19 20:07:21,205 InstallationLogger INFO Disk [c8t0d0] selected
2013-05-19 20:07:23,245 InstallationLogger INFO Starting validation.
2013-05-19 20:07:23,251 InstallationLogger INFO Disk layout after tidy
清单 1
遗憾的是,我们并不总是需要使用本地桌面以 root 身份连接 Oracle Solaris 11。因此,我们将对环境进行一些修改。
注意:不建议在生产系统中使用以下两个命令,它们意味着重大安全风险。我在本文中涵盖了这些信息,这样您在刚上手时就会更加得心应手。您在操作 Oracle Solaris 11 时可以不必使用它们。
首先,为 root 用户解锁 telnet 连接会非常有用。因此,我们将编辑 /etc/default/login 文件并注释掉 CONSOLE 开头的一行,如清单 2 所示:
# vi /etc/default/login # Set the TZ environment variable of the shell. # #TIMEZONE=EST5EDT # ULIMIT sets the file size limit for the login. Units are disk blocks. # The default of zero means no limit. # #ULIMIT=0 # If CONSOLE is set, root can only login on that device. # If the specified device is /dev/console, then root can also log into # any of the currently enabled /dev/vt/# virtual terminal devices. # Comment this line out to allow remote login by root. # # CONSOLE=/dev/console # PASSREQ determines if login requires a password. # PASSREQ=YES
清单 2
我们可以对 SSH 服务执行同样的操作,即编辑 /etc/ssh/sshd_config 文件并将 PermitRootLogin 行修改为 yes,如清单 3 所示:
# vi /etc/ssh/sshd_config # Listen port (the IANA registered port number for ssh is 22) Port 22 # The default listen address is all interfaces, this may need to be changed # if you wish to restrict the interfaces sshd listens on for a multi homed host. # Multiple ListenAddress entries are allowed. ... # Are root logins permitted using sshd. # Note that sshd uses pam_authenticate(3PAM) so the root (or any other) user # maybe denied access by a PAM module regardless of this setting. # Valid options are yes, without-password, no. PermitRootLogin yes # sftp subsystem Subsystem sftp internal-sftp ...
清单 3
现在,我们可以非常便捷地连接 Oracle Solaris 11(不过不够安全)。
我们有时需要获取关于系统的一些信息,例如,计算机中有多少 RAM 、计算机中支持哪些其他硬件特性。可通过两个简单的命令获取这些信息。
首先,我们获取内存大小信息:
# prtconf | grep -i memory Memory size: 4096 Megabytes
要获取其他硬件详细信息,请运行清单 4 所示的命令:
# prtdiag -v | more System Configuration: VMware, Inc. VMware Virtual Platform BIOS Configuration: Phoenix Technologies LTD 6.00 06/02/2011 ==== Processor Sockets ==================================== Version Location Tag -------------------------------- -------------------------- Pentium(R) Pro CPU socket #0 ==== Memory Device Sockets ================================ Type Status Set Device Locator Bank Locator ----------- ------ --- ------------------- ---------------- DRAM in use 0 RAM slot #0 RAM slot #0 DRAM empty 0 RAM slot #1 RAM slot #1 ... ==== On-Board Devices ===================================== VMware SVGA II ES1371 ==== Upgradeable Slots ==================================== ID Status Type Description --- --------- ---------------- ---------------------------- 0 unknown ISA ISA Slot J8 0 unknown ISA ISA Slot J9 0 unknown ISA ISA Slot J10 1 in use PCI PCI Slot J11 2 in use PCI PCI Slot J12 3 in use PCI PCI Slot J13 4 available PCI PCI Slot J14
清单 4
清单 4 显示我正在使用 VMware 虚拟机。在物理计算机上,我们会看到更加完整(且更加有意义)的输出。
人们经常需要知道计算机的名称,只需键入以下命令即可:
# hostname solaris11
另外还有两个非常有用的命令:
# uname -a
SunOS solaris11 5.11 11.1 i86pc i386 i86pc
# more /etc/release
Oracle Solaris 11.1 X86
Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved.
Assembled 19 September 2012
最后,我们将了解如何关闭系统。要合理地完成此操作,请键入以下命令之一:
# shutdown -y -i5 -g0
或者:
# init 5
注:如果我们运行的是 poweroff 命令,那么系统将被关闭,不过不会执行一些建议的 kill 脚本。因此,不应在生产系统上使用 poweroff 命令。仅将其作为最后手段。
在本文中,我介绍了如何了解 Oracle Solaris 11 的基本信息以及如何安装该操作系统。本系列的第二部分将探讨一些更加深入的 Oracle Solaris 11 特性。
Alexandre Borges 是一位 Oracle ACE,曾于 2001 至 2010 年任职于 Sun Microsystems,并担任签约讲师,主要负责讲授 Oracle Solaris、Oracle Solaris Cluster、Oracle Solaris 安全性、Java EE、Sun 硬件和 MySQL 课程。目前,他为 Symantec、Oracle 合作伙伴和 EC-Council 提供课程教学,并且讲授一些关于信息安全的非常专业的课程。此外,他还是 Linux Magazine Brazil 的特约撰稿人和专栏作家。
| 修订版 1.0,2013 年 8 月 10 日 |