Chinaunix首页 | 论坛 | 博客
  • 博客访问: 576362
  • 博文数量: 113
  • 博客积分: 3322
  • 博客等级: 少校
  • 技术积分: 1565
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-04 11:38
文章分类

全部博文(113)

文章存档

2012年(21)

2010年(92)

分类:

2010-03-03 09:37:35

第十章 执行用户管理
目标要求:
描述用户管理的基本情况
管理用户帐号
管理初始化文件
系统管理的一个重要的任务就是为访问系统的任何一个用户设置合适的系统帐户。任何一个用户需要有一个独一无二的用户名和用户ID(UID),家目录和登陆shell,你也能够决定用户需要访问的组。
一个用户帐号有以下几不部分组成:
用户名:用户登陆系统的唯一的名字。用户名也叫做登陆名。
口令:当用户访问系统登陆需要输入的结合了最大256个字母,数字,或者特殊字符的一种组合。
UID:用户在系统中独一无二的系统标示。
GID:独一无二的系统组标示,标示用户属于那个组。
注释:标示用户信息。也可以理解为用户情况的一个简单描述信息
用户的家目录:用户登陆系统以后用户所在的目录。这个目录存储了用户的配置文件。
用户登陆shell:通过用户shell定义的用户初始化文件设置用户的工作环境

存储用户帐号信息的系统文件
solaris10 OS中存储用户帐号和组信息在下列文件中:
/etc/passwd
/etc/shadow
/etc/group
授权登陆系统帐号的条目在/etc/passwd文件中。
/etc/shadow是一个包含password加密的分割文件。能够控制用户口令,限制口令的生存期。也有一些保持信息在这个文件中。
/etc/group定义了默认系统组的条目。你能够通过这个文件来创建一个新的用户和修改系统中已经存在了的用户。
/etc/passwd文件
/etc/passwd文件是系统安装以后生成的一个重要文件。你能够重复编辑这个文件。代替用SMC和命令行工具来维持这个文件。
/etc/passwd文件中的任何一个条目包含7个部分。每个部分用冒号分割。
loginID:UID:GID:comment:home_directory:login_shell
loginID:用户登陆的帐户名。用户名的组成由26个大小写字母和10个数字组成。用户名不能包括下划线和空格。
x:代表用户加密封装的password对应于/etc/shadow
UID:UID的范围为100-60000所有的UID必须是唯一的。
GID的范围也是100-60000。
Comment:典型的包含用户的完整名称。
home_directory:包含用户家目录的完整路径。
login_shell 定义用户登陆的shell。Solaris中定义了6种默认shell::Bourne shell  Korn shell  C shell  Z shell  BASH shell  TC shell。

root UID:0  超级用户帐号,几乎没有任何约束并且不考虑其他所有的登陆,保护和许可;可以进入系统访问
daemon UID:1  控制后台进程的系统帐号
bin UID:2  管理大部分命令的帐号
sys UID:3  管理许多系统文件的帐号
adm UID:4  管理某些管理文件的帐号
lp UID:71  打印服务帐号
smtp UID:0  smtp邮件者使用简单网络管理协议。SMTP是INTERNET标准协议
uucp UID:5  为UNIX-to-UNIX拷贝程序(UUCP)捆绑数据文件和目标的帐号
nuucp UID:6  使用远程系统登陆到主机传送文件的帐号
listen UID:37  网络监听帐号
nobody  UID:60001  匿名帐号,当独立于root用户建立一个需求时分派NFS服务器。nobody帐号分派软件进程时不需要任何特殊的权限。
noaccess  UID:60002 需通过一些应用程序而不登陆系统时,为了访问系统而为一个用户或者进程分派的帐号
nobody4 UID:65534 SunOS4.x 的匿名帐号

/etc/shadow文件
/etc/shadow文件是系统安装以后生成的一个重要文件。你能够重复编辑这个文件。代替用SMC和命令行工具来维持这个文件。只有root用户可以读/etc/shadow文件。
文件条目格式:
loginID:password:lastchg:min:max:warn:inactive:expire
loginID:用户登陆名
password:一个13个字符的封装password。*LK*表示用户已经被锁定。NP指定用户没有可用的password。
Lastchg:这个时间值为1970-1-1到最后一次口令修改的时间。
Min:口令修改要求的最小时间。
max: 用户登陆系统修改新口令之前的口令最大生存时间。
warn: 在口令到期之间提醒用户修改口令的天数。
inactive: 在用户帐号被锁定以前允许用户的交互天数。
expire用户帐号到期的时间。如果超过了这个时间用户将不能再登陆系统。

/etc/group文件
文件条目格式:
groupname:group-password:GID:username-list
groupname:被分配的组名。组名最大为8个字符。
group-password:通常为空或者是星号。这个是早期UNIX的产物。
GID:独一无二的GID。GID的范围是100-60000。
username-list 列出了组中所包含的用户。

/etc/default/passwd文件
为/etc/default/passwd中的参数设置合适的值来控制系统中所有用户的口令管理。
MAXWEEKS 设置口令有效的最大期限。
MINWEEKS 设置口令在被更改之前的最短期限。
PASSLENGTH 设置口令的最小的字符数。有效条目为6,7,8。
WARNWEEKS 当用户口令即将到期的时候,提醒用户口令到期的时间。(这个条目在/etc/default/passwd文件中默认是不存在的,但是你可以增加)
口令生命参数MAXWEEKS MINWEEKS WARNWEEKS是默认值。如果在/etc/shadow为单一用户设置了这些值的话,单个用户将忽略/etc/default/passwd中的设置。
NAMECHECK=NO设置密码控制用来校验用户是否使用和他用户想对应的口令登陆。
HISTORY=0 强迫passwd程序当重复同一口令登陆大于26的时候更改用户口令。
DICTIONLIST= passwd程序时查询的数据字典。
DICTIONDBDIR=/var/passwd 数据库字典所在的位置。
建立数据库字典可以参考mkpwdict命令。

口令管理
在solaris10 OS中安全管理被加强了。Pam_unix_auth模块工具为本地用户设置帐户锁。帐户锁通过调节参数在/etc/security/policy.conf的LOCK_AFTER_RETRIES和/etc/user_attr文件中的lock_after-retries来进行启动。
LOCK_AFTER_RETRIES=YES|NO参数指定当本地用户登陆失败次数等于或者大于允许的重试次数则帐号被锁定。这个重试的次数在/etc/default/login的RETRIES中定义。
Passwd命令也有两个选项,-N和-u。-N选项为非登陆用户创建一个口令项。-u选项为以前被锁定的用户解锁。

管理系统帐号
这部分介绍2种通过命令行管理用户帐号的办法。在solaris10 OS以前管理用户帐号的命令和在solaris10 OS上提供的一个新的管理用户的命令行工具。

介绍命令行工具
在solaris10 OS提供以下命令行管理工具:
Useradd 增加新的用户帐号
Usermod 修改用户帐号
Userdel  删除用户帐号
Groupadd 增加新的组条目
Groupmod 修改组条目
Groupdel  删除组条目

在solaris9和solaris10上还提供了一个smuser和smgroup命令。来进行用户和组的管理。
Smuser使得你通过相应的子命令来管理本地系统的一个或者多个用户帐号。
Add 增加新的用户帐号
Modify 修改用户帐号
Delete 删除用户帐号
List 列出一个或多个用户条目。

Smgroup使得你通过相应的子命令来管理本地系统的一个或者多个组条目。
Add 增加新的组条目
Modify 修改组条目
Delete 删除组条目
List 列出一个或多个组条目。
Smuser的命令格式为:
/usr/sadm/bin/smuser subcommand [auth_args] – [subcommand_args]

创建用户条目
使用useradd和smuser add来增加新的用户条目。这些增加的新的用户条目驻留在/etcpasswd /etc/shadow文件中。
这些命令也能够自动复制所有初始化文件从/etc/skel目录到用户的家目录。
useradd [-u uid] [-g gid] [-G gid [,gid,..]] [-d dir] [-m] [-s shell] [-c comment] loginname
在这里就不详细的叙述这些了。想毕各位管理员朋友经常会有这个建立用户吧。个人感觉useradd比smuser更容易使用。

修改用户帐号
usermod [-u uid[-o]] [-g group] [-G group [,group…]] [-d dir] [-m] [-s shell] [-c comment] [-l    newlogname] [-f inactive] [-e expire] login

删除用户帐号
userdel [-r] login

创建组条目
groupadd [-g gid [-o]] groupname

修改组条目
groupmod [-g gid [-o]] [-n name] groupname

删除组条目
Groupdel groupname

使用smc工具管理用户
在这里SMC是图形界面在这里就不在描述了。(这个比较直观容易理解)

登陆的故障处理
登陆错误消息分为2种一种是命令行登陆错误消息,另一种是CDE登陆错误消息。
命令行错误消息一般情况下是:
Login incorrect 出现这个情况一般情况下是密码不正确或者你所输入的用户不存在。
Permission denied 通常情况下是管理员锁定了用户帐号密码,或者用户帐号被停止
Password will not work at lockscreen 通常情况下是由于CAP lock键引起的。
No shell 这个信息提示用户的shell并不存在,检查/etc/passwd文件是不是有问题了。
No directory! Logging in with home=/ 这个信息提示用户并不能够访问家目录。
Choose a new password(followed by the new password: pompt) 这个信息提示用户需要修改口令。
Couldn’t fork a process! 这个信息的出现是因为系统运行已经达到了最大的进程数。需要增加相应的进程数。

在CDE条件下登陆的问题
CDE的相关问题范围从用户不能登陆系统,用户的自定义环境不能合适的加载。总的来说就是用户从CDE处不能得到返回的错误消息。下面的文件和目录提供了CDE故障处理的信息。
/usr/dt/bin/Xsession这个文件是登陆管理的配置脚本。这个文件并不能被编辑。Xsession的第一个指定用户的脚本是$HOME/.dtprofile。
$HOME/.dtprofile 默认情况下这个文件除了包含一些例子并没有内容。它包含一些为登陆会话建立的echo陈述和DTSOURCEPROFILE变量的设置。但是,它也包含一些关于如何编辑它的信息。用户可以编辑这个文件增加指定用户的环境变量。
DTSOURCEPROFILE=true 这行允许用户的$HOME/.login(csh用户)文件或者$HOME/.profile(其他shell用户)文件开始启动进程。
有时.login和.profile文件包含问题会引起shell的crash。如果.dtprofile文件的源文件是使用包含问题的.login和.profile文件会使desktop启动失败。
因此,没有desktop出现,代替系统重新显示solaris CDE登陆窗口。启动错误通常来自于.login和.profile文件,通常注意$HOME/.dt/startlog文件。
$HOME/.dt/ sessions 这个目录包含着用户自定义的desktop和决定用户登陆以后启动的应用的配置文件。查看最近的改变然后对比原来的.old的文件寻找用户登陆失败的原因。
$HOME/.dt 当退出系统以后删除整个的.dt目录。当再一次登陆的时候会重新建立.dt。

CDE错误消息的定位
/var/dt/Xerrors  用户登陆solaris OS CDE发生的错误消息
$HOME/.dt/startlog solaris OS CDE在启动Xsession脚本和处理.dtprofile .login .profile文件时发生的错误信息。
$HOME/.dt/errorlog.old solaris OS CDE在启动Xsession以后发生的错误消息。
$HOME/.dt/errorlog.older solaris OS CDE在启动Xsession以后发生的错误消息。
$HOME/.dt/sessionlogs 为Session manager Windows manager错误所建立的会话目录。

介绍用户的初始化文件
由于solaris10的这个部分写的并不是很完整。所以,自己根据原来8。9的内容的情况下写的一些东西。可以配合再看10的时候作为一个参考。
shell类别      系统大环境初始化文件        用户初始化文件         shell路径
Bourne          /etc/profile                       $HOME/.profile         /bin/sh
Korn             /etc/profile                        $HOME/.profile         /bin/ksh
C                 /etc/.login                         $HOME/.cshrc           /bin/csh
Z                 /etc/zshenv                        $HOME/.zshenv          /bin/zsh
                   /etc/zprofile                      $HOME/.zprofile     
                   /etc/zshrc                         $HOME/.zlogin     
                    /etc/zlogin      
BASH            /etc/profile                      $HOME/.bash_profile     /bin/bash
                                                        $HOME/.bash_login
                                                        $HOME/.profile
TC              /etc/csh.cshrc                   $HOME/.tcshrc              /bin/tcsh
                 /etc/csh.login                     or
                                                      $HOME/.cshrc
阅读(2927) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~