学习笔记-用户与组管理

3 用户与组管理

3.1 用户与组概述

3.1.1 Linux用户账户及其类型

1)超级用户(super user)UID:0

超级用户就是根账户root,可以执行所有任务,在系统不受限制地执行任何操作。root账户具有最高的系统权限,它类似于Windows系统中的管理员账户,但是比Windows系统中管理员账户的权限更高,一般情况下不要直接使用root账户。

2)系统用户(system user)UID:1~499 65534

这是系统本身或应用程序使用的专门账户。其中供服务使用的又称服务账号。它并没有特别的权限,通常又分为两种,一种是由Linux系统安装时自行建立的系统账号,另一种是用户自定义的系统账户。Windows系统中用于服务的特殊内置账号Local System(本地系统)、Local Service(本地服务)、Network Service(网络服务)等与Linux系统账户有些相似。

3)普通用户(regular user)UID: 从1000开始(多数Linux系统从500开始)

这是供实际用户登录使用的普通账户。此类用户登录到Linux系统,不执行管理任务,主要用于运行文字处理、收发邮件等日常操作。

3.1.2 Ubuntu的超级用户权限与管理员

一种方法是用户执行su命令(不带任何参数)将自己提升为root权限(需要提供root密码)。

linx@ubuntu:~$ su
密码: 
root@ubuntu:/home/linx# exit
exit
linx@ubuntu:~$ 

另一种方法是使用命令行工具sudo临时使用root身份运行程序,执行完毕后自动返回普通用户状态

linx@ubuntu:~$ cat /etc/sudoers
cat: /etc/sudoers: 权限不够
linx@ubuntu:~$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root	ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
linx@ubuntu:~$ cat /etc/sudoers
cat: /etc/sudoers: 权限不够

3.1.3 组账户及其类型

组是一类特殊账户,就是指具有相同或者相似特性的用户集合,又称用户组,也有译为“群组”或“组群”的。比如可以为一个部门的所有用户创建一个用户组。将权限赋予某个组,组中的成员用户即自动获得这种权限。如果一个用于属于某个组,该用户就具有在该本地计算机上执行各种任务的权利和能力。可以向以组用户,而不是每一个用户分配权限。

与用户账户类似,组账户分为超级组(Superuser Group)、系统组(System)和自定义组。

3.1.4 用户与组配置文件

linx@ubuntu:~$ cat /etc/passwd | grep "linx"
linx:x:1000:1000:ubuntu-20.04.2.0,,,:/home/linx:/bin/bash
linx@ubuntu:~$ cat /etc/passwd | grep "root"
root:x:0:0:root:/root:/bin/bash

基本格式如下:

账户名:密码:UID:GID:注释:主目录:Shell

  • 账户名是用户名,又称登录名。最长不超过32个字符,可使用下划线和连字符。

  • 密码使用x表示,因为passwd文件不保存密码信息。

  • UID是用户账户的编号。

  • GID用于标识用户所属的默认组。

  • 注释可以是用户全面或其他说明信息(如电话)。

  • 主目录是用户登录后首次进入的目录,这里必须使用绝对路径。

  • Shell是用户登录后所使用的一个命令行界面。

linx@ubuntu:~$ sudo cat /etc/shadow | grep "root"
[sudo] linx 的密码: 
root:$6$2X8PfpyJ.O.xVigI$a38YtAmqXpnpTJxM5x1n6P6MKxM62XzFktpDWy.SodoVX1Hhk5NEYJSAblujJiSHiGuaq1e2EGicj320LnML1/:18710:0:99999:7:::
linx@ubuntu:~$ sudo cat /etc/shadow | grep "linx"
linx:$1$aKYbmgq8$.K.fVYA5BNeVmIkIiMvr60:18706:0:99999:7:::

基本格式如下:

账户名:密码:最近一次修改:最短有效期:最长有效期:过期前警告:过期日期:禁用:保留用于未来扩展

  • 密码:存储时加密后的用户密码。该字段值如果为空,表示没有密码;如果为!!,则表示密码已被禁用(锁定)。
  • 最近一次修改:最近一次修改密码的日期,这是相对日期格式,即从1970年1月1日到修改日期的天数。
  • 最短有效期:表示密码多少天内不许修改,0表示随时修改。
  • 最长有效期:表示多少天后必须修改。
  • 过期前警告:表示密码过期之前多少天开始发出警告信息。
  • 过期日期:如果值为空,则表示永不过期。
linx@ubuntu:~$ cat /etc/group | grep "linx"
adm:x:4:syslog,linx
cdrom:x:24:linx
sudo:x:27:linx
dip:x:30:linx
plugdev:x:46:linx
lpadmin:x:120:linx
lxd:x:131:linx
linx:x:1000:
sambashare:x:132:linx
linx@ubuntu:~$ cat /etc/group | grep "root"
root:x:0:

基本格式如下:

组名:组密码:GID:组成员列表

用户的主要组不会将该用户自己作为成员列出,只有用户的次要组才会将其作为成员列出。

linx@ubuntu:~$ sudo cat /etc/gshadow | grep "linx"
[sudo] linx 的密码: 
adm:*::syslog,linx
cdrom:*::linx
sudo:*::linx
dip:*::linx
plugdev:*::linx
lpadmin:!::linx
lxd:!::linx
linx:!::
sambashare:!::linx
linx@ubuntu:~$ sudo cat /etc/gshadow | grep "root"
[sudo] linx 的密码: 
root:*::

基本格式如下:

组名:加密后的组密码:组管理员:组成员列表

3.2 使用图形化工具管理用户和组

3.2.1 创建和管理用户账号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D6mDhni9-1616696856951)(D:\workspace\Typora\img\用户与组管理\image-20210325012548741.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d29jh56K-1616696856959)(D:\workspace\Typora\img\用户与组管理\image-20210325013012029.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LzLQc9QW-1616696856963)(D:\workspace\Typora\img\用户与组管理\image-20210325013131603.png)]

可以下载“用户和组”管理工具,进行用户管理。

sudo apt-get install gnome-system-tools

3.2.2 创建和管理组账户

后续补

3.3 使用命令行工具管理用户合组

3.3.1 管理用户账户

查看用户账户

#通过用户配置文件查看
linx@ubuntu:~$ sudo cat /etc/passwd
#只查看指定用户
linx@ubuntu:~$ sudo cat /etc/passwd | grep "linx"
#查看所有用户只展示名称
linx@ubuntu:~$ awk -F':' '{print $1}' /etc/passwd

添加用户账户

格式:useradd [选项] <用户名>

linx@ubuntu:~$ sudo useradd wang

查看显示默认的useradd配置。

linx@ubuntu:~$ cat /etc/default/useradd
linx@ubuntu:~$ useradd -D

Ubuntu还特别提供了一个adduser命令用于创建用户账户,其选项使用长格式,其选项使用长格式。添加一个普通用户(非管理员用户)的语法格式如下:

adduser [--home 用户主文件夹] [--shell SHELL] [--no-create-home(无主文件夹)] [--uid 用户ID] [--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup 用户组 | --gid 组ID] [--disabled-password(禁用密码)] [--disabled-login(禁止登录)] [--encrypt-home] 用户名

添加一个管理员账号

adduser --system [--home 用户主文件夹] [--shell SHELL] [--no-create-home(无主文件夹)] [--uid 用户ID] [--gecos GECOS] [--group | --ingroup 用户组 | --gid 组ID] [--disabled-password(禁用密码)] [--disabled-login(禁止登录)] 用户名

管理用户账户密码

#创建用户时如果没有设置密码,账户将处于锁定状态。此时用户账户将无法登录系统。可以到/etc/shadow文件中查看,密码部分为!
linx@ubuntu:~$ sudo cat /etc/shadow | grep "wang"

设置账户密码

格式:passwd [选项] [用户名]

sudo passwd wang

账号密码锁定与解锁

sudo passwd -l wang
sudo passwd -u wang

查询密码状态

sudo passwd -S zhangsan

删除账户密码

sudo passwd -d wang

修改用户账户

格式:usermod [选项] 用户名

#使用-l选项改变用户账户名
sudo usermod -l 新用户名 原用户名
#使用-L选项锁定账户,临时禁止该用户登录
sudo usermod -L 用户名
#使用-U选项解锁账户
sudo usermod -U 用户名

更改用户的个人信息

格式:chfn [选项] [用户名]

#修改真实姓名
sudo chfn -f linxIT linx
#修改家庭电话
sudo chfn -h 15750980650 linx
#修改办公地址
sudo chfn -o fujian linx

删除用户账户

格式:userdel [-r] 用户名

sudo userdel -r wang

另一个删除命令

#同时删除用户的主目录和邮箱
sudo deluser --remove-home wang
#删除用户拥有的所有文件
sudo deluser --remove-all-files wang
#删除前将文件备份
sudo deluser --backup wang
#指定备份的目标目录(默认是当前目录)
sudo deluser --backup-to <DIR> wang
#只有当该用户是系统用户时才删除
sudo deluser --system wang

3.3.2 管理组账户

创建组账户

格式:groupadd [选项] 组名

#创建组账户
sudo groupadd test
#创建组账户并自行指定组的GID
sudo groupadd -g 1500 test
#创建管理组
sudo groupadd -r admin

与创建用户账户一样,Ubuntu还特别提供一个addgroup命令用于创建组账号,其选项使用长格式,该命令执行过程中可提供交互对话。

添加一个普通用户组的格式:addgroup [–gid ID] 组名

添加一个管理员用户组的格式:addgroup --system [–gid 组 ID] 组名

修改组账户

格式:groupmod [-g GID] [-n 新组名] 组名

删除组账户

格式:groupdel 组名

另一个删除组账户命令

#表示只有当该用户时系统用户组才能删除
sudo delgroup --system test
#表示只有当该用户组中无成员时才能删除
sudo delgroup --only-if-empty

管理组成员

查看用户所属的全部组

#显示当前登录用户所属的全部组
groups
#显示指定用户所属的全部组
groups wang

查看组的组成员

sudo cat /etc/group

添加用户到到指定组

格式:gpasswd --a 用户名 组名

另一种:adduser 用户名 组名

从组中删除指定用户

格式 :gpasswd --d 用户名 组名

另一种:deluser 用户名 组名

添加若干个组成员

格式:gpasswd --M 用户名,用户名,… 组名

3.3.3 其他用户管理命令

查看用户信息

格式:id [选项] [用户名

#查看当前登录的用户信息
id
#查看指定用户名的账户信息
id wang

查看登录用户

who

管理员可以查看历史登录情况

#查看历史登录情况
last
#查看指定用户名的登录情况
last wang
#查看近5次的登录事件
last -5
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值