一、用户账号管理
1.用户账号概述
(1)用户账号的常见分类:
1>超级用户:root uid=0 gid=0 权限最大
2>普通用户:uid>=500 做一般权限的系统管理,权限有限。
3>程序用户:1=<uid<500 为了提升系统安全性,为了支持所对应服务对系统资源的使用,不能用于登陆系统或管理系统。
(2)UID:
用户标识
(3)用户账号文件
1> /etc/passwd
- 作用:保存用户名称、宿主目录、登录 Shell 等基本信息,每一行对应一个用户 的账号记录。
- 共 7 各字段,各字段代表含义:
[root@huyouba1 ~]# tail -1 /etc/passwd
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
- 第一字段 rpc: 用户账号名
- 第二字段 x: 密码占位符
- 第三字段 32: uid 编号
- 第四字段 32: gid 编号
- 第五字段 Rpcbind Daemon: 用户备注
- 第六字段 /var/lib/rpcbind:用户宿主目录
- 第七字段 /sbin/nologin:登陆的 shell (若为/sbin/nologin 则不能登录)
2> /etc/shadow
- 作用:保存用户的密码、账号有效期等信息,每一行对应一个用户的密码记录。
- 共 9 字段,目前只启用前 7 字段,各字段代表的含义:
[root@huyouba1 ~]# tail -1 /etc/shadow
rpc:!!:18079:0:99999:7:::
- 第一字段 rpc:用户账户名
- 第二字段 !!: 密文
- 第三字段 18079:账号上次修改时间距 1970 年 1 月 1 日过去多少天
- 第四字段 0:据上次密码修改起多少天内不能再次修改密码,单位 “天”。“0” 便是随时可以修改密码。
- 第五字段 99999:密码过期天数 (密码在修改密码后多少天必须重新修改密码。99999 表示永久可以使用。)
- 第六字段段 7:强制密码修改提醒时间(7 表示在密码字过期前 7 天开始警告)
- 第七字段 空:当密码过期后经过多少天该账号会被禁
- 第八字段 空:密码过期日期,若设置则显示为过期日期据 1970 年 1 月 1 日多少天。
2.添加用户账号 useradd 命令
(1)格式:
useradd [选项] 用户名
(2)选项:
-u:指定 uid 标记号
-d:指定宿主目录,缺省默认为 /home 用户名
-e:指定账号失效时间
-M:不为用户建立初始化宿主目录
-s:指定用户的登陆 shell
-g:指定用户的基本组名(或 gid 号)
-G:指定用户的附加组名(或 gid号)
-c:添加备注,显示在 /etc/passwd 第五字段
(3)示例:
[root@huyouba1 ~]# groupadd group1
[root@huyouba1 ~]# mkdir -p /testgroup1
[root@huyouba1 ~]# groupadd jiaoxue
[root@huyouba1 ~]# useradd -d /testgroup1/tom -g group1 -G jiaoxue -s /bin/bash -e 2020-01-01 tom
[root@huyouba1 ~]# passwd tom
更改用户 tom 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@huyouba1 ~]# tail -1 /etc/passwd
tom:x:1000:1002::/testgroup1/tom:/bin/bash
[root@huyouba1 ~]# tail -1 /etc/shadow
tom:$6$kgdrbTGg$veH6QQLQPqNcnXvSCw1uFHMVVB5.zovQli0Ow4mgKToGIsZf55mgrrqcb4DzudJjEd4Rg.MCJg7M.1.71ynzM.:18204:0:99999:7::18262:
3.用户账号的初始配置文件
(1)文件来源:
新建用户账号时,从 /e tc/skel/ 目录中复制而来
(2)主要的用户初始配置文件:
1> ~/.bash_profile:每次登陆时执行
2> ~/.bashrc:每次进入新 bash 环境时执行
3> ~/.bash_logout:每次退出登陆时执行
(3)进行修改后查看具体作用:
[root@huyouba1 ~]# vim ~tom/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
echo "welcome tom!" 【增加此内容】
保存并退出
[root@huyouba1 ~]# vim ~tom/.bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
echo "Hi! This is new bash!" 【增加此内容】
保存并退出
[root@huyouba1 ~]# vim ~tom/.bash_logout
# ~/.bash_logout
echo "bye bye tom!"
sleep 3
保存并退出
以 tom 身份登陆
4.设置/更改用户口令 passwd 命令
(1)格式:
passwd [选项] 用户名
(2)常用选项:
-d:清空用户密码
-l:锁定用户账号
-S:查看用户账号的状态(是否被锁定)
-u:解锁用户账号
-x,–maximum=DAYS:密码的最长有效时限
-n,–minimum=DAYS:密码的最短有效时限
-w,–warning=DAYS:在密码过期前多少天开始提醒用户
-i,–inactive=DAYS:当密码过期后经过多少天该账号会被禁用
(3)示例:
[root@huyouba1 ~]# passwd -l tom
锁定用户 tom 的密码 。
passwd: 操作成功
[root@huyouba1 ~]# passwd -S tom
tom LK 2019-11-04 0 99999 7 -1 (密码已被锁定。)
[root@huyouba1 ~]# passwd -u tom
解锁用户 tom 的密码。
passwd: 操作成功
[root@huyouba1 ~]# passwd -S tom
tom PS 2019-11-04 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@huyouba1 ~]# passwd -d tom
清除用户的密码 tom。
passwd: 操作成功
5.修改用户属性 usermod 命令
(1)格式:
usermod [选项] … 用户名
(2)常用选项:
-l:更改用户账号的登录名字
-c:修改用户备注
-L:锁定用户账号
-U:解锁用户账户
以下选项与 useradd 命令中的含义相同:-u、-d、-e、-s、-c
(3)示例:
[root@huyouba1 ~]# usermod -l tom1 tom
[root@huyouba1 ~]# tail -1 /etc/passwd
tom1:x:1000:1002::/testgroup1/tom:/bin/bash
[root@huyouba1 ~]# usermod -c jiaoxue tom1
[root@huyouba1 ~]# tail -1 /etc/passwd
tom1:x:1000:1002:jiaoxue:/testgroup1/tom:/bin/bash
6.删除用户账号 userdel 命令
(1)格式:
userdel 用户名
(2)常用选项:
-r:删除用户的同时删除用户的宿主目录
(3)示例:
[root@huyouba1 ~]# userdel -r tom1
[root@huyouba1 ~]# ls /testgroup1/
二、组帐号管理
1.组账号概述
(1)组账号分类:
基本组(私有组)
附加组(公共组)
(2)GID:组标识号
(3)组账号文件
1> /etc/group:保存组账号基本信息
2> /etc/gshadow:保存组账号的密码信息(较少使用)
2.添加组账号 groupadd 命令
(1)格式:
groupadd [-g GID] 组账号名
(2)常用选项:
-g GID
(3)示例:
[root@huyouba1 ~]# tail -3 /etc/group
gourp1:x:1000:
jiaoxue:x:1001:
group1:x:1002:
[root@huyouba1 ~]# groupadd -g 888 market
[root@huyouba1 ~]# tail -4 /etc/group
gourp1:x:1000:
jiaoxue:x:1001:
group1:x:1002:
market:x:888:
3.设置组账号密码(极少用),添加、删除组成员 gpasswd 命令
(1)格式:gpasswd [选项] … 组账号名
(2)常用选项:
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
(3)示例:
[root@huyouba1 ~]# useradd test1
[root@huyouba1 ~]# useradd test2
[root@huyouba1 ~]# useradd test3
[root@huyouba1 ~]# gpasswd -a test1 market
正在将用户“test1”加入到“market”组中
[root@huyouba1 ~]# tail -4 /etc/group
market:x:888:test1
test1:x:1003:
test2:x:1004:
test3:x:1005:
[root@huyouba1 ~]# gpasswd -d test1 market
正在将用户“test1”从“market”组中删除
[root@huyouba1 ~]# tail -4 /etc/group
market:x:888:
test1:x:1003:
test2:x:1004:
test3:x:1005:
[root@huyouba1 ~]# gpasswd -M test1,test2,test3 market
[root@huyouba1 ~]# tail -4 /etc/group
market:x:888:test1,test2,test3
test1:x:1003:
test2:x:1004:
test3:x:1005:
(4)添加或删除组成员,也可用 vi 编辑器对 /etc/group 文件直接编译修改
[root@huyouba1 ~]# groups test2
test2 : test2
[root@huyouba1 ~]# groups test3
test3 : test3
[root@huyouba1 ~]# vim /etc/group
[root@huyouba1 ~]# groups test2
test2 : test2 market
[root@huyouba1 ~]# groups test3
test3 : test3 market
4.删除组账号 groupdel 命令
(1)格式:
groupdel 组账号名
(2)示例:
[root@huyouba1 ~]# groupdel market
[root@huyouba1 ~]# tail -5 /etc/group
jiaoxue:x:1001:
group1:x:1002:
test1:x:1003:
test2:x:1004:market
test3:x:1005:market
三、查询命令–id、groups、finger、w、whoami、who
1.id命令
(1)作用:
查询用户身份标识
(2)格式:
id [用户名]
(3)示例:
[root@huyouba1 ~]# id tom
uid=1003(tom) gid=1006(tom) 组=1006(tom)
[root@huyouba1 ~]# id
uid=0(root) gid=0(root) 组=0(root)
2.groups 命令
(1)作用:
查询客户所属的组
(2)格式:
groups [用户名]
(3)示例:
[root@huyouba1 ~]# groups tom
tom : tom
[root@huyouba1 ~]# groups
root
2.finger 命令(需安装,安装过程详见“Linux 系统管理03”
(1)作用:
查询账号的详细信息
(2)格式:
finger [用户名]
(3)示例:
[root@huyouba1 ~]# finger tom
Login: tom Name:
Directory: /home/tom Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[root@huyouba1 ~]# finger
Login Name Tty Idle Login Time Office Office Phone Host
root root tty1 1:47 Nov 3 17:41
root root pts/1 Nov 4 18:00 (192.168.100.221)
4.w 命令
(1)作用:
查询已登录到主机的用户信息
(2)示例:
[root@huyouba1 ~]# w
20:01:20 up 4:06, 2 users, load average: 0.06, 0.03, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 日17 1:49m 0.54s 0.54s -bash
root pts/1 192.168.100.221 18:00 0.00s 1.25s 0.00s w
5.whoami
(1)作用:
查询当前登录的账号名
(2)示例:
[root@huyouba1 ~]# whoami
root
6.who
(1)作用:
与 w 命令类似,查询已登录到主机的用户
(2)示例:
[root@huyouba1 ~]# who
root tty1 2019-11-03 17:41
root pts/1 2019-11-04 18:00 (192.168.100.221)