Solaris8系统用户管理与安全设置教程
发布时间: 2025-08-14 01:20:55 阅读量: 1 订阅数: 8 


Solaris 8系统管理与配置指南
# Solaris 8 系统用户管理与安全设置教程
## 1. 用户与组操作练习
### 1.1 用户与组相关文件检查
在系统管理中,对用户和组相关文件的检查是基础操作。具体检查内容如下:
|操作|详情|
| ---- | ---- |
|检查 `/etc/passwd` 文件|用户 user3、user4、user5 使用的 shell 全路径名分别为 `/bin/ksh`、`/bin/csh`、`/bin/sh`。|
|检查 `/etc/shadow` 文件|用户 locked1、cleared1、nopass1 的密码字段内容分别为 `*LK*`、`none`、`NP`。|
|检查 `/etc/group` 文件|验证 user3 和 user4 是否为 class1 组的二级成员,user3 和 user4 的名字应列在 class1 组的最后字段。|
### 1.2 用户登录测试
不同状态的用户登录情况不同,以下是具体测试结果:
|用户|登录情况|
| ---- | ---- |
|locked1|无法登录。|
|cleared1|需选择初始密码,密码前六位至少包含两个字母和至少一个数字或特殊字符。|
|nopass1|无法直接登录,但 root 用户可使用 `su` 命令切换到该用户。|
|user5|登录前需提供新密码,登录后尝试修改密码会提示距离上次修改不足 1 天,权限被拒绝。|
### 1.3 用户账户修改与删除
对用户账户的修改和删除操作,可通过相应命令实现:
- 使用 `usermod` 命令修改 locked1 的 UID 号、组和登录名,修改结果会记录在 `/etc/passwd` 文件中。
- 使用 `userdel` 命令删除用户 cleared1 及其主目录,删除后 `/export/home/cleared1` 应不存在。
## 2. 初始化文件理解
### 2.1 初始化文件类型
用户登录系统时,登录 shell 会查找并执行两种不同类型的初始化文件:
- **系统级初始化文件**:由 Solaris 操作系统提供,位于 `/etc` 目录,主要有 `/etc/profile` 和 `/etc/.login`。Bourne 和 Korn 登录 shell 在登录时会查找并执行 `/etc/profile`,C 登录 shell 会查找并执行 `/etc/.login`。默认情况下,这两个文件会检查磁盘使用配额、打印 `/etc/motd` 文件中的每日消息以及检查邮件,但如果用户主目录中存在 `.hushlogin` 文件,则不会在屏幕上打印这些消息。
- **用户初始化文件**:放置在每个用户的主目录中,主要用于定义用户工作环境的特征,如搜索路径、环境变量和窗口环境等。文件所有者或 root 用户可以更改或自定义这些文件的内容。
### 2.2 不同 shell 的初始化文件
Solaris 8 操作系统中的六种 shell 对应的初始化文件如下表所示:
|Shell|系统级初始化文件|登录时读取的用户初始化文件|登录后启动新 shell 时读取的用户初始化文件|Shell 路径名|
| ---- | ---- | ---- | ---- | ---- |
|Bourne|`/etc/profile`|`$HOME/.profile`|无|`/bin/sh`|
|Korn|`/etc/profile`|`$HOME/.profile`|`$HOME/.kshrc`|`/bin/ksh`|
|C|`/etc/.login`|`$HOME/.cshrc`|无|`/bin/csh`|
|Z|`/etc/zshenv`、`/etc/zprofile`、`/etc/zshrc`、`/etc/zlogin`|`$HOME/.zshenv`、`$HOME/.zprofile`、`$HOME/.zlogin`、`$HOME/.zshrc`|无|`/bin/zsh`|
|BASH|`/etc/profile`|`$HOME/.bash_profile`、`$HOME/.bash_login`、`$HOME/.profile`|`$HOME/.bashrc`|`/bin/bash`|
|TC|`/etc/csh.cshrc`、`/etc/csh.login`|`$HOME/.tcshrc` 或 `$HOME/.cshrc`|无|`/bin/tcsh`|
## 3. 工作环境定制
### 3.1 shell 变量类型
shell 支持两种类型的变量:
- **环境变量**:每个启动的 shell 程序都会从这些变量中获取用户环境的信息。
- **局部变量**:仅影响当前 shell,启动的任何子 shell 都不会了解这些变量。
### 3.2 部分可用变量
部分用于定制用户 shell 环境的变量如下表所示:
|变量名|设置者|描述|
| ---- | ---- | ---- |
|`LOGNAME`|登录程序|定义用户的登录名。|
|`HOME`|登录程序|设置用户主目录的路径,是 `cd` 命令的默认参数。|
|`SHELL`|登录程序|设置默认 shell 的路径。|
|`PATH`|登录程序|设置 shell 搜索命令的默认路径。|
|`MAIL`|登录程序|设置用户邮箱的路径。|
|`TERM`|无默认设置|定义终端。|
|`LPDEST`|无默认设置|设置用户的默认打印机。|
### 3.3 设置环境变量
在用户初始化文件中设置环境变量的方法如下:
|Shell|设置方式|示例|
| ---- | ---- | ---- |
|Bourne 或 Korn Shell|`VARIABLE=value ; export VARIABLE`|`PS1="$HOSTNAME ! $ " ; export PS1`|
|C Shell|`setenv variable value`|`setenv prompt "\! 'uname -n' % "`|
### 3.4 初始化文件模板
Solaris 操作系统提供了一组初始化文件模板,位于 `/etc/skel` 目录。不同 shell 的模板文件如下表所示:
|Shell|初始化文件模板|用户初始化文件|
| ---- | ---- | ---- |
|Bourne|`/etc/skel/local.profile`|`$HOME/.profile`|
|Korn|`/etc/skel/local.profile`|`$HOME/.profile`|
|C|`/etc/skel/local.login`、`/etc/skel/local.cshrc`|`$HOME/.login`、`$HOME/.cshrc`|
## 4. 修改初始化文件练习
### 4.1 练习目标与准备
本次练习的目标是修改 `/etc/skel` 目录中的初始化文件模板,并创建使用这些模板的用户。练习需要之前练习的技能,创建的用户在后续课程中会用到。
### 4.2 具体任务步骤
```mermaid
graph LR
A[登录 root 并打开终端窗口] --> B[切换到 /etc/skel 目录]
B --> C[使用 vi 编辑 local.profile 文件]
C --> D[使用 admintool 创建用户 user9]
D --> E[登录 user9 并验证变量设置]
E --> F[为 user9 创建 .kshrc 文件]
F --> G[再次登录 user9 验证 .kshrc 文件]
G --> H[登录 root 并使用 useradd 创建用户 user10]
H --> I[登录 user10 记录初始化文件]
I --> J[复制 local.profile 到 .profile]
J --> K[再次登录 user10 验证变量设置]
K --> L[登录 root]
```
具体步骤如下:
1. 登录 root 并打开终端窗口。
2. 切换到 `/etc/skel` 目录:
```bash
# cd /etc/skel
```
3. 使用 `vi` 编辑 `local.profile` 文件:
```bash
# vi local.profile
```
- 编辑 `PATH` 变量行:
```bash
PATH=/usr/sbin:/sbin:/usr/dt/bin:/usr/openwin/bin:/bin:/usr/bin:/usr/ucb:/etc:.
```
- 在 `PATH` 变量下方添加以下行:
```bash
EDITOR=vi
LPDEST=printer1
EXINIT='set showmode autoindent number'
ENV=$HOME/.kshrc
```
- 修改 `export PATH` 行为 `export PATH EDITOR LPDEST EXINIT ENV`。
4. 使用 `admintool` 创建新用户 user9,完成后退出:
|用户信息|详情|
| ---- | ---- |
|用户名|user9|
|用户 ID|1009|
|主组|10|
|登录 shell|Korn|
|密码|cangetin|
|主目录|/export/home/user9|
5. 注销并重新以 user9 身份登录,选择 CDE,打开终端窗口。
6. 验证 `PATH`、`LPDEST`、`EDITOR`、`EXINIT` 和 `ENV` 变量是否按 `local.profile` 文件中的修改设置:
```bash
$ echo $PATH
$ echo $LPDEST
$ echo $EDITOR
$ echo $EXINIT
$ echo $ENV
```
7. 在用户主目录创建 `.kshrc` 文件:
```bash
$ cd
$ vi .kshrc
```
插入以下内容:
```bash
set –o noclobber
set –o ignoreeof
alias h=history
alias c=clear
PS1='$PWD$ '
```
8. 注销并再次以 user9 身份登录,打开终端窗口,验证新变量是否生效:
```bash
$ cd /tmp
$ cd
$ c
$ h
```
9. 注销并以 root 身份登录,使用 `useradd` 创建新用户 user10,并设置密码为 cangetin:
```bash
# useradd -u 1010 -g 10 -d /export/home/user10 -m -s /bin/ksh -c "SA-238 Student" user10
6 blocks
# passwd user10
New password: cangetin
Re-enter new password: cangetin
```
10. 注销并以 user10 身份登录,选择 CDE,打开终端窗口,查看主目录中的 shell 初始化文件:
```bash
$ ls -la
```
找出与 `/etc/skel/local.profile` 相同的文件。
11. 复制 `local.profile` 到 `.profile`:
```bash
$ cp local.profile .profile
```
12. 注销并再次以 user10 身份登录,验证为 user9 登录设置的变量是否也为该登录设置:
```bash
$ echo $PATH
$ echo $LPDEST
$ echo $EDITOR
$ echo $EXINIT
$ echo $ENV
```
13. 注销并以 root 身份登录。
## 5. 系统安全管理目标
系统安全管理至关重要,完成相关操作后,应具备以下能力:
- 创建 `/var/adm/loginlog` 文件以保存失败的登录尝试。
- 使用 `finger`、`last` 和 `rusers` 命令监控系统使用情况。
- 使用 `su` 命令成为系统上的 root 用户或其他用户。
- 修改 `/etc/default/login` 文件以限制 root 访问。
- 使用 `id` 和 `groups` 命令识别用户及其组成员身份。
- 分别使用 `chown` 和 `chgrp` 命令更改文件的所有者或文件的组。
- 解释特殊权限 `setuid`、`setgid` 和粘滞位如何影响系统安全。
- 创建、修改和删除文件上的访问控制列表 (ACL)。
- 通过维护三个基本网络文件 `/etc/hosts.equiv`、`$HOME/.rhosts` 和 `/etc/ftpusers` 控制远程登录访问。
## 6. 系统安全管理概述
系统管理员的两项重要职责是控制访问和保护系统上的数据。Solaris 操作系统提供了一些标准安全功能,用于控制未经授权的用户访问以及保护本地和远程系统上的文件。管理用户、文件、系统和网络级别的安全的基本步骤如下:
- 维护密码和登录控制。
- 监控系统使用情况。
- 限制对文件中包含的数据的访问。
- 跟踪 root 登录。
- 监控 `setuid` 程序。
- 控制网络上的远程访问。
## 7. 管理登录和访问控制
### 7.1 密码管理
系统上的所有账户都必须有密码,任何没有密码的账户都允许未经授权的用户访问本地主机和整个网络。`pwconv` 命令可用于创建和更新 `/etc/shadow` 文件,具体操作如下:
- 如果 `/etc/shadow` 文件不存在,`pwconv` 会根据 `/etc/passwd` 文件的信息创建它。
- 如果 `/etc/shadow` 文件已存在,会执行以下操作:
- 将 `/etc/passwd` 文件中存在但 `/etc/shadow` 文件中不存在的条目添加到 `/etc/shadow` 文件中。
- 将 `/etc/shadow` 文件中存在但 `/etc/passwd` 文件中不存在的条目从 `/etc/shadow` 文件中移除。
### 7.2 记录失败的登录尝试
当用户从命令行本地或远程登录系统时,登录程序会参考 `/etc/passwd` 和 `/etc/shadow` 文件,通过验证输入的用户名和密码来认证用户。如果用户名不在 `/etc/passwd` 文件中或密码不正确,登录程序将拒绝用户访问系统。
为了记录失败的登录尝试,可以创建 `/var/adm/loginlog` 文件,具体操作步骤如下:
1. 创建文件并设置权限:
```bash
# touch /var/adm/loginlog
```
确保该文件只有 root 用户有读写权限。
2. 记录规则:
所有失败的登录活动在五次失败尝试后会自动写入该文件。`loginlog` 文件为每次失败尝试包含一个条目,每个条目包含用户的登录名、TTY 设备和失败尝试的时间。如果失败尝试少于五次,则不会将活动记录到该文件中。
## 8. 系统安全管理操作总结
|操作类型|操作内容|操作命令或文件|
| ---- | ---- | ---- |
|用户与组管理|创建、修改和删除用户账户|`useradd`、`usermod`、`userdel`|
| |创建、修改和删除组账户|`groupadd`、`groupmod`、`groupdel`|
|初始化文件管理|修改系统级和用户级初始化文件|编辑 `/etc/profile`、`/etc/.login`、`$HOME/.profile` 等文件|
| |使用初始化文件模板|操作 `/etc/skel` 目录下的模板文件|
|系统安全管理|记录失败登录尝试|创建 `/var/adm/loginlog` 文件|
| |监控系统使用情况|`finger`、`last`、`rusers` 命令|
| |切换用户身份|`su` 命令|
| |限制 root 访问|修改 `/etc/default/login` 文件|
| |识别用户和组|`id`、`groups` 命令|
| |更改文件所有者和组|`chown`、`chgrp` 命令|
| |管理特殊权限|了解 `setuid`、`setgid` 和粘滞位|
| |管理访问控制列表|创建、修改和删除 ACL|
| |控制远程登录访问|维护 `/etc/hosts.equiv`、`$HOME/.rhosts`、`/etc/ftpusers` 文件|
```mermaid
graph LR
A[用户与组管理] --> B[创建用户]
A --> C[修改用户]
A --> D[删除用户]
A --> E[创建组]
A --> F[修改组]
A --> G[删除组]
H[初始化文件管理] --> I[修改系统级文件]
H --> J[修改用户级文件]
H --> K[使用模板文件]
L[系统安全管理] --> M[记录失败登录]
L --> N[监控系统使用]
L --> O[切换用户身份]
L --> P[限制 root 访问]
L --> Q[识别用户组]
L --> R[更改文件权限]
L --> S[管理特殊权限]
L --> T[管理 ACL]
L --> U[控制远程访问]
```
通过以上操作和管理,可以有效地对 Solaris 8 系统进行用户管理和安全设置,保障系统的正常运行和数据安全。在实际操作中,应严格按照步骤进行,确保每个环节的正确性。同时,要定期检查系统的安全状况,及时发现和处理潜在的安全问题。
0
0
相关推荐










