第十四章、Linux 账号管理与 ACL 权限配置
最近升级日期:2009/09/09

大标题的图示重点回顾
  • Linux 操作系统上面,关于账号与群组,其实记录的是 UID/GID 的数字而已;
  • 使用者的账号/群组与 UID/GID 的对应,参考 /etc/passwd 及 /etc/group 两个文件
  • /etc/passwd 文件结构以冒号隔开,共分为七个字段,分别是『账号名称、口令、UID、GID、全名、家目录、shell』
  • UID 只有 0 与非为 0 两种,非为 0 则为一般账号。一般账号又分为系统账号 (1~499) 即可登陆者账号 (大于 500)
  • 账号的口令已经移动到 /etc/shadow 文件中,该文件权限为仅有 root 可以更动。该文件分为九个字段,内容为『 账号名称、加密口令、口令更动日期、口令最小可变动日期、口令最大需变动日期、口令过期前警告日数、口令失效天数、 账号失效日、保留未使用』
  • 使用者可以支持多个群组,其中在新建文件时会影响新文件群组者,为有效群组。而写入 /etc/passwd 的第四个字段者, 称为初始群组。
  • 与使用者创建、更改参数、删除有关的命令为:useradd, usermod, userdel等,口令创建则为 passwd;
  • 与群组创建、修改、删除有关的命令为:groupadd, groupmod, groupdel 等;
  • 群组的观察与有效群组的切换分别为:groups 及 newgrp 命令;
  • useradd 命令作用参考的文件有: /etc/default/useradd, /etc/login.defs, /etc/skel/ 等等
  • 观察用户详细的口令参数,可以使用『 chage -l 账号 』来处理;
  • 用户自行修改参数的命令有: chsh, chfn 等,观察命令则有: id, finger 等
  • ACL 可进行单一个人或群组的权限管理,但 ACL 的启动需要有文件系统的支持;
  • ACL 的配置可使用 setfacl ,查阅则使用 getfacl ;
  • 身份切换可使用 su ,亦可使用 sudo ,但使用 sudo 者,必须先以 visudo 配置可使用的命令;
  • PAM 模块可进行某些程序的验证程序!与 PAM 模块有关的配置文件位于 /etc/pam.d/* 及 /etc/security/*
  • 系统上面账号登陆情况的查询,可使用 w, who, last, lastlog 等;
  • 在线与使用者交谈可使用 write, wall,脱机状态下可使用 mail 传送邮件!

大标题的图示本章习题
  • 情境模拟题一:想将本服务器的账号分开管理,分为单纯邮件使用,与可登陆系统账号两种。其中若为纯邮件账号时, 将该账号加入 mail 为初始群组,且此账号不可使用 bash 等 shell 登陆系统。若为可登陆账号时, 将该账号加入 youcan 这个次要群组。

    • 目标:了解 /sbin/nologin 的用途;
    • 前提:可自行观察使用者是否已经创建等问题;
    • 需求:需已了解 useradd, groupadd 等命令的用法;

    解决方案如下:

    1. 预先察看一下两个群组是否存在?
      [root@www ~]# grep mail /etc/group
      [root@www ~]# grep youcan /etc/group
      [root@www ~]# groupadd youcan
      
      可发现 youcan 尚未被创建,因此如上表所示,我们主动去创建这个群组啰。

    2. 开始创建三个邮件账号,此账号名称为 pop1, pop2, pop3 ,且口令与账号相同。可使用如下的程序来处理:
      [root@www ~]# vim popuser.sh
      #!/bin/bash
      for username in pop1 pop2 pop3
      do
      	useradd -g mail -s /sbin/nologin -M $username
      	echo $username | passwd --stdin $username
      done
      [root@www ~]# sh popuser.sh
      

    3. 开始创建一般账号,只是这些一般账号必须要能够登陆,并且需要使用次要群组的支持!所以:
      [root@www ~]# vim loginuser.sh
      #!/bin/bash
      for username in youlog1 youlog2 youlog3
      do
      	useradd -G youcan -s /bin/bash -m $username
      	echo $username | passwd --stdin $username
      done
      [root@www ~]# sh loginuser.sh
      

    4. 这样就将账号分开管理了!非常简单吧!

简答题部分
  • root 的 UID 与 GID 是多少?而基于这个理由,我要让 test 这个账号具有 root 的权限,应该怎么作?
    root 的 UID 与 GID 均为 0 ,所以要让 test 变成 root 的权限,那么就将 /etc/passwd 里面, test 的 UID 与 GID 字段变成 0 即可!
  • 假设我是一个系统管理员,我有一个用户最近不乖,所以我想暂时将他的账号停掉, 让他近期无法进行任何动作,等到未来他乖一点之后,我再将他的账号激活,请问:我可以怎么作比较好??
    由于这个账号是暂时失效的,所以不能使用 userdel 来删除,否则很麻烦!那么应该如何配置呢?再回去瞧一瞧 /etc/shadow 的架构,可以知道有这几个可使用的方法:
    • 将 /etc/passwd 的 shell 字段写成 /sbin/nologin ,即可让该账号暂时无法登陆主机;
    • 将 /etc/shadow 内的口令字段,添加一个 * 号在最前面,这样该账号亦无法登陆!
    • 将 /etc/shadow 的第八个字段关于账号取消日期的那个,配置小于目前日期的数字,那么他就无法登陆系统了!
  • 我在使用 useradd 的时候,新增的账号里面的 UID, GID 还有其他相关的口令控制,都是在哪几个文件里面配置的?
    在 /etc/login.defs 还有 /etc/default/useradd 里面规定好的!
  • 我希望我在配置每个账号的时候( 使用 useradd ),默认情况中,他们的家目录就含有一个名称为 www 的子目录,我应该怎么作比较好?
    由于使用 useradd 的时候,会自动以 /etc/skel 做为默认的家目录,所以,我可以在 /etc/skel 里面新添加一个名称为 www 的目录即可!
  • 简单说明系统账号与一般用户账号的差别?
    一般而言,为了让系统能够顺利以较小的权限运行,系统会有很多账号, 例如 mail, bin, adm 等等。而为了确保这些账号能够在系统上面具有独一无二的权限, 一般来说 Linux 都会保留一些 UID 给系统使用。在 CentOS 5.x 上面,小于 500 以下的账号 (UID) 即是所谓的 System account。
  • 简单说明,为何 CentOS 5.x 创建使用者时,他会主动的帮使用者创建一个群组,而不是使用 /etc/default/useradd 的配置?
    不同的 linux distributions 对于使用者 group 的创建机制并不相同。主要的机制分为:
    • Public group schemes: 用户将会直接给予一个系统指定的群组,一般来说即是 users , 可以 SuSE Server 9 为代表;
    • Private group schemes: 系统会创建一个与账号一样的组名!以 CentOS 5.x 为例!
  • 如何创建一个使用者名称 alex, 他所属群组为 alexgroup, 预计使用 csh, 他的全名为 "Alex Tsai", 且他还得要加入 users 群组当中!
    groupadd alexgroup
    useradd -c "Alex Tsai" -g alexgroup -G users -m alex
    务必先创建群组,才能够创建使用者喔!
  • 由于种种因素,导致你的用户家目录以后都需要被放置到 /account 这个目录下。 请问,我该如何作,可以让使用 useradd 时,默认的家目录就指向 /account ?
    最简单的方法,编辑 /etc/default/useradd ,将里头的 HOME=/home 改成 HOME=/account 即可。
  • 我想要让 dmtsai 这个使用者,加入 vbird1, vbird2, vbird3 这三个群组,且不影响 dmtsai 原本已经支持的次要群组时,该如何动作?
    usermod -a -G vbird1,vbird2,vbird3 dmtsai

大标题的图示参考数据与延伸阅读

 
     
http://linux.vbird.org is designed by VBird during 2001-2011. ksu.edu 

本网页主要以Firefox配合解析度 1024x768 作为设计依据     鸟哥自由软件整合应用研究室