用户和用户组是 Linux 系统管理的基础,Linux 下用户分为超级用户、系统用户和普通用户三大类。
超级用户:在Linux操作系统中,超级用户root的权限是最高的。普通用户无法执行的操作,root用户都能完成。在Linux系统中,每个文件、目录和进程都属于某一个用户,没有该用户的许可,其他的普通用户就无法对该用户的文件目录进行操作,但root用户可以对任何用户和用户组文件进行读取、删除等操作。
系统用户:系统用户通常是在安装软件包时自动创建的,是与系统服务相关的用户。
普通用户:是超级用户创建的,其权限最低,只能操作自己所拥有的文件、目录和进程。
在Linux中每个用户都有一个用户组,系统可以通过一个用户组对属于该组的所有用户进行集中管理。不同的用户组其权限是不同的,对用户组的管理实际是对文件/etc/group 的更新。
学习目标 掌握 adduser 指令的基本用法
语法 adduser [-可选参数] 用户名
功能说明 adduser 指令是个 script 程序,系统管理员可以利用 adduser 指令给当前系统添加一个新的用户。它可以是一个系统用户或是一个属于某个指定用户组的用户,这些都由指令中的参数来决定。如果指令中未对此进行指定,指令将按照默认的方式添加一个一般用户,并保存该用户的配置信息。
参数说明 可选参数及其说明如下:


基础应用
范例173 添加一个一般用户。
[root@localhost ~]# adduser tom //添加一般用户tom
[root@localhost ~]# cd /home
[root@localhost home]# ls
mary tomyy
[root@localhost home]#
当用户以管理员的身份登录系统后,执行指令“adduser tom” ,系统将自动在目录/home下创建一个新目录tom。
范例174 创建一个系统用户。
[root@localhost ~]# adduser -r adminis //创建一个系统用户adminis
[root@localhost ~]# adduser –p 12345678 adminis //为用户 adminis 设置密码
adduser:user adminis exists
[root@localhost ~]#
执行指令“adduser –r adminis”新建一个用户名为 adminis 的系统用户,然后再执行指令“adduser –p 12345678 adminis”为新用户设置密码,当然也可以用 passwd 指令来设置该用户的密码。
范例175 新添加一个用户,同时指定新用户的/home目录。
[root@localhost ~]# adduser -d /home/she –p 12345678 sun //添加一个 home 目录为/home/she新用户sun
[root@localhost ~]# ls /home
mary sun tom yy
[root@localhost home]#
执行指令“adduser -d /home/she –p 12345678 sun”新添加一个一般用户 sun,同时指定用户的/home/目录为/home/she及用户密码。
学习目标 学会使用 useradd 指令建立用户账号
语法 useradd [-可选参数] 用户名
功能说明 useradd 指令建立系统账号,只有管理员才能运行该指令。在 Linux 系统中有两个建立系统账号的指令,分别是useradd指令和adduser指令。其中adduser是useradd的符号链接,它只在Linux的发行版本中出现。
使用 useradd 建立好的用户账号,实际上是保存在/etc/passwd 文本文件中。要设定账号的密码可使用passwd来完成,可使用userdel删除账号。
参数说明 可选参数及其说明如下:

基础应用
范例176 为系统创建一个普通用户。
[root@localhost~]# useradd –g adc aun //添加用户aun
[root@localhost~]#
执行指令“useradd –g adc aun”将为当前系统创建一个用户名为 aun 的普通用户,同时指定用户的所属组。
范例177 为新用户创建home目录。
[root@localhost~]# useradd –d /home/mary aun //添加用户aun
[root@localhost~]#
执行指令“useradd -d /home/mary aun”将用户名 aun 的登录目录设置为/home/mary。
学习目标 能使用 passwd 指令来设置、修改、删除或停止用户密码
语法 passwd [-可选参数] 用户名称
功能说明 passwd 指令可用来设置或修改用户账号的密码。在 Linux 系统中,超级用户能设置所有用户的密码,而普通用户只能修改或设置其自身的密码。当用户修改密码时,需根据提示信息先输入旧密码,然后再输入两次新密码。如果要删除用户密码,需要以管理员的身份登录系统。
参数说明 可选参数及其说明如下:

基础应用
范例178 修改指定用户的密码。
[root@localhost ~]# passwd mary //修改用户mary的密码
Changing password for user mary.
New UNIX password: ******** //输入新密码
BAD PASSWORD: it does not contain enough DIFFERENT characters
Retype new UNIX password: ******** //再次输入新密码
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
执行指令“passwd mary”,管理员可重新设置用户 mary 的账号登录密码。
范例179 删除用户密码。
[root@localhost ~]# passwd -d tom //删除用户tom的账户密码
Removing password for user tom.
passwd: Success
[root@localhost ~]#
系统管理员用户可以删除本系统中任意用户的密码,而不需输入密码进行确认。
学习目标 学会使用 htpasswd 指令创建和更新用户认证文件
语法 htpasswd[必要参数][选择性参数][密码文件][用户名]
功能说明 htpasswd 指令用来创建和更新保存 HTTP 用户的用户名和密码的文件,如果htpasswd不能读取输出的文件,它将返回错误信息。
参数说明 必要参数的具体说明如下:

选择性参数的具体说明如下:

基础应用
范例180 创建一个apache登录用户kk。
[root@localhost sha1]# htpasswd -c /home/kk/.htpasswd kk //创建一个新的用户
New password:
Re-type new password:
Adding password for user kk
[root@localhost sha1]#
本例使用指令“htpasswd -c /home/kk/.htpasswd kk”创建一个新的 apache 登录用户。
范例181 对密码进行MD5加密。
[root@localhost sha1]# htpasswd -m /home/kk/.htpasswd kk //加密密码
New password:
Re-type new password:
Updating password for user kk
[root@localhost sha1]#
本例使用指令“htpasswd -m /home/kk/.htpasswd kk”对密码进行 MD5 加密。
学习目标 学会使用 groupadd 指令在 Linux 系统中创建一个新的用户组
语法 grouped [-可选参数] 用户组名
功能说明 groupadd 指令可以根据指令中的不同参数来创建用户组。在 groupadd 命令中,用户只要在命令后输入用户组名称即可创建一个指定用户组名的新用户组。
参数说明 可选参数及其说明如下:

基础应用
范例182 创建一个新的用户组,同时指定用户组的ID。
[root@localhost ~]# groupadd –g 315 gpr //创建群组
[root@localhost ~]#
执行指令“groupadd –g 315 gpr”将在当前终端机中创建一个 ID 为 315 的新的用户组,同时在文件/etc/passwd 中生成一个组 ID 为 315 的新项。用户组的 ID 就是用户组的权限。
学习目标 学会使用 groupdel 指令删除 Linux 系统中的群组
语法 groupdel 群组
功能说明 使用 groupdel 指令来删除群组时要求群组必须存在,而且最好是先移出该群组中的用户,再删除群组。
基础应用
范例183 删除群组。
[root@localhost ~]# groupdel gpr //删除群组
[root@localhost ~]#
执行指令“groupdel gpr”将删除群组 gpr。
学习目标 能使用 userconf 指令对用户账号和用户群组进行操作
语法 userconf [-可选参数]
功能说明 userconf 指令实际上为 Linuxconf 的符号链接,使用该指令可以对用户账号和群组进行增加或删除等相关操作。通常情况下,系统管理员都会使用该指令来管理系统中的账号。如果指令中不输入任何参数,将进入图形界面进行设置。
参数说明 可选参数及其说明如下:

基础应用
范例184 删除指定用户和用户组。
[root@localhost ~]# userconf --deluser aun tom //删除指定用户aun和tom
[root@localhost ~# userconf --delgroup adc //删除指定用户组adc
[root@localhost ~]#
执行指令“userconf --deluser aun tom” 删除指定用户 aun 和 tom。然后执行指令“userconf --delgroup adc”来删除指定用户组 adc。
学习目标 能使用 userdel 指令来删除指定用户账号
语法 userdel [-可选参数] 用户
功能说明 userdel 指令不仅可用来删除用户账号,还可通过指定参数在删除指定用户账号的同时删除与指定用户相关的文件及登录目录。
参数说明 可选参数及其说明如下:

基础应用
范例185 删除用户账号。
[root@localhost ~]# userdel tom //删除用户tom
[root@localhost ~]#
执行指令“userdel tom”将删除用户 tom。
学习目标 能通过 usermod 指令来修改账户的各项设置
语法 usermod [-可选参数] 用户账号
功能说明 usermod 指令可用来修改用户账号的各项数值
参数说明 可选参数及其说明如下:


基础应用
范例186 修改用户账号。
[root@localhost ~]# usermod -l uss mary //修改用户账号
[root@localhost ~]#
执行指令“usermod –l uss mary” 修改用户 mary 的账号名称为 uss。
范例187 修改用户的登录Shell。
[root@localhost ~]# usermod -s /bin/ash mary //改变用户mary的登录Shell
[root@localhost ~]#
执行指令“usermod -s /bin/ash mary”改变用户 mary 的默认登录 Shell。
学习目标 能运用 Shell 命令显示指定用户的 finger 信息
语法 finger [-可选参数] [用户名]
功能说明 finger 指令会显示指定用户的相关信息,如用户名、真实姓名、登录终端、登录时间、用户宿主目录等信息;同时,finger 指令还可以查询远程主机上的用户信息。如果指令中未指定具体的用户,指令将显示系统中所有已登录用户的信息。
参数说明 可选参数及其说明如下:

基础应用
范例188 列出用户的相关信息。
[root@localhost ~]# finger –l root //显示用户信息
Login: root Name: root
Directory: /root Shell: /bin/bash
On since Mon Jan 09 17:21 (EDT) on :0 (messages off)
On since Mon Jan 09 17:22 (EDT) on pts/1 from :0.0
New mail received Mon Jan 07 06:52 2009 (EDT)
Unread since Fri Dec 26 09:29 2008 (EST)
No Plan.
[root@localhost ~]#
学习目标 能运用 fwhois 命令查找并显示指定用户的相关信息
语法 fwhois [用户名]
功能说明 fwhois 指令可以用来显示指定用户的信息,它的功能类似于 finger 指令。但 使用该指令查找的用户必须先在 Network Solutions 的 WHOIS 数据库上注册才能查到用户信息。
基础应用
范例189 显示指定用户的信息。
[root@localhost ~]# fwhois marY //显示用户mary的信息
如果用户 mary 在 Network Solutions 的 WHOIS 数据库上已经注册了,执行指令“fwhoismary”才能显示用户mary的信息。
学习目标 学会使用 groupmod 指令来改变指定用户组的属性
语法 groupmod [-可选参数] 用户组
功能说明 groupmod 指令可以改变指定用户组的名和 ID 信息。
参数说明 可选参数及其说明如下:

基础应用
范例190 给指定的用户组起个新名。
[root@localhost ~]# groupmod -n gpr newgpr //改变组名
[root@localhost ~]#
执行指令“groupmod -n gpr newgpr”将名为 gpr 的用户组改名为 newgpr。
学习目标 学会使用 groups 指令来查看用户的所属组。
语法 groups [-可选参数]
功能说明 groups 指令可以用来显示指定用户的所属组。如果指令中未对用户名进行指定,将显示当前用户的所属组。
参数说明 可选参数及其说明如下:

基础应用
范例191 显示当前用户的所属组。
[root@localhost ~]# groups //显示所属组
root bin daemon sys adm disk wheel
[root@localhost ~]#
直接输入指令“groups”时,系统将当前用户当作默认的用户账号,显示当前用户所属的组名。
学习目标 能查看指定用户的 ID 等信息
语法 id [-可选参数] [用户名]
功能说明 利用 id 指令可以显示指定用户的信息。如果指令中未指定用户名,将显示系统当前用户的信息。
参数说明 可选参数及其说明如下:

基础应用
范例192 显示系统当前用户的信息。
[root@localhost ~]# id //显示当前用户信息
uid=0(root)gid=0(root)groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
context=root:system_r:unconfined_t:Systemlow_Systemhigh
[root@localhost ~]# id –g //显示用户群组ID
0
[root@localhost ~]# id -G //显示所有群组ID
0 1 2 3 4 6 10
[root@localhost ~]#
执行指令“id”将显示当前用户的信息,然后通过指令“id –g”和指令“id –G”显示组群ID。
范例193 显示指定用户的信息。
[root@localhost ~]# id mary //显示用户mary的信息
uid=501(mary)gid=501(mary)groups=501(mary)context=root:system_r:unconfined_t:System_low_Systemhigh
[root@localhost ~]#
学习目标 学会使用 last 指令来查询以往所有登录过该系统的用户的信息。
语法 last [-可选参数] [用户/终端]
功能说明 日志文件/var/log/wtmp 里面记录了在此文件创建后的每一位系统级用户的访问活动。使用“last”指令显示所有登录系统的用户相关信息,实际上就是查找该文件的信息并加以显示,此文件不能使用文本编辑器来查看。“last”指令还可以显示指定数字、时间或用户的登录情况。
参数说明 可选参数及其说明如下:

基础应用
范例194 显示所有登录系统的用户相关信息。
[root@localhost ~]# last
root pts/1 :0.0 Thu Mar 12 13:38 still logged in
root :0 Thu Mar 12 13:36 still logged in
root :0 Thu Mar 12 13:36 -13:36 (00:00)
--------------------------------------------------------------
-------------------------------------------------------------- //省略部分信息
reboot system boot 2.6.18-92.e15 Tue Mar 10 12:207 (00:31)
--------------------------------------------------------------
-------------------------------------------------------------- //省略部分信息
wtmp begins Mon Dec 31 21:38:16 2008
[root@localhost ~]#
指令的输出信息中包含用户名、登录终端名、登录主机的位置和时间等信息。
学习目标 利用 lastb 指令来查看登录失败的用户信息
语法 lastb [-可选参数] [用户/终端]
功能说明 lastb 指令显示的是登录失败的用户信息,它与 last 指令类似也是通过查找日志文件来得到相关数据信息的。Last指令查找的是/var/log/wtmp/,而lastb指令查找的是日志文件/var/log/btmp,它不能使用文本编辑器来查看,在文件/var/log/btmp中以二进制的形式记录了所有登录系统失败的用户的信息。
参数说明 可选参数及其说明如下:

基础应用
范例195 显示登录失败用户。
[root@localhost ~]# lastb
lastb: /var/log/btmp: No such file or directory
Perhaps this file was removed by the operator to prevent logging lastb info
执行指令“lastb”后,在系统终端上显示提示信息“No such file or directory”表明在系统中不存在文件/var/log/btmp,此时用户可手动创建日志文件。
[root@localhost ~]# touch /var/log/btmp
[root@localhost ~]# lastb
btmp begins Thu Mar 31 12 13:38 2009
[root@localhost ~]#
学习目标 能运用 logname 指令来显示登录系统的登录账号
语法 logname [-可选参数]
功能说明 利用 logname 指令只能显示当前登录系统的用户名,而不能查询有关该用户的其他相关信息。
参数说明 可选参数及其说明如下:

基础应用
范例196 显示登录系统的用户名。
[mary@localhost ~]$ logname //显示用户名
mary
[mary@localhost ~]$
执行指令“logname”将在终端显示当前登录系统的用户名登录账号的信息。
学习目标 能使用 rwho 指令来查看系统用户
语法 rwho [-可选参数]
功能说明 rwho 指令会显示局域网中主机的用户信息。
参数说明 可选参数及其说明如下:

基础应用
范例197 显示本地局域网内的所有用户。
[root@localhost ~]# rwho -a //显示局域网内的所有用户
执行指令“rwho –a”将显示本地局域网内的所有用户。
学习目标 学会使用 su 指令进行身份切换
语法 su [-可选参数] [用户名]
功能说明 使用 su 指令切换系统的用户账号时,默认情况下不会改变当前的工作目录,但会修改Shell环境变量。如果是从普通用户切换到系统用户,直接输入指令su后按回车键,然后输入登录密码即可。若当前用户为管理员用户,可以切换到任意的用户账号,并不用输入登录密码。普通用户之间也可以来回切换。
参数说明 可选参数及其说明如下:

基础应用
范例198 切换用户。
[root@localhost ~]# whoami //显示当前用户名
root
[root@localhost ~]# pwd //当前目录
/root
[root@localhost ~]# su mary //切换到用户mary
[mary@localhost root]$ echo $USER / /显示当前用户
mary
[kk@localhost root]$
使用“su”指令切换到系统用户mary名下时,当前的工作目录保持不变,但修改了Shell环境变量。
范例199 从普通用户切换到管理员用户。
[mary@localhost root]$ echo $USER //显示当前用户名
mary
[mary@localhost root]$ su //切换到管理员用户
Password:********** //输入登录密码
[root@localhost ~]# echo $USER //显示当前用户名
root
[root@localhost ~]#
从普通用户切换到管理员用户需输入登录密码,而从管理员用户切换到普通用户只要系统中存在此账号就可以任意切换。
学习目标 学会使用 sudo 指令在不进行系统切换的情况下以系统中其他账号的身份来执行指令
语法 sudo [-可选参数] [指令]
功能说明 使用 sudo 指令可以在不进行系统切换的情况下以其他用户的身份执行指定的指令,可以在不要使用登录密码的情况下使用。sudo 指令的预设身份为 root。在文件/etc/sudoers 中设置了可执行 sudo 指令的用户。若未经授权的用户企图使用 sudo,则会给管理员发出警告的邮件。
参数说明 可选参数及其说明如下:

基础应用
范例200 显示sudo指令的设置。
[root@localhost ~]#sudo -L //显示sudo命令的设置
Available options in a sudoers ''Defaults'' line:
syslog: Syslog facility if syslog is being used for logging
syslog_goodpri: Syslog priority to use when user authenticates successfully
syslog_badpri: Syslog priority to use when user authenticates unsuccessfully
long_otp_prompt: Put OTP prompt on its own line
ignore_dot: Ignore '.' in $PATH
mail_always: Always send mail when sudo is run
---------------------------
---------------------------//省略了部分结果
badpass_message: Incorrect password message
timestampdir: Path to authentication timestamp dir
exempt_group: Users in this group are exempt from password and PATH requirements
passprompt: Default password prompt
runas_default: Default user to run commands as
---------------------------
---------------------------//省略了部分结果
listpw: When to require a password for 'list' pseudocommand
verifypw: When to require a password for 'verify' pseudocommand
[root@localhost ~]#
范例201 以其他用户执行指令。
[root@localhost ~]# sudo -u mary ls /home/mary //以用户maryl执行指令
Desktop mary.txt
[root@localhost ~]#
执行指令“sudo –u mary ls /home/mary”,以用户 mary 的名义执行指令“ls /home/mary”。
学习目标 能使用该指令显示目前登录系统的用户信息
语法 w [-可选参数] [用户名]
功能说明 w 指令可用来显示当前登录到系统的用户信息,以及正在执行的程序。
参数说明 可选参数及其说明如下:

基础应用
范例202 显示当前系统下的所有用户。
[root@localhost ~]# w //显示当前用户,不显示登录位置
13:50:03 up 6:45, 2 users, load average: 0.04, 0.03, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 - 07:48 ?xdm? 2:44 0.63s /usr/bin/gnome-
root pts/1 :0 11:36 0.00s 0.09s 0.02s w
[root@localhost ~]#
执行指令“w”显示当前系统下所有用户的信息。
学习目标 能使用 who 指令显示目前登录系统的用户信息
语法 who [-可选参数] [记录文件]
功能说明 who 指令可用来显示当前有哪些用户登录系统,以及登录系统的用户的各项信息。若单独执行who指令会列出登录账号、使用的终端机、登录时间、从何处登录以及正在使用哪个X显示器。
参数说明 可选参数及其说明如下:

基础应用
范例203 使用指令who来显示当前登录系统的用户及其各项信息。
[root@localhost ~]# who //显示当前登录系统的用户信息
root :0 2009 -01-13 07:48
root pts/1 2009 -01-13 11:36(00:00)
[root@localhost ~]# who -l -H //显示用户登录位置
NAME LINE TIME IDLE PID COMMENT
LOGIN tty2 2009 -01-13 07:07 5574 id=2
LOGIN tty3 2009 -01-13 07:07 5575 id=3
LOGIN tty4 2009 -01-13 07:07 5576 id=4
LOGIN tty5 2009 -01-13 07:07 5577 id=5
LOGIN tty6 2009 -01-13 07:07 5578 id=6
[root@localhost ~]#
学习目标 能使用 whoami 指令来显示当前用户名
语法 whoami [-可选参数]
功能说明 Linux 下的 whoami 指令是用来显示当前用户名称的工具,它的执行效果与“echo &USER”相同但执行原理不同。USER 是 Shell 的环境变量,是用户登录系统时设置的。而whoami指令是通过获取用户的ID,然后到文件/etc/passwd中进行查找的。
参数说明 可选参数及其说明如下:

基础应用
范例204 显示当前用户名。
[root@localhost ~]# whoami //显示当前用户名
root
[root@localhost ~]# echo &USER
root
[root@localhost ~]#
学习目标 能使用 whois 指令来查找指定账号/域名的信息
语法 whois [ -可选参数] [用户]
功能说明 whois 指令是查找并显示指定用户账号信息的工具程序,它在查找信息时没有大小写的区分。因为它是通过到 Network Solutions 的 WHOIS 数据库去查找用户名来获得信息的,所以只有在网络上注册账号名才能被查找到。使用whois指令,用户可以查找Internet上某一主机或某域所有者的信息,比如管理员姓名、通信地址等信息。
参数说明 可选参数及其说明如下:

基础应用
范例205 显示指定用户的信息。
[root@localhost ~]# whois mary //查找mary用户的信息
范例206 查找指定网络的信息。
[root@localhost ~]# whois www.coronabook.com //查找目标网络信息
执行指令“whois www.coronabook.com”查询目标网络的信息。
学习目标 能使用 users 指令来查看用户信息
语法 users[选择性参数]
功能说明 users 指令用来显示所有的用户。
参数说明 选择性参数的具体说明如下:

基础应用
范例207 显示所有的用户。
[root@localhost temp]# users //显示所有的用户
root root
[root@localhost temp]#
本例使用指令“users”显示所有的用户。
学习目标 掌握 wait 指令的用法
语法 wait[程序]
功能说明 wait 指令用来等待指定的程序返回状态。
基础应用
范例208 等待程序返回状态。
[root@localhost ~]# ps -A //显示当前进程
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 ksoftirqd/0
3 ? 00:00:00 watchdog/0
4 ? 00:00:00 events/0
5 ? 00:00:00 khelper
6 ? 00:00:00 kthread
8 ? 00:00:00 kacpid
61 ? 00:00:00 kblockd/0
64 ? 00:00:00 khubd
110 ? 00:00:00 pdflush
111 ? 00:00:00 pdflush
//此处省略了部分结果
4344 ? 00:00:00 mapping-daemon
4345 ? 00:00:00 pam_timestamp_c
4347 ? 00:00:00 notification-ar
4349 ? 00:00:00 clock-applet
4569 pts/1 00:00:00 top
4570 pts/1 00:00:00 ps
[1]+ Stopped top
[root@localhost ~]# wait 4569 //等待程序返回状态
本例使用指令“wait 4569”等待进程 4569,也就是 top 程序,返回状态值。
学习目标 能使用 grpconv 指令开启群组的投影密码,将已有的密码和组转换成 shadow格式
语法 grpconv
功能说明 使用 grpconv 指令可以将 Linux 系统中存放在文件/etc/passwd 和/etc/group 中的用户和组群密码,改存到文件/etc/shadow和文件/etc/gshadow中,同时将其置换成“x”字符。此时,其他用户就无法读取到相关的密码信息,而只有系统管理员才能读取该文件,这样增强了系统的安全性能。
基础应用
范例209 开启群组的投影密码。
[root@localhost ~]# grpconv //开启群组的投影密码
[root@localhost ~]#
执行指令“grpconv”将从正常的文件组passed和group中提取信息创建新的影子文件组shadow和gshadow。
学习目标 理解 grpunconve 指令的用法和关闭群组的投影密码的执行结果
语法 grpunconv
功能说明 grpunconv 指令可用来关闭之前开启的群组密码保护。执行 grpunconv 指令,会将gshadow文件中的密码信息回存到group文件中,然后删除文件gshadow。
基础应用
范例210 关闭群组的投影密码。
[root@localhost ~]# grpunconv //关闭群组的投影密码
执行指令“grpunconv”可以关闭群组的投影密码,将密码信息还原。
学习目标 学会使用 pwconv 指令来激活用户的投影密码
语法 pwconv
功能说明 pwconv 指令的功能类似于 grpconv 指令,将已有的密码转换成 shadow 格式,使系统用户的密码变得更加安全。在 Linux 系统中,用户和群组的密码分别存放在目录/etc下名为passwd和group的文件中,任何用户都可以读取这两个文件。为了保证系统用户密码安全,可开启 shadow 功能对密码进行加密。而对于已存在的用户和组群密码,可分别使用pwconv指令和grpconv指令来进行转换,将存放在文件/etc/passwd和/etc/group中的用户和组群密码改存到目录/etc下的文件shadow和文件gshadow中,同时将其置换成“x”字符,并只允许系统管理者对其进行读取。
基础应用
范例211 开启用户的投影密码,将已有的用户密码转换成shadow格式。
[root@localhost ~]#pwconv //开启用户的投影密码
如果在开启密码的投影功能后用户密码被更改,可输入“pwconv”和“grpconv”指令来重新进行设置。
学习目标 能使用 pwunconv 指令来关闭用户的投影密码
语法 pwunconv
功能说明 pwunconv 指令可用来关闭用户的投影密码,将用户密码从新建的 shadow 文件回存到passwd文件里,然后删除shadow文件。
基础应用
范例212 关闭用户投影密码,恢复原passwd指令。
[root@localhost ~]#pwunconv //关闭用户投影密码
执行指令“pwunconv”将恢复原passwd指令,并删除shadow文件。
学习目标 掌握使用 edquota 编辑 quota 内容的方法
语法 edquota [-可选参数] 用户名/用户组名
功能说明 edquota 指令可用来编辑每个用户或用户组的 quota 值,即磁盘配额。Linux是一个多人多工的系统,在这个系统里不只有一个用户,还可以有很多其他的用户共同使用同一磁盘空间,此时如果不对用户的磁盘空间进行限制,就有可能造成系统无法正常工作。
参数说明 可选参数及其说明如下:

基础应用
范例213 编辑用户的quota值。
[root@localhost ~]# edquota -u marY //编辑用户mary的quota值
Disk quotas for user mary (uid 501)
Filesystemblocks soft hard inodes soft hard
/dev/hdb10 4000 6000 0 500 1000
//更改用户mary的quota值
Disk quotas for user mary (uid 501)
Filesystemblocks soft hard inodes soft hard
/dev/hdb10 5000 6500 0 400 1000
//存盘退出
[root@localhost ~]#
执行指令“edquota -u mary”进入编辑环境,为系统上的用户名为 mary 的用户重新编辑磁盘配额。在范例中blocks的数值表示的是用户已使用的磁盘大小,inodes是指用户现有文件的大小。soft和hard是软限制和硬限制的意思,硬限制即绝对限制,它限制用户占用的磁盘空间不能超越配置的磁盘配额;软限制的设定不能超过硬限制。
学习目标 掌握显示磁盘已使用的空间与限制的方法
语法 quota [-可选参数] 用户名/群组名
功能说明 quota 指令可用来显示磁盘空间的使用和限制等信息。使用该指令不仅可以显示一个用户/组群的磁盘信息,还可以同时显示多个指定用户或组群的磁盘信息。
参数说明 可选参数及其说明如下:

基础应用
范例214 显示单个用户磁盘的信息。
[root@localhost yy]# quota mary //显示磁盘信息
Disk quotas for user mary (uid 502): none
[root@localhost ~]#
执行指令“quota mary” 显示用户 mary 的磁盘使用情况。
学习目标 能使用 quotacheck 指令来检查磁盘的使用空间与限制
语法 quotacheck [-可选参数] [文件系统]
功能说明 quotacheck 指令可对挂载的文件系统进行扫描,检查磁盘的使用空间与限制。
参数说明 可选参数及其说明如下:

基础应用
范例215 显示单个用户磁盘的信息。
[root@localhost ~]# quotacheck -uvg /home //显示/home下的目录与文件信息
执行指令“quotacheck -uvg /home”显示/home 下的目录与文件信息。
学习目标 能使用 quotaoff 指令关闭磁盘空间限制
语法 quotaoff [-可选参数] [文件系统]
功能说明 执行 quotaoff 指令可关闭用户的 quota 限制。
参数说明 可选参数及其说明如下:

基础应用
范例216 显示quotaoff指令帮助信息。
[root@localhost ~]# quotaoff --help //显示quotaoff指令帮助信息
执行指令“quotaoff --help” 显示 quotaoff 指令帮助信息。
范例217 关闭所有的磁盘配额限制。
[root@localhost ~]# quotaoff -a //关闭所有的磁盘配额限制
执行指令“quotaoff -a”关闭所有的磁盘配额限制。
范例218 关闭/home下用户的磁盘配额限制。
[root@localhost ~]# quotaoff –uv /home //关闭/home下用户的磁盘配额限制
执行指令“quotaoff –uv /home”关闭/home 下用户的磁盘配额限制。
学习目标 能使用 quotaon 指令开启磁盘空间限制
语法 quotaon [-可选参数] [文件系统]
功能说明 quotaon 指令可用来开启磁盘空间限制。
参数说明 可选参数及其说明如下:

基础应用
范例219 显示quotaon指令帮助信息。
[root@localhost ~]# quotaon --help //显示quotaon指令帮助信息
执行指令“quotaon --help” 显示 quotaon 指令帮助信息。
范例220 开启所有的磁盘配额限制。
[root@localhost ~]# quotaon -a //开启所有的磁盘配额限制
执行指令“quotaon -a” 开启所有的磁盘配额限制。
范例221 开启/home下用户的磁盘配额限制。
[root@localhost ~]# quotaon –uv /home //开启/home下用户的磁盘配额限制
执行指令“quotaon –uv /home”开启/home 下用户的磁盘配额限制。
学习目标 掌握使用 repquota 指令检查磁盘空间限制的状态。
语法 repquota [-可选参数] [文件系统]
功能说明 repquota 指令可用来显示磁盘空间的限制情况,以及每位用户/组群的磁盘使用情况。
参数说明 可选参数及其说明如下:

基础应用
范例222 显示/home/mary的磁盘使用情况。
[root@localhost ~]# repquota /home/mary //显示/home/mary的磁盘使用情况
执行指令“repquota /home/mary” 显示/home/mary 的磁盘使用情况。
范例223 显示/home/mary的磁盘使用情况。
[root@localhost ~]# repquota -a //显示文件系统的磁盘使用情况
执行指令“repquota –a” 显示 quota 文件系统的磁盘使用情况。