软考地带经典linux教程四用户管理.docx
- 文档编号:3512875
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:11
- 大小:21.93KB
软考地带经典linux教程四用户管理.docx
《软考地带经典linux教程四用户管理.docx》由会员分享,可在线阅读,更多相关《软考地带经典linux教程四用户管理.docx(11页珍藏版)》请在冰豆网上搜索。
软考地带经典linux教程四用户管理
软考地带经典linux教程四:
用户管理
一.用户账号文件——passwd
Passwd是一个文本文件,用于定义系统的用户账号,该文件位于“/etc”目录下。
它包含了一个系统账户列表,给出每个账户一些有用的信息,例如,用户ID、组ID、主目录、shell等等。
由于所有用户都对passwd有读权限,所以该文件中只定义用户账号,而不保存口令。
passwd文件中每行定义一个用户账号,一行中又划分为多个字段定义用户的账号的不同属性,各字段用“:
”隔开。
各字段的说明如下所示。
表passwd文件各字段说明
字 段说 明
Account使用者在系统中的名字,它不能包含大写字母。
Password用户口令,出于安全考虑,现在不使用该字段保存口令,而用字母“x”来填充该字段,真正的密码保存在shadow文件。
删除该列,则不需要密码验证。
UID用户ID号,惟一表示某用户的数字。
GID用户所属的私有组号,该数字对应group文件中的GID。
COMMENT这字段是可选的,通常用于保存用户命名的信息。
Directory用户的主目录,用户成功登录后的默认目录。
shell用户所使用的shell,如该字段为空则使用“/bin/sh”。
UID:
0就表示超级用户
UID:
1~99系统帐号
UID:
100~499系统预留帐号
UID:
500以上普通用户帐号
关于UID的理解:
UID是用户的ID值,在系统中每个用户的UID的值是唯一的,更确切的说每个用户都要对应一个唯一的UID,系统管理员应该确保这一规则。
系统用户的UID的值从0开始,是一个正整数,至于最大值可以在/etc/login.defs可以查到,一般Linux发行版约定为60000;在Linux中,root的UID是0,拥有系统最高权限;
UID是确认用户权限的标识,用户登录系统所处的角色是通过UID来实现的,而非用户名,切记;把几个用户共用一个UID是危险的,比如我们上面所谈到的,把普通用户的UID改为0,和root共用一个UID,这事实上就造成了系统管理权限的混乱。
如果我们想用root权限,可以通过su或sudo来实现;切不可随意让一个用户和root分享同一个UID;
二.用户口令文件——shadow
在shadow文件中,每行定义了一个用户信息,行中各字段各字段用“:
”隔开。
为进一步提高安全性,shadow文件中保存的是已加密的口令。
“/etc/shadow”文件中的每个记录用“:
”隔开为9个域,每个域的含义分别为:
登录名
加密口令
口令上次更改时间距1970年1月1日的天数
口令更改所需的最小间隔天数
口令有效期,默认为99999天
口令到期前的提前警告天数
口令到期后的宽限天数
账号被封时距1970年1月1日的天数
备用列
三.用户组账号文件——group
用户组是逻辑地组织用户账号集合的方便途径,它允许用户在组内共享文件。
系统上的每一个文件都有一个用户和一个组的属主。
使用“ls–l”命令可以看到每一个文件的属主和组。
对于系统上的每个组,在/etc/group文件中有一行记录,记录的格式为:
groupname:
passwd:
GID:
userlist
表3-2group文件字段说明
字 段说 明
Groupname是组的名字
Passwd是组的加密口令
GID是系统区分不同组的ID,在/etc/passwd域中的GID域是用这个数来指定用户的缺省组。
Userlist是用“,”分开的用户名,列出的是这个组的成员。
四.用户组口令文件——gshadow
gshadow文件用于定义用户组口令、组管理员等信息,该文件只有root用户可以读取。
gshadow文件中每行定义一个用户组信息,行中各字段间用“:
”分隔,每行记录的格式为:
groupname:
Encryptedpassword:
Groupadministrators:
Groupmembers
表3-3group文件字段说明
字 段说 明
Groupname用户组名称,该字段与group文件中的组名称对应。
Encryptedpassword用户组口令,该字段用于保存已加密的口令
Groupadministrators组的管理员账号,管理员有权对该组添加删除账号。
Groupmembers属于该组的用户成员列表,列表中多个用户间用“,”分隔。
五./etc/skel
保存用户默认配置文件和目录
如果有一系列标准文件,如新用户的公司政策,则可以将其复制到/etc/skel文件中。
所有用户的主目录中都会得到这些文件的拷贝。
六.用户主目录下的用户文件
~/.bash_history--用户执行命令的历史记录,可存放1000条,先进先出
~/.bash_logout--用户退出时执行的命令
~/.bashrc私有环境文件
~/.bash_profile私有环境文件
用户管理涉及的文件:
/etc/passwd帐号文件
/etc/shadow用户密码文件
/etc/group组文件
/etc/gshadow组密码文件
/etc/default/useradd添加用户的默认值文件
/etc/login.defs登录信息的默认文件
/etc/skel用户环境文件的标准模板
/etc/issue登录前的提示信息
包含参数:
\r内核的版本\m硬件等级\d日期\t时间\l第几个终端
/etc/motd登录后的提示信息,内容可自定义
/etc/bashrc公有环境文件
/etc/profile公有环境文件
~/.bashrc私有环境文件
~/.bash_profile私有环境文件
~/.bash_history保存历史命令的文件
~/.bash_logout退出登录的执行命令的文件
七.用户的增删改
1.添加用户:
#useraddus1
#passwdus1
新增用户属于锁定状态,必须用passwd设置密码解锁。
#useraddusx–u522–g0–c‘newuserusx’–d/tmp/usx–s/sbin/nologin–f5–e20080801
useradd命令参数说明:
-u:
指定UID
-g:
指定GID,此组必须已存在
-c:
指定帐户描述信息,如包含空格,必须用单引号括起来
-d:
指定主目录
-s:
指定登录后执行的程序
-f:
设置口令过期后宽限时间。
若为0,则表示帐号立即失效;为1,则表示该选项无效
-e:
指定帐户过期日期,格式MM/DD/YYYY或YYYYMMDD
-m:
自动创建用户主目录,并把环境目录(默认为/etc/skel)下的文件复制到用户主目录
-M:
不创建用户主目录
passwd命令还可以使用一些参数选项,这些参数选项可对账号的口令进行不同的操作,但这些带参数的passwd命令只有root用户可以使用。
这些参数选择包括:
-S:
用于查询指定用户账号的状态。
-l:
用于锁定账号的口令
-u:
解除锁定账号的口令
-d:
删除指定账号的口令
-x:
密码使用最大天数
-n:
密码使用最小天数
#passwd–ufus1--密码解锁
#passwd-lus1--密码锁定
#passwd-dus1--清空密码
#passwd-n5us1--修改密码最少使用5天
#passwd-x900us1--修改密码最长用900天
2. 删除用户:
userdel命令用于删除指定的用户账号。
其使用的语法格式为:
userdel[-r][用户账号]
需要补充说明的是userdel命令可删除用户账号与相关的文件。
若不加参数,则仅删除用户账号,而不删除相关文件。
其中参数“-r”是用来删除用户登入目录以及目录中所有文件。
下面举例说明该命令的使用方法:
#greplyd/etc/passwd//查询用户账号lyd是否存在
#userdellyd//删除lyd账号
#greplyd/etc/passwd//再次查询用户账号lyd是否存在
#ll–d/home//查询用户lyd的主目录是否还存在
#userdel–rlyd//删除用户的同时删除其工作主目录
3. 修改用户帐号
usermod命令可用来修改用户帐号的各种属性,包括用户主目录、私有组、登录、shell等内容。
Usermod的命令格式如下:
usermod[-LU][-c<备注>][-d<登入目录>][-e<有效期限>][-f<缓冲天数>][-g<群组>]
[-G<群组>][-l<帐号名称>][-s][-u][用户帐号]
该命令的各个参数说明如下:
-c<备注>:
修改用户帐号的备注文字。
-d<登入目录>:
修改用户登入时的目录。
-e<有效期限>:
修改帐号的有效期限。
-f<缓冲天数>:
修改在密码过期后多少天即关闭该帐号。
-g<群组>:
修改用户所属的群组。
-l<帐号名次>:
修改用户帐号的名称
下面举例说明该命令的使用方法:
(1)修改用户名,把用户名“liuyidan”改名为“lyd”,使用的命令是:
#usermod–llydliuyidan
(2)锁定“lyd”用户,使其不能登录。
命令如下:
#usermod–Llyd
(3)解锁“lyd”用户账号,使其可以登录。
命令如下:
#usermod–Ulyd
添加组帐号
groupadd命令可指定群组名称来建立新的群组账号。
该组账号的ID值必须是惟一的,且数值不可为负。
预设的最小值不得小于500,且每增加一个组账号ID值逐次增加。
ID值0~499是保留给系统账号使用。
该指令使用的语法格式为:
groupadd[-r]group
其中“-r”参数是用来建立系统账号。
系统账号的ID值不能大于500。
下面举例说明该命令的使用方法:
#groupaddlbgroup//建立组账号lbgroup
#groupadd-g555lbgroup//建立组帐号时指定GID
#greplbgroup/etc/group//查询group文件中lbgroup组是否建立
#groupadd–rsyslbgroup//建立系统组账号
#greplbgroup/etc/group//查询group文件中syslbgroup组是否建立
5. 修改组帐号
groupmod命令用来更改群组识别码或名称。
该命令的语法格式为:
groupmod[-g<群组识别码><-o>][-n<新群组名称>][群组名称]
命令中所使用的参数说明如下:
-g<群组识别码> 设置欲使用的群组识别码。
-o 重复使用群组识别码。
-n<新群组名称> 设置欲使用的群组名称。
下面举例说明该命令的使用方法:
#greplbgroup/etc/group//查询group文件中lbgroup组属性
#groupmod–g503lbgroup//改变lbgroup组的GID为503
#greplbgroup/etc/group//查询操作结果是否正确
#groupmod–nydgrouplbgroup//改变lbgroup组名为ydgroup
#grep503/etc/group//查询操作结果是否正确
6.删除组账号
groupdel命令用于删除指定的组账号,若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
该命令的语法格式为:
groupdel[群组名称]
7.组中用户成员的维护
gpasswd命令可用于把一个账户添加到组、把一个账户从组中删除、把一个账户设为组管理员。
(1)添加用户到组的命令格式为:
gpasswd–a用户账号名 组账号名
(2)从组中删除用户的命令格式为:
gpasswd–d用户账号名组账号名
(3)设置用户为组管理员的命令格式为:
gpasswd-A组管理员用户列表 用户组
8.id命令
id命令用于显示用户当前的UID,gid以及所属群组的组列表该指令的语法格式为:
id[选项][用户名称]
该命令所使用的选项参数说明如下:
-g:
显示用户所属群组的ID。
-G:
显示用户所属附加群组的ID。
-n:
显示用户,所属群组或附加群组的名称。
-r:
显示实际ID。
-u:
显示用户ID。
9.whoami命令
whoami命令用于显示登录者自身的用户名称,本指令相当于执行“id–un”指令。
10.su命令
su命令是用来将当前用户转换为其他用户身份。
其命令的语法格式为:
su[-flmp][-][-c<指令>][-s][用户帐号]
需要指出的是su命令可让用户暂时变更登入的身份。
变更时须输入所要变更的用户账号与密码。
该命令中的选项参数说明如下:
-c<指令>:
执行完指定的指令后,即恢复原来的身份。
-f:
适用于csh与tsch,使shell不用去读取启动文件。
-:
改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。
此外,也会变更PATH变量。
-m,-p:
变更身份时,不要变更环境变量。
-s:
指定要执行的shell。
[用户帐号]:
指定要变更的用户。
若不指定此参数,则预设变更为root。
11.groups命令
groups命令用于显示指定用户所属的组,如未指定用户则显示当前用户所属的组。
该命令的语法格式为:
groups用户名
12.查看用户的操作
系统管理员在任一时刻都可查看用户的行为,在终端的提示符下输入w命令即可
命令响应中所示的信息分别说明如下:
第一行显示系统的汇总信息,字段分别表示系统当前时间、系统运行时间、登录用户总数及系统平均负载信息。
对于该行显示的几个数据意义是:
4:
50pm表示执行w的时间是在下午4:
50。
0days,11:
18表示系统运行0天11小时18分。
4users表示当前系统登录用户总数为4
loadaverage与后面的数字一起表示系统在过去1、5、10分钟内的负载程度,数值越小,系统负载越轻。
从第2行开始构成一个表格,共有8个栏目,分别显示各个用户正在做的事情及该用户所占用的系统资源:
USER:
显示登录用户名。
用户重复登录,该账号也会重复出现。
TTY:
用户登录所使用的终端。
FORM:
显示用户从什么地方登录到系统。
如果是从本地登录,此字段为“-”;如果从远程登录便会显示主机的IP地址或主机名。
LOGIN@:
是LOGIN AT的意思,表示登录进入系统的时间。
IDLE:
用户空闲时间,从用户上一次任务结束后开始计时。
JCPU:
以终端代号来区分,表示在某段时间内,所有与该终端相关的进程任务所耗费的CPU时间。
PCPU:
指WHAT域的任务执行后所耗费的CPU时间。
WHAT:
表示当前执行的任务。
另外,使用W命令还可在有很多用户登录时,查看某一个具体的用户名,使用的命令形式如下:
#wroot
13.查看登录用户历史
系统管理员可以随时查看用户登录的历史行为,还可查看某一用户曾经登录到的系统,这些功能使用last命令即可实现。
14.别名命令
#alias
#aliasa=’cd~’--临时设置
设置单个用户主目录下的.bashrc文件,只对当前用户有效
设置/etc/.bashrc文件,对所有用户有效
如果在两个文件中同时设置相同别名命令,则以私有文件中的设置有效
15.系统环境变量$PATH
不同级别的用户默认环境变量的内容是不同的
#echo$PATH
#su–john
$echo$PATH
$PATH=$PATH:
/sbin--临时修改当时用户的环境变量
$vi.bash_profile--直接修改用户环境文件,永久保存
在文件中增加下面一行:
PATH=$PATH:
/sbin
16.系统环境变量PS1
控制命令提示行;
\d:
表示日期;
\t:
24小时制的时间,格式为:
HH:
MM:
SS
\T:
12小时制的时间;
\H:
主机名.域名;
\h:
主机名;
\A:
显示时间,格式为:
HH:
MM
\u:
当前登录名称;
\v:
BASH的版本;
\w:
所在目录的绝对路径;
\W:
当前目录的目录名;
\!
当前命令在历史缓冲区中的位置
\#命令编号(只要您键入内容,它就会在每次提示时累加)
\$:
提示字元,如果是root,则提示#;普通用户则提示$;
彩色化
颜色是通过在PS1中添加专用序列来选择的--基本上是夹在"\e["(转义开方括号) 和"m"之间数字值。
如果指定一个以上的数字代码,则用分号将它们分开。
前景编号(30-37),背景编号(40-47),颜色深度(1-10)
在bash显示出工作目录以后,我们需要使用"\e[0m"或"\e[;m"序列将颜色重新设置为正常值。
16.系统环境变量PS2
命令的二级提示符;
bash有俩级用户提示符。
第一级是bash在等待命令输入时的提示符。
可以通过在用户主目录下.bash_profile文件里设置PS1变量来实现。
当bash期待输入更多的信息以完成命令时将显示第二级提示符。
(比如:
你输入cpfilename1\,回车,这时候就出现第二级提示符。
\是续行的意思)默认的第二级提示符是“>;”。
如果要改变第二级提示符,可以通过在.bash_profile文件里设置PS2变量来实现。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软考地带经典linux教程四 用户管理 地带 经典 linux 教程 用户 管理