当前位置: 首页 > 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.xdnf.cn/news/1093501.html

相关文章:

  • 语音识别核心模型的数学原理和公式
  • aichat-core简化 LLM 与 MCP 集成的前端核心库(TypeScript)
  • 前端开发自动化设计详解
  • C#基础篇(10)集合类之列表
  • Ubuntu重装系统后ssh连接不上(遇到 ​​“Unit ssh.service not found“​​ 错误)
  • 钉钉企业应用开发技巧:查询表单实例数据新版SDK指南
  • 【02】MFC入门到精通——MFC 手动添加创建新的对话框模板
  • php7.4使用 new DateTime;报错 Class DateTime not found
  • 轻松更改 Power BI 中的数据源类型
  • Using Spring for Apache Pulsar:Message Production
  • SpringCache整合SpringBoot使用
  • 分类预测 | Matlab基于KPCA-ISSA-SVM和ISSA-SVM和SSA-SVM和SVM多模型分类预测对比
  • 力扣 hot100 Day39
  • HashMap的get、put流程源码分析
  • Redis-哨兵机制doctor环境搭建
  • 零基础上手 Amazon DynamoDB:NoSQL 数据库服务的核心概念与快速搭建指南
  • 3.常⽤控件
  • 主流大模型Agent框架ChatDev详解
  • 2023年华为杯研究生数学建模竞赛A题WLAN组网分析
  • RAGFlow 与 QAnything 智能切片对比:深度解析与优劣考量
  • 存储服务一NFS文件存储概述
  • python+vue的会议室预定管理系统
  • 板凳-------Mysql cookbook学习 (十一--------6)
  • 池化思想-Mysql异步连接池
  • linux操作命令笔记
  • 【工具变量】上市公司企业金融强监管数据、资管新规数据(2001-2024年)
  • zabbix安装agent并连接
  • 《【第五篇】图片处理自动化:让你的视觉内容更专业!:图片处理基础与批量裁剪》
  • AI 辅导究竟蕴含着怎样的独特优势?​
  • Senior 工程师的定义:深度专精 vs 高层次视野