技术活动
CUUG学员就业信息
学员感言、就业资讯
报名热线
文档
当前您的位置:首页 > 技术活动 > 技术中心 > 文档
AIX 用户管理-CUUG

  用户管理是系统的重要组成部分,每个登录到系统中的用户都有一个用户帐号,一般同时还有一个密码(在一个安全的系统中,一个有效的用户必须带有一个密码)。如果密码正确,该用户就能够以这个帐号登录,获得该帐号的各种特权。用户的密码保存在/etc/passwd 和/etc/security/passwd 文件中。

  用户组是对一个受保护资源共享存取权限的用户集合。用户组带有一个标识符,由成员和管理员组成。创建组的人通常是该用户组的第一个管理员。用户组有三种类型:

  用户定义组:这种用户组用于在系统中共享文件的人员,例如:同一部门中或同一项目下工作的人员。通常情况下这种用户不要创建太多。

  系统管理员组:这种用户组对应于 SYSTEM 用户组。SYSTEM 用户组的成员允许不具备超级用户权限的管理员执行一些系统维护任务。

  系统定义组:有一些用户组是操作系统定义的,系统所创建的非管理员用户的缺省用户组为 STAFF。SECURITY 用户组具有执行安全管理的特权。

  1、用户管理命令

  下面是一些用于系统管理的重要命令:

  mkuser 创建新用户。

  passwd 创建或修改用户口令。

  chuser 修改除了用户口令外的用户属性。

  lsuser 显示用户属性。

  rmuser 删除用户。

  login 用户登录。

  chfn 修改用户的描述信息,用户可以任意填写诸如地址、全名、别名等信息。

  Finger 命令会显示用户的描述信息。

  chsh 修改用户的 Shell。

  who 显示当前登录的用户。

  2、/etc/passwd 文件

  /etc/passwd文件中保存用户的基本信息。这个 ASCII 文件中包含所有用户的入口。每个入口定义了用户的基本属性。用mkuser命令添加用户时,会自动更新/etc/passwd 文件。

  /etc/passwd 文件中每个入口用冒号(:)分割不同的属性,格式如下:

  Name:Password: UserID:PrincipleGroup:Gecos: HomeDirectory:Shell

  Password 字段的值如果是星号(*)表明密码无效;如果是感叹号(!)表明密码在影子文件/etc/security/passwd 中。一般情况下,该字段是一个感叹号(!)。如果password 字段是星号(*),同时要求认证用户,那么用户将无法登录系统。

  Shell 字段指明用户调用 login或su 命令时所执行的初始程序或 shell。Korn shell是 AIX 操作系统标准的登录 shell,与 Bourne shell 向后兼容。如果用户没有定义,缺省使用/usr/bin/sh(Bourne shell)。 Bourne shell 是 Korn shell 的子集。

  用 mkuser 创建用户时,password 字段总是初始化为星号(*)——标明一个无效的密码。要用 passwd 或 pwdadm 命令设置密码。一旦设置好密码,感叹号(!)将填入/etc/passwd 文件,表明在/etc/security/passwd 文件中有加密的密码。

  3、/etc/environment 文件

  /etc/environment 文件包含所有进程要用到的基本环境变量。每启动一个新进程,exec 函数按 Name=Value 格式生成一个称为“环境”的字符串排列,每个字符串左边的 Name 叫做环境变量或 shell 变量。每个命令在开始运行前都会去检查环境变量。登录时,系统在读取用户的登录脚本。profile 之前,先根据 environment 文件设定环境变量。

  下面是构成基本环境的部分变量:

  HOME:用户登录的完整路径或用户主目录。Login 程序根据/etc/passwd 文件中的相应字段来设置该值。

  LANG:用户所在的国际区域设置。在系统安装时,该变量设置在/etc/environment文件中。

  PATH:当不按完整路径执行命令时,将到 PATH 指定的一系列目录中去搜寻所执行的命令。PATH 中不同的目录名用冒号隔开。

  TZ:时区信息。TZ 环境变量在/etc/environment 中设置。

  4、创建和修改用户密码

  passwd命令在/etc/security/passwd文件中创建一个加密的passwd入口,然后把/etc/passwd 文件中的相应 Password 字段从星号(*)改成感叹号(!)。下面例子显

  示该命令如何修改用户密码:

  passwd

  如果有旧密码,并且不是超级用户,passwd命令先提示输入旧密码,之后命令两次提示输入新密码(用于确认)。

  5、显示当前登录用户

  who 命令显示当前本地系统中在线的所有用户信息,包含登录名、登录终端名、登录日期和时间。输入 whoami 或 who am I 显示自己登录的名名、终端名、日期和时间。如果是从远程登录的用户,同时还会显示远程主机名。who 命令还能显示至上次键盘活动以来流逝的时间和命令解释器(shell)、登录进程等在初始化过程中产生进程的进程号。

  下面例子显示 who命令的不同用法:

  (1)显示目前登录到系统中的所有用户的信息:

  # who

  root pts/0 Nov 17 10:20(sv1166a.itsc.aus)

  root pts/2 Nov 23 10:45(sv1121c.itsc.aus)

  root pts/3 Nov 23 10:48(sv1121c)

  (2)显示自己的用户名:

  # who am I

  root pts/3 Nov 23 10:48(sv1121c)

  (3)显示当前系统的运行级别:

  # who -r

  . run-level 2 Nov 17 10:19 2 0 S

  (4)显示由 init 产生并且当前活动的进程

  # who -p

  rc . Nov 17 10:19 4:12 2896 id=rc

  fbcheck . Nov 17 10:19 4:12 2898 id=fbcheck

  srcmstr . Nov 17 10:19 4:12 2900 id=srcmstr

  rctcpip . Nov 17 10:19 4:12 4648 id=rctcpip

  rcnfs . Nov 17 10:19 4:12 4650 id=rcnfs

  cron . Nov 17 10:19 4:12 4652 id=cron

  piobe . Nov 17 10:19 4:12 4984 id=piobe

  qdaemon . Nov 17 10:19 4:12 4986 id=qdaemon

  writesrv . Nov 17 10:19 4:12 4988 id=writesr

  uprintfd . Nov 17 10:19 4:12 4990 id=uprintf

  pmd . Nov 17 10:19 4:12 8772 id=pmd

  dt . Nov 17 10:19 4:12 9034 id=dt

  id 命令也可以显示用户当前登录信息

  6、修改用户的登录 Shell

  chsh 命令修改用户的登录 shell 属性,该属性定义了用户登录后运行的初始程序。该属性在/etc/passwd文件中指定。缺省情况下 chsh 命令修改的是调用命令者的登录 shell。chsh 命令是交互式的。运行时,系统列出可用的 shell 及用户当前的 shell 属性,然后提示修改 shell,输入时必须包含可用 shell 的完整路径。只要具有 chuser 命令的可执行权限,就可以修改别的用户的登录 shell。

  7、修改 SHELL 提示符

  shell 使用下述三种提示符变量:

  PS1:正常的系统提示符。

  PS2:当 shell 等待输入时的提示符。

  PS3:运行 select 子命令时的提示符。

  对这些 shell 变量的修改一直作用到用户退出。在。env 文件中对这些变量设置可使提示符的改变永久有效。

  下列命令显示当前的 PS1 变量的值:

  # echo "prompt is $PS1":

  prompt is $

  下列命令显示把当前提示符改成 Ready>:

  export PS1="Ready> "

  下列命令显示把要求继续的提示符改成 Enter more->:

  export PS2="Enter more->"

  下列命令显示把运行 select 子命令提示符改成 Root->:

  export PS3="Root->”