Linux 系统管理04-账号管理

一、用户账号管理

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)

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦