当前位置: 首页 > news >正文

linux-用户和组

linux-用户和组

  • 前言
  • 一、用户管理
    • 1. 用户账户类型
    • 2. 主要命令
      • 2.1 useradd
      • 2.2 usedel
      • 2.3 usermod
      • 2.4 su
    • 3. 查看用户登录信息
      • 3.1 w
      • 3.2 who
      • 3.3 last
      • 3.4 lastlog
      • 3.5 lastb
    • 4. 用户配置文件
      • 4.1 /etc/passwd
      • 4.2 /etc/shadow
      • 4.3 /etc/login.defs
    • 5. 手工新建用户
  • 二、组管理
    • 1. 组分类
    • 2. 组配置文件
  • 总结


前言

用户和组是进行权限管理的基础

先建组,再建用户

tail -f /var/log/secure
Jun 11 18:50:41 hz useradd[1398]: new group: name=first, GID=1057
Jun 11 18:50:41 hz useradd[1398]: new user: name=first, UID=1057, GID=1057, home=/home/first, shell=/bin/bash, from=/dev/pts/0


一、用户管理

1. 用户账户类型

  • 超级用户:拥有系统的最高权限,能进行所有操作  root 0
  • 系统用户:是为了运行系统服务而创建的(如启动程序,或者登录某个应用\服务),一般不允许登录系统  uid 1-999
  • 普通用户:供日常使用,权限受到一定限制  uid>1000

每个用户通过唯一的用户 ID(UID) 标识


2. 主要命令

2.1 useradd

创建用户

格式:useradd [选项]… 用户名

常用命令选项
-u: 指定uid标记号
-d: 指定宿主目录,缺省为 /home/用户名
-e: 指定账户失效时间
-g: 指定用户的基本组名(或gid号)
-G: 指定用户的附加组名(或gid号)
-M: 不为用户建立并初始化宿主目录
-s: 指定用户登录的Shell
-c: 用户注释描述信息
-r: 新建系统用户,不会有新建家目录

[root@hz ~]# useradd -u 7788 -g 0 -G 1031 -s /bin/sh -c “nongda student” -d/home/zheng1 zheng1
[root@hz ~]# tail -1 /etc/passwd
zheng :x :7788:0:nongda student:/home/zheng1:/bin/sh
[root@hz ~]# id zheng1
用户id=7788(zheng1) 组id=0(root) 组=0(root),1031(panmingqian)


2.2 usedel

-r 删除用户的家目录和邮箱

/var/spool/mail 用户邮箱的路径,默认情况下邮箱的名字和用户名同名

[root@hz ~]userdel -r zhangsan
[root@hz ~]# id zhangsan
id: “zhangsan”:无此用户


2.3 usermod

修改用户信息

usermod -d /home/newdir zhangsan


2.4 su

重新登录root,root用户切换到任何用户都不需要密码
su - user
su user

-, -l, --login
Start the shell as a login shell with an environment
similar to a real login:

       •   clears all the environment variables except TERM andvariables specified by --whitelist-environment	除TERM环境变量外,其他的环境变量都清除•   initializes the environment variables HOME, SHELL,USER, LOGNAME, and PATH		初始化HOME,SHELL,USER,LOGNAME,PATH环境变量•   changes to the target user’s home directory	切换到用户的家目录•   sets argv[0] of the shell to '-' in order to make theshell a login shell告知 shell 以 “登录模式” 启动,从而加载完整的环境配置文件

[root@hz ~]# su - zhangwji
[zhangwji@hz ~]$ id
用户id=1058(zhangwji) 组id=1004(wudang) 组=1004(wudang),1058(mingjiao) 上下文=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[zhangwji@hz ~]$ exit
exit   # 退出


3. 查看用户登录信息

3.1 w

显示当前登录的用户、登录时间、终端、CPU / 内存使用等信息

-h, --no-header do not print header
-u, --no-current ignore current process username
-f, --from show remote hostname field

load average 分别对应系统在过去 1 分钟、5 分钟、15 分钟 内的平均负载

[root@rocky ~]# w
19:35:10 up 45 min, 2 users, load average: 0.00, 0.03, 0.01
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 18:49 1.00s 0.05s 0.00s w
root pts/1 18:49 42:22 0.02s 0.02s -bash

[root@rocky ~]# w -f
11:53:08 up 2:26, 2 users, load average: 0.01, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.168.1 09:27 3.00s 0.07s 0.00s w -f
root pts/1 192.168.168.1 09:46 16:44 0.00s 0.00s -bash


3.2 who

简洁显示当前登录用户的用户名、终端和登录时间

[root@rocky ~]# who
root pts/0 2025-06-12 18:10 (192.168.168.1)


3.3 last

读取 /var/log/wtmp 文件,查看最近有哪些用户登录过系统

[root@rocky ~]# last
root pts/0 192.168.168.1 Thu Jun 12 18:10 still logged in
reboot system boot 5.14.0-427.13.1. Thu Jun 12 17:59 still running
root pts/1 192.168.168.1 Wed Jun 11 18:49 - 20:37 (01:47)
root pts/0 192.168.168.1 Wed Jun 11 18:49 - 20:37 (01:47)


3.4 lastlog

分析所有用户是否登录过系统

读取 /var/log/lastlog 文件,显示每个用户的最后登录时间、IP 和终端

[root@rocky ~]# lastlog	
Username         Port     From         Latest
root             pts/0                四 6月 12 18:46:52 +0800 2025
bin                                   **从未登录过**
daemon                                **从未登录过**

3.5 lastb

读取 /var/log/btmp 文件,显示登录失败的历史记录

[root@rocky ~]# lastb
root pts/0 Wed Jul 9 19:38 - 19:38 (00:00)
 
btmp begins Wed Jul 9 19:38:00 2025


4. 用户配置文件

4.1 /etc/passwd

保存用户基本信息

[root@hz ~]# ls /etc/passwd*
/etc/passwd /etc/passwd-
备份文件,但是有差异,差一次操作
diff 用来判断文本文件是否有差异 different
[root@hz ~]# diff /etc/passwd /etc/passwd-
76d75
< zheng1:x :7788:0:nongda student:/home/zheng1:/bin/sh


4.2 /etc/shadow

保存用户密码(加密存储)及密码策略

第二个字段如果是!!或者*表示没有设置密码

禁用用户 --> 用户不能登录linux系统

  1. 修改/etc/passwd
    shell改成/sbin/nologin
  2. 修改/etc/shadow
    passwd -l lock 锁定
    passwd -u 解锁
  3. 删除用户
    userdel

4.3 /etc/login.defs

默认账户的属性文件
/etc/login.defs 规定了用户账户创建和管理的默认属性及初始化设置参数
defaults 默认/缺省


5. 手工新建用户

手工新建一个用户 zhangjie
组singer uid 3006 gid 3006 home_dir /home/zhangjie 注释 china famous singer shell /bin/bash

  1. 修改/etc/passwd文件,添加信息

zhangjie:x :3306:3306:china famous singer:/home/zhangjie:/bin/bash

  1. 修改/etc/shadow文件,添加信息

zhangjie:!!:20251:0:99999:7:::

  1. 修改/etc/group文件

singer:x :3006:

  1. 新建家目录

mkdir /home/zhangjie

  1. 进入/etc/skel目录,复制初始化bash环境变量的脚本文件

[root@hz ~]# ls -a /etc/skel
. … .bash_logout .bash_profile .bashrc

.bash_profile	用户每次登录时执行	--》bash的配置文件,bash程序启动时,会加载这个文件里的配置
.bashrc	每次进入新的bash环境时执行	--》每次启动一个新的bash时,就会加载里面的配置 
.bash_logout	用户每次退出登录时执行
.bash_history	记录存放上次注销前使用的历史命令

[root@hz ~]# cp /etc/skel/.bash* /home/zhangjie
[root@hz ~]# ls -a /home/zhangjie
. … .bash_logout .bash_profile .bashrc

  1. 新建邮箱

[root@hz ~]# cd /var/spool/mail
[root@hz mail]# touch zhangjie

  1. 登录验证

[root@hz mail]# su - zhangjie
[zhangjie@hz ~]$
[zhangjie@hz ~]$ mkdir zhang
mkdir: 无法创建目录 “zhang”: 权限不够
[zhangjie@hz ~]$ ll -d /home/zhangjie
drwxr-xr-x. 2 root root 62 6月 12 20:04 /home/zhangjie
[zhangjie@hz ~]$ chown -R zhangjie:singer /home/zhangjie
chown: 正在更改’/home/zhangjie/.bash_logout’ 的所有者: 不允许的操作
chown: 正在更改’/home/zhangjie/.bash_profile’ 的所有者: 不允许的操作
chown: 正在更改’/home/zhangjie/.bashrc’ 的所有者: 不允许的操作
chown: 正在更改’/home/zhangjie’ 的所有者: 不允许的操作
[zhangjie@hz ~]$ exit
注销

change owner --> root
将/home/zhagnjie归属改为zhagnjie用户所有,singer组所有

[root@hz mail]# chown -R zhangjie:singer /home/zhangjie
[root@hz mail]# ll -a /home/zhangjie
总用量 16
drwxr-xr-x. 2 zhangjie singer 62 6月 12 20:04 .
drwxr-xr-x. 63 root root 4096 6月 12 19:55 …
-rw-r–r–. 1 zhangjie singer 18 6月 12 20:04 .bash_logout
-rw-r–r–. 1 zhangjie singer 141 6月 12 20:04 .bash_profile
-rw-r–r–. 1 zhangjie singer 492 6月 12 20:04 .bashrc
[root@hz mail]# chmod 700 /home/zhangjie
[root@hz mail]# ll -d /home/zhangjie
drwx------. 2 zhangjie singer 62 6月 12 20:04 /home/zhangjie
[root@hz mail]# su - zhangjie
上一次登录: 四 6月 12 20:08:27 CST 2025 pts/0 上
[zhangjie@hz ~]$ mkdir zhang
[zhangjie@hz ~]$ ll
总用量 0
drwxr-xr-x. 2 zhangjie 3306 6 6月 12 20:17 zhang

修改邮箱的权限和拥有者

[root@hz mail]# chown zhangjie:mail /var/spool/mail/zhangjie
[root@hz mail]# chmod 660 /var/spool/mail/zhangjie
[root@hz mail]# ll /var/spool/mail/zhangjie
-rw-rw----. 1 zhangjie mail 0 6月 12 20:06 /var/spool/mail/zhangjie


二、组管理

1. 组分类

主要组:gid -g -->基本组
次要组:-G --》附属组

[root@hz ~]# groupadd mingjiao
[root@hz ~]# useradd zhangwji -g wudang -G mingjiao
[root@hz ~]# id zhangwji
用户id=1058(zhangwji) 组id=1004(wudang) 组=1004(wudang),1058(mingjiao)

切换主要组

[zhangwji@hz ~]$ newgrp mingjiao
[zhangwji@hz ~]$ id
用户id=1058(zhangwji) 组id=1058(mingjiao) 组=1058(mingjiao),1004(wudang) 上下文=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023


2. 组配置文件

/etc/group
保存组信息


总结

用户和组的作用
1.对文件进行管理,权限管理
2.登录系统
3.启动权限

http://www.dtcms.com/a/271626.html

相关文章:

  • GIS使用方法详解
  • 在线生成树形目录文本
  • uniapp真机调试“没有检测到设备,请插入设备或启动模拟器后点击刷新再试”
  • TCP/IP常用协议
  • sftGRPO
  • 链表算法之【删除链表的倒数第n个节点】
  • 如何将FPGA设计的验证效率提升1000倍以上(3)
  • Spark流水线数据对比组件
  • vue3实战:.ts文件中的interface定义与抛出、其他文件的调用方式
  • Vue 中使用 Cesium 实现可拖拽点标记及坐标实时显示功能
  • 投机采样(Speculative Decoding)
  • Python—数据容器
  • 【解决方法】ollama在powershell或者cmd运行时乱码报错
  • C++11 std::move与std::move_backward深度解析
  • 7、整合前几篇插件列表
  • 单片机STM32F103:DMA的原理以及应用
  • 滚筒式茶叶杀青机设计【12张+总装图】+三维图+设计说明书+绛重
  • Hugging Face Agents Course unit1笔记
  • Pycharm 报错 Environment location directory is not empty 如何解决
  • Vue2开发:使用vuedraggable实现菜单栏拖拽
  • 什么是AI Agent同步调用工具和异步调用工具?
  • python实践思路(草拟计划+方法)
  • 力扣-240.搜索二维矩阵 II
  • 【C#】PanelControl与Panel
  • 【RidgeUI AI+系列】猜密码游戏
  • miniconda 初始化 base 环境
  • 洛谷 P2880 [USACO07JAN] Balanced Lineup G-普及/提高-
  • 图神经网络 gnn 应用到道路网络拓扑结构与交通碳排放相关性。,拓扑指标量化、时空关联模型及演化机制分析
  • NVIDIA显卡驱动安装失败的解决办法(例如7-zip data error或脚本错误)
  • 数据库技术体系及场景选型方案