JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:常见任务     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

关于本书

1.  查找有关 Oracle Solaris 命令的信息

2.  管理用户帐户和组(概述)

用户帐户和组的新增功能

取消了对 Solaris Management Console 的支持

缺省口令散列算法

什么是用户帐户和组?

用户帐户的组成部分

用户名(登录名)

用户 ID 号

使用较大的用户 ID 和组 ID

UNIX 组

用户口令

起始目录

命名服务

用户的工作环境

用于指定用户名、用户 ID 和组 ID 的准则

用户帐户信息和组信息的存储位置

passwd 文件中的字段

缺省的 passwd 文件

shadow 文件中的字段

group 文件中的字段

缺省的 group 文件

用于管理用户和组帐户的命令行工具

定制用户的工作环境

使用站点初始化文件

避免引用本地系统

Shell 功能

Bash Shell 和 ksh93 Shell 历史记录

Bash Shell 和 ksh93 Shell 环境变量

定制 Bash Shell

关于 MANPATH 环境变量

PATH 变量

路径的设置准则

语言环境变量

缺省的文件权限 (umask)

定制用户初始化文件

3.  管理用户帐户和组(任务)

4.  引导和关闭 Oracle Solaris 系统

5.  使用 Oracle Configuration Manager

6.  管理服务(概述)

7.  管理服务(任务)

8.  使用 Fault Manager

9.  管理系统信息(任务)

10.  管理系统进程(任务)

11.  监视系统性能(任务)

12.  管理软件包(任务)

13.  管理磁盘使用(任务)

14.  调度系统任务(任务)

15.  使用 CUPS 设置和管理打印机(任务)

16.  管理系统控制台、终端设备和电源服务(任务)

17.  管理系统故障转储信息(任务)

18.  管理核心文件(任务)

19.  系统和软件问题的故障排除(任务)

20.  其他系统和软件问题的故障排除(任务)

索引

定制用户的工作环境

设置用户的起始目录时,需要为用户的登录 shell 提供用户初始化文件。用户初始化文件是一个 shell 脚本,用来在用户登录系统之后为其设置工作环境。使用用户初始化文件基本上可以执行 shell 脚本所能完成的全部任务。但是,用户初始化文件的主要任务是定义用户工作环境的特征,如用户的搜索路径、环境变量和窗口环境。每个登录 shell 都有其自己的用户初始化文件,下表列出了这些文件。请注意,bash shell 和 ksh93 shell 的缺省用户初始化文件均为 /etc/skel/local.profile

表 2-6 Bash 和 ksh93 用户初始化文件

Shell
用户初始化文件
用途
bash
$HOME/.bash_profile

$HOME/.bash_login

$HOME/.profile

在用户登录时定义用户的环境
ksh93
/etc/profile

$HOME/.profile

在用户登录时定义用户的环境
$ENV
在用户登录文件时定义用户的环境,由 Korn shell 的 ENV 环境变量指定

您可以使用这些文件作为起点,之后修改这些文件,以创建可为所有用户提供通用工作环境的标准文件集。也可以修改这些文件,以便为不同类型的用户提供工作环境。

有关如何为不同类型的用户创建用户初始化文件集的逐步说明,请参见如何定制用户初始化文件

使用站点初始化文件

用户初始化文件可以由管理员和用户进行定制。此重要任务可以通过位于集中位置且分布在全局的名为站点初始化文件的用户初始化文件来完成。使用站点初始化文件,可以不断向用户的工作环境中引入新功能,同时允许用户定制用户初始化文件。

如果您在用户初始化文件中引用站点初始化文件,那么,当用户登录系统时或者当用户启动新 shell 时,对于站点初始化文件进行的所有更新都将自动反映出来。站点初始化文件旨在将系统范围的更改分发到您在添加用户时未参与的用户工作环境中。

可以按照定制用户初始化文件的方式定制站点初始化文件。站点初始化文件通常驻留在一台或一组服务器上,并作为第一条语句出现在用户初始化文件中。而且,每个站点初始化文件都必须与引用它的用户初始化文件属于相同类型的 shell 脚本。

要在 bash 或 ksh93 用户初始化文件中引用站点初始化文件,请在用户初始化文件的开头位置插入类似以下内容的一行:

. /net/machine-name/export/site-files/site-init-file

避免引用本地系统

请勿在用户初始化文件中添加对本地系统的具体引用。无论用户登录哪个系统,用户初始化文件中的指令均应为有效指令。

例如:

Shell 功能

在缺省情况下,系统将为在安装 Oracle Solaris 发行版时创建的用户帐户指定 GNU Bourne-Again Shell (bash)。标准系统 shell bin/sh 现在是 Korn Shell 93 (ksh93)。缺省的交互式 shell 是 Bourne-again (bash) shell /usr/bin/bash。bash shell 和 ksh93 shell 都提供了命令行编辑功能,这意味着您可以在执行命令之前对其进行编辑。要转到另一个 shell,请键入要使用的 shell 的路径。要退出 shell,请键入 exit

下表介绍了本发行版中支持的 shell 选项。

表 2-7 Oracle Solaris 发行版中的基本 Shell 功能

Shell
路径
注释
Bourne-Again Shell (bash)
/usr/bin/bash
为安装程序创建的用户以及 root 角色使用的缺省 shell。

为通过 useradd 命令创建的用户以及 root 角色使用的缺省(交互式)shell 为 /usr/bin/bash。缺省路径为 /usr/bin:/usr/sbin

Korn Shell
/usr/bin/ksh
ksh93 是本 Oracle Solaris 发行版中的缺省 shell
C Shell 和增强的 C Shell
/usr/bin/csh/usr/bin/tcsh
C Shell 和增强的 C Shell
符合 POSIX 的 Shell
/usr/xpg4/bin/sh
符合 POSIX 的 Shell
Z Shell
/usr/bin/zsh
Z Shell

注 - 缺省情况下,Z Shell (zsh) 和增强的 C Shell (tsch) 不会安装在您的系统上。要使用这些 shell 中的任意一种 shell,必须先安装所需的软件包。


Bash Shell 和 ksh93 Shell 历史记录

bash shell 和 ksh93 shell 都会记录您运行的所有命令的历史记录。此历史记录是按用户保留的,也就是说历史记录在各次登录会话之间是持续保留的,代表您所有的登录会话。

例如,如果您在 bash shell 中,如果要查看已运行的命令的完整历史记录,需要键入:

$ history
1 ls
2 ls -a
3 pwd
4 whoami
.
.
.

要显示一定数目的以前命令,请在该命令中包括一个整数:

$ history 2
12 date
13 history

有关更多信息,请参见 history(1) 手册页。

Bash Shell 和 ksh93 Shell 环境变量

bash shell 和 ksh93 shell 存储 shell 识别为环境变量的特殊变量信息。对于 bash shell,要查看当前环境变量的完整列表,请使用 declare 命令,如下所示:

$ declare
BASH=/usr/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINEND=()
BASH_SOuRCE=()
BASH_VERSINFO=([0]=''3'' [1]=''2'' [2]=''25'' [3]=''1''
[4]=''release'' [5]''
.
.
.

对于 ksh93 shell,请使用 set 命令,此命令与 bash shell 的 declare 命令等效。

$ set
  COLUMNS=80
  ENV='$HOME/.kshrc'
  FCEDIT=/bin/ed
  HISTCMD=3
  HZ=''
  IFS=$' \t\n'
  KSH_VERSION=.sh.version
  LANG=C
  LINENO=1
  .
  .
  .

要为任一 shell 输出环境变量,请使用 echoprintf 命令。例如:

$ echo $SHELL
/usr/bin/bash
$ printf ''$PATH\n''
/usr/bin:/usr/sbin

注 - 环境变量在各个会话之间不会持续存在。要设置在各次登录之间保持一致的环境变量,必须在 .bashrc 文件中进行相应的更改。


Shell 可以有两种类型的变量:

环境变量

指定导出到由 shell 产生的所有进程的变量。export 命令用于导出变量。例如:

export VARIABLE=value

可以使用 env 命令显示这些设置。环境变量的子集(如 PATH)影响 shell 本身的行为。

Shell(本地)变量

指定仅影响当前 shell 的变量。

在用户初始化文件中,您可以通过更改预定义变量的值或指定其他变量来定制用户的 shell 环境。

下表提供了有关 Oracle Solaris 发行版中可用的 shell 和环境变量的更多详细信息。

表 2-8 Shell 变量和环境变量的说明

变量
说明
CDPATH
设置由 cd 命令使用的变量。如果将 cd 命令的目标目录指定为相对路径名,cd 命令将首先在当前目录 (.) 中查找目标目录。如果没有找到目标目录,将继续搜索列在 CDPATH 变量中的路径名,直到找到目标目录并完成目录切换。如果没有找到目标目录,则当前的工作目录保持不变。例如,CDPATH 变量设置为 /home/jean/home/jean 下面有两个目录:binrje。如果当前的目录是 /home/jean/bin 目录,那么,当您键入 cd rje 时,即使您未指定全路径名,目录也将切换到 /home/jean/rje
HOME
设置用户起始目录的路径。
LANG
设置语言环境 (locale)。
LOGNAME
定义当前登录用户的名称。登录程序会将 LOGNAME 的缺省值自动设置为在 passwd 文件中指定的用户名。您不应当重置此变量,而只应当引用此变量。
MAIL
设置用户邮箱的路径。
MANPATH
设置可用手册页的分层结构。
PATH
按顺序指定多个目录,当用户键入命令时,shell 将在这些目录搜索要运行的程序。如果该目录不在搜索路径中,用户必须键入命令的完整路径名。

在登录过程中,系统会自动定义缺省的 PATH,并将其设置为 .profile 中指定的路径。

搜索路径的顺序至关重要。如果不同位置中存在相同的命令,将使用首先找到的具有该名称的命令。例如,假设以 shell 语法将 PATH 定义为 PATH=/usr/bin:/usr/sbin:$HOME/bin,且 /usr/bin/home/jean/bin 中均有名为 sample 的文件。如果用户键入 sample 命令而未指定其全路径名,则将使用在 /usr/bin 中找到的版本。

PS1
为 bash shell 或 ksh93 shell 定义 shell 提示符。
SHELL
设置由 makevi 和其他工具使用的缺省 shell。
TERMINFO
指定存储备用 terminfo 数据库的目录。可使用 /etc/profile/etc/.login 文件中的 TERMINFO 变量。有关更多信息,请参见 terminfo(4) 手册页。

如果设置了 TERMINFO 环境变量,系统将首先检查由用户定义的 TERMINFO 路径。如果系统在用户定义的 TERMINFO 目录中找不到终端的定义,它将在缺省目录 (/usr/share/lib/terminfo) 中搜索终端的定义。如果系统在这两个位置均未找到终端的定义,则将终端标识为“哑终端”。

TERM
定义终端。此变量应当在 /etc/profile/etc/.login 文件中重置。当用户调用编辑器时,系统将查找在该环境变量中定义的同名文件。系统将搜索 TERMINFO 所引用的目录以确定终端的特征。
TZ
设置时区。例如,时区可用于在 ls -l 命令中显示日期。如果没有在用户的环境中设置 TZ,将使用系统设置。否则,将使用格林威治标准时间。

定制 Bash Shell

要定制 Bash Shell,请将信息添加到位于起始目录的 .bashrc 文件中。安装 Oracle Solaris 时创建的初始用户具有一个 .bashrc 文件,可设置 PATHMANPATH 和命令提示符。有关更多信息,请参见 bash (1) 手册页。

关于 MANPATH 环境变量

MANPATH 环境变量指定 man 命令查找参考手册页的位置。MANPATH 是根据用户的 PATH 值自动设置的,但它通常包括 usr/share/manusr/gnu/share/man

请注意,用户的 MANPATH 环境变量可独立于 PATH 环境变量进行修改。与用户的 $PATH 中的目录关联的手册页位置不是必须具有一对一等效体。

PATH 变量

当用户使用全路径执行命令时,shell 将使用该路径来查找此命令。但是,当用户仅指定命令名称时,shell 将按 PATH 变量指定的顺序在目录中搜索该命令。如果在一个目录中找到了该命令,shell 将执行该命令。

缺省路径由系统设置。但是,多数用户会通过修改该路径来添加其他命令目录。与设置环境和访问命令或工具的正确版本有关的许多用户问题都是路径定义错误引起的。

路径的设置准则

下面是设置有效 PATH 变量的一些准则:

语言环境变量

LANGLC 环境变量可以为 shell 指定特定于语言环境的转换和约定。这些转换和约定包括时区、整理顺序、日期格式、时间格式、货币格式和数字格式。另外,还可以使用用户初始化文件中的 stty 命令来指示终端会话是否支持多字节字符。

LANG 变量为给定的语言环境设置所有可能的转换和约定。可以通过以下 LC 变量来分别设置本地化的多个方面:LC_COLLATELC_CTYPELC_MESSAGESLC_NUMERICLC_MONETARYLC_TIME


注 - 缺省情况下,Oracle Solaris 11 仅安装基于 UTF-8 的语言环境。


下表介绍了核心 Oracle Solaris 11 语言环境的环境变量值。

表 2-9 LANGLC 变量的值

语言环境
en_US.UTF-8
英语(美国)(UTF-8)
fr_FR.UTF-8
法语(法国)(UTF-8)
de_DE.UTF-8
德语(德国)(UTF-8)
it_IT.UTF-8
意大利语(意大利)(UTF-8)
ja_JP.UTF-8
日语(日本)(UTF-8)
ko_KR.UTF-8
韩语(韩国)(UTF-8)
pt_BT.UTF-8
葡萄牙语(巴西)(UTF-8)
zh_CN.UTF-8
简体中文(中国)(UTF–8)
es_ES.UTF-8
西班牙语(西班牙)(UTF-8)
zh_TW.UTF-8
繁体中文(中国台湾)(UTF-8)

示例 2-1 使用 LANG 变量设置语言环境

在 Bourne shell 或 Korn shell 用户初始化文件中,您将添加如下内容:

LANG=de_DE.ISO8859-1; export LANG

LANG-de_DE.UTF-8; export LANG

缺省的文件权限 (umask)

创建文件或目录时,为文件或目录指定的缺省文件权限由用户掩码进行控制。用户掩码由用户初始化文件中的 umask 命令设置。可以通过键入 umask 并按回车键来显示用户掩码的当前值。

用户掩码中包含下列八进制值:

请注意,如果第一位是零,它将不显示出来。例如,如果用户掩码设置为 022,则将显示 22。

如需确定要设置的 umask 值,请用 666(对于文件)或 777(对于目录)减去所需的权限值。差值就是要用于 umask 命令的值。例如,假设您希望将文件的缺省模式设置为 644 (rw-r--r--),666 与 644 的差值 022 就是将用作 umask 命令参数的值。

还可以使用下表来确定要设置的 umask 值。下表显示了为 umask 的每个八进制值创建的文件权限和目录权限。

表 2-10 umask 权限的值

umask 八进制值
文件权限
目录权限
0
rw-
rwx
1
rw-
rw-
2
r--
r-x
3
r--
r--
4
-w-
-wx
5
-w-
-w-
6
--x
--x
7
---(无)
---(无)

用户初始化文件中的下行用来将缺省的文件权限设置为 rw-rw-rw-

umask 000

定制用户初始化文件

下面是 .profile 用户初始化文件的示例。您可以使用此文件定制自己的用户初始化文件。此示例使用了修改特定站点时将需要的系统名称和路径。

示例 2-2 .profile 文件

(Line 1) PATH=$PATH:$HOME/bin:/usr/local/bin:/usr/gnu/bin:. 
(Line 2) MAIL=/var/mail/$LOGNAME 
(Line 3) NNTPSERVER=server1 
(Line 4) MANPATH=/usr/share/man:/usr/local/man 
(Line 5) PRINTER=printer1 
(Line 6) umask 022 
(Line 7) export PATH MAIL NNTPSERVER MANPATH PRINTER
  1. 定义用户的 shell 搜索路径。

  2. 设置用户邮件文件的路径。

  3. 定义用户的时间/时钟服务器。

  4. 定义用户的手册页搜索路径。

  5. 定义用户的缺省打印机。

  6. 设置用户的缺省文件创建权限。

  7. 设置所列出的环境变量。