0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用户与组管理全攻略之确保权限分配无懈可击

马哥Linux运维 来源:马哥Linux运维 2024-11-25 16:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

目录

用户和组管理

用户管理

密码管理

组管理

用户创建命令useradd

用户删除命令userdel

查看用户帐号的信息命令id

usermod 修改用户帐号属性的命令

切换用户命令su

密码管理命令passwd

密码生成工具openssl

创建组命令groupadd

删除组命令groupdel

各配置文件说明

密码复杂性

用户和组概念

用户分类

Linux安全上下文

Linux用户组类别

何为用户何为组?

Linux用户和组相关的配置文件

用户和组相关的管理命令

何为用户何为组?

用户和组概念

例子
进火车站刷脸
上下班刷指纹
天地会接头暗号

用户存在的目的是为了实现资源的分派。

例子
共享单车抱回家
总经理行使权利

Authentication:认证
Authorization:授权
Accouting:审计

用户分类

Linux用户分为管理员和普通用户两种:

用户类别 用户ID
管理员 0
普通用户 1-65535

其中普通用户又分为系统用户和登录用户两种:

用户类别 用户ID
系统用户 1-999(为守护类进程获取系统资源而完成权限指派的用户)
登录用户 1000-60000(为了完成交互式登录使用的用户)

Linux安全上下文

运行中的程序:进程(process)
1.2 以进程发起者的身份运行
1.2.1 root:cat
1.2.2 tom:cat
1.3 进程所能够访问的所有资源的权限取决于进程的发起者的身份

Linux通过安全上下文的概念完成用户权限的指派。
2.2 先判断用户是否是某文件的属主
2.3 再判断用户是否属于某个组
2.4 最后定其为其他用户

Linux用户组类别

用户组类别 特性
私有组 创建用户时,如果没有为其指定所属的组,
系统会自动为其创建一个与用户名相同的组
基本组 用户的默认组
附加组(额外组) 默认组以外的其它组

Linux用户和组相关的配置文件

各配置文件说明

配置文件 作用
/etc/passwd 用户及其属性信息(名称、uid、基本组id等等)
/etc/group 组及其属性信息
/etc/shadow 用户密码及其相关属性
/etc/gshadow 组密码及其相关属性。在用户执行基本组切换时使用
配置文件 /etc/passwd /etc/group
第一字段 用户名 组名
第二字段 密码占位符 组密码
第三字段 UID GID
第四字段 GID 以当前组为附加组的用户列表(分隔符为逗号)
第五字段 用户的描述信息
第六字段 用户家目录
第七字段 用户的登录shell
配置文件 /etc/shadow
第一字段 登录名
第二字段 加密后的密码
第三字段 最近一次更改密码的日期
第四字段 密码的最小使用期限
第五字段 密码的最大使用期限
第六字段 密码警告时间段
第七字段 密码禁用期
第八字段 帐号的过期日期
第九字段 保留字段

密码复杂性

密码复杂性策略:
1.2 使用数字、大写字母、小写字母及特殊字符中至少3种
1.3 足够长
1.4 使用随机密码,不要使用有意义的单词或数字
1.5 定期更换,不要使用最近曾经使用过的密码

用户和组相关的管理命令

用户管理

用户创建命令useradd

-u UID
useradd命令用来建立用户账号和创建用户的起始目录,使用权限是终极用户。-g:指定用户所属的起始群组。-G:指定用户所属的附加群组。

[root@lnh ~]# id root
uid=0(root) gid=0(root) groups=0(root)
//查看root用户信息
[root@lnh ~]# useradd xbz
[root@lnh ~]# id xbz 
uid=1000(xbz) gid=1000(xbz) groups=1000(xbz)
//查看用户id, 组id ,所属组
[root@lnh ~]# useradd -u 2000 xbz1
[root@lnh ~]# id xbz1
uid=2000(xbz1) gid=2000(xbz1) groups=2000(xbz1)
//定义用户id,一般组id也会和其一样

-g GID

[root@lnh ~]# useradd -g 2000 xbz1
[root@lnh ~]# id xbz1
uid=1001(xbz1) gid=2000(xbz1) groups=2000(xbz1)
//定义gid组id

-G groupname(组名)

[root@lnh ~]# useradd -G xbz1  xbz2
[root@lnh ~]# id xbz2
uid=1002(xbz2) gid=1002(xbz2) groups=1002(xbz2),2000(xbz1)
//给xbz2添加xbz1附属组

-c "COMMENT"

[root@lnh ~]# useradd -c xbz1 xbz3
[root@lnh ~]# id xbz3
uid=1003(xbz3) gid=1003(xbz3) groups=1003(xbz3)
[root@lnh ~]# useradd -c xx hh
[root@lnh ~]# tail -5  /etc/passwd
xbz:x:1000:1000::/home/xbz:/bin/bash
xbz1:x:1001:2000::/home/xbz1:/bin/bash
xbz2:x:1002:1002::/home/xbz2:/bin/bash
xbz3:x:1003:1003/home/xbz3:/bin/bash
hh:x:1004:1004/home/hh:/bin/bash
//注释信息

-d

[root@lnh ~]# useradd -d /home/xbz5 xbz5
[root@lnh ~]# cd ~xbz5/
[root@lnh xbz5]# pwd
/home/xbz5
//指定用户的家目录。此目录必须不能事先存在, 否则将不会从/home/xbz5中复制环境设置文件

-s,-M,-r

[root@lnh ~]# useradd -rMs /sbin/nologin tsb
[root@lnh ~]# ll /home/
total 0
drwx------. 2 hh  hh  62 Jul  3 18:24 hh
drwx------. 2 xbz xbz 62 Jul  3 17:44 xbz
//-r添加一个系统用户,-M创建用户时不创建家目录,-s登录shell不允许登录这个用户

用户删除命令userdel

[root@lnh ~]# userdel aaa
[root@lnh ~]# ls /home/
aaa  bbb
[root@lnh ~]# userdel -r bbb
[root@lnh ~]# ls /home/
aaa
//直接用userdel删除,其是默认不删除家目录,-r删除是连着家目录一起删除

查看用户帐号的信息命令id

id,-u,-g,-G

[root@lnh ~]# id xbz
uid=1000(xbz) gid=1000(xbz) groups=1000(xbz)
//查看用户信息
[root@lnh ~]# id -u xbz
1000
//用户id
[root@lnh ~]# id -g xbz
1000
//组id
[root@lnh ~]# id -G xbz
1000
//附属组

usermod 修改用户帐号属性的命令

-u UID ,-g GID,-ag

[root@lnh ~]# id tsb
uid=995(tsb) gid=992(tsb) groups=992(tsb)
[root@lnh ~]# usermod -u 111 tsb
//-u 修改用户id,不能和其他用户相同
[root@lnh ~]# usermod -g 993 tsb
[root@lnh ~]# id tsb
uid=111(tsb) gid=993(rngd) groups=993(rngd)
//修改组id,组必须事先存在
[root@lnh ~]# usermod -G xxxb tsb
[root@lnh ~]# id tsb
uid=111(tsb) gid=993(rngd) groups=993(rngd),1112(xxxb)
[root@lnh ~]# usermod -G xbz tsb
[root@lnh ~]# id tsb
uid=111(tsb) gid=993(rngd) groups=993(rngd),1000(xbz)
[root@lnh ~]# usermod -aG xxxb tsb
[root@lnh ~]# id tsb
uid=111(tsb) gid=993(rngd) groups=993(rngd),1000(xbz),1112(xxxb)
//-G修改附加组,没有加-a会覆盖前面的附加组

-md

[root@lnh ~]# ll /home/
total 0
drwx------. 2 1007 1007 62 Jul  3 18:53 aaa
drwx------. 2 xxxb xxxb 62 Jul  3 19:04 xxxb
[root@lnh ~]# usermod -md /opt/shan xxxb
[root@lnh ~]# ll /home/
total 0
drwx------. 2 1007 1007 62 Jul  3 18:53 aaa
[root@lnh ~]# ll /opt/
total 0
drwx------. 2 xxxb xxxb 62 Jul  3 19:04 shan
-rw-r--r--. 1 root root  0 Jul  3 07:55 xbz
//改变用户家目录的同时把原来家目录的文件移动到新的家目录中

-e -f

[root@lnh ~]# usermod -e 2022-7-7 xxxb
[root@lnh ~]# usermod -f 2 xxxb
[root@lnh ~]# cat /etc/shadow |grep xxxb 
xxxb19176:0:99999:7:2:19180:
//-e YYYY-MM-DD 指明用户帐号过期日期
//-f  设置过期的延缓期限

-L -U

[root@lnh ~]# passwd xxxb
Changing password for user xxxb.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@lnh ~]# usermod -L xxxb
[root@lnh ~]# cat /etc/shadow |grep xxxb 
xxxb:!$6$6RKtLUh/iJRAf5aq$J7MIzJ2sY2VrS5FmeNvrampnjO2S1HyRQKVJz2wYrRI0Qq35CrE/QyxjE6K8mhEV15JqmFOem9ICO0FbeEP6M/:19176:0:99999:7:2:19180:
[root@lnh ~]# usermod -U xxxb 
[root@lnh ~]# cat /etc/shadow |grep xxxb 
xxxb:$6$6RKtLUh/iJRAf5aq$J7MIzJ2sY2VrS5FmeNvrampnjO2S1HyRQKVJz2wYrRI0Qq35CrE/QyxjE6K8mhEV15JqmFOem9ICO0FbeEP6M/:19176:0:99999:7:2:19180:
//-L锁定帐号,被锁定的帐号在/etc/shadow文件中密码前面会有一个!感叹号
//-U 解锁帐号

-s shell

[root@lnh ~]# usermod -s /sbin/nologin xxxb
[root@lnh ~]# cat /etc/passwd |grep xxxb
xxxb:x:1122:1112::/opt/shan:/sbin/nologin
-s//禁止其登录shell进入xxxb

切换用户命令su

切换用户的方式 特点
su USERNAME 非登录式切换,即不会读取目标用户的配置文件
su - USERNAME 登录式切换,即会读取目标用户的配置文件。完全切换
su - 不指定用户时默认切换至root用户
root su至其他用户不需要密码,非root用户su至其他用户时需要输入目标用户的密码

[root@lnh ~]# su tushanbu
[tushanbu@lnh root]$ su -
Password: 
Last login: Sun Jul  3 19:56:01 CST 2022 from 192.168.222.1 on pts/0
[root@lnh ~]# su - tushanbu 
Last login: Sun Jul  3 19:57:00 CST 2022 on pts/0
[tushanbu@lnh ~]$ su -
Password: 
Last login: Sun Jul  3 19:57:31 CST 2022 on pts/0
//在root用户下可以直接su tushanbu进入,su -是不指定用户默认切换到root用户,su - tushanbu是登录的方式进行切换
[root@lnh ~]# su - tushanbu -c "mkdir xxx"
[root@lnh ~]# ls /home/tushanbu/
xxx
//不进入用户进行创建

bash的配置文件:

配置文件类型 配置文件路径
全局配置 etc/profile
/etc/profile.d/*.sh
/etc/bashrc
个人配置 ~/.bash_profile
~/.bashrc
配置文件类型 功能
profile类 为交互式登录的shell提供配置,用来设定环境变量、运行命令或脚本
bashrc类 为非交互式登录的shell提供配置,用来设定本地变量、定义命令别名
登录式shell如何读取配置文件?
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非登录式shell如何读取配置文件?
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

密码管理

密码管理命令passwd

passwd , --stdin

[root@lnh ~]# passwd tushanbu 
Changing password for user tushanbu.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.
//在root下可以直接进行设置密码
[root@lnh ~]# echo 1 |passwd --stdin tushanbu
Changing password for user tushanbu.
passwd: all authentication tokens updated successfully.
//标准输入获取用户密码

-l ,-u ,-d

[root@lnh ~]# passwd -l tushanbu 
Locking password for user tushanbu.
passwd: Success
//锁定用户
[root@lnh ~]# passwd -u tushanbu 
Unlocking password for user tushanbu.
passwd: Success
//解锁用户
[root@lnh ~]# passwd -d tushanbu 
Removing password for user tushanbu.
passwd: Success
//删除用户密码

-n ,-x,-w,-i

[root@lnh ~]# passwd -n 20 tushanbu 
Adjusting aging data for user tushanbu.
passwd: Success
//-n mindays最短使用天数20天
[root@lnh ~]# passwd -x 200 tushanbu 
Adjusting aging data for user tushanbu.
passwd: Success
//-x maxdays最长使用天数200天
[root@lnh ~]# passwd -w 10 tushanbu 
Adjusting aging data for user tushanbu.
passwd: Success
//-w warndays提前10天前发出过期警告
[root@lnh ~]# passwd -i 10 tushanbu 
Adjusting aging data for user tushanbu.
passwd: Success
//-i inactivedays可以延期10天
[root@lnh ~]# cat /etc/passwd |grep tushanbu
tushanbu1123:1123::/home/tushanbu:/bin/bash

密码生成工具openssl

//语法:openssl command [ command_opts ] [ command_args ]
command //包含标准命令、消息摘要命令、加密命令
version //查看程序版本号
dgst //提取特征码
passwd //生成密码
rand //生成伪随机数

[root@lnh ~]# openssl dgst -md5 /etc/fstab
MD5(/etc/fstab)= 431fca5169ffb3a30eb83c94a11dc2f6
//提取特征码
[root@lnh ~]# openssl passwd -1 -salt hellotom
Password: 
$1$hellotom$o9rUZ07NstylvbqW9RrdV/
//生成密码 openssl passwd -1 -salt string  string一般为8位
[root@lnh ~]# openssl rand -base64 20
aDsYyelB9h6ksGSke6A3bN4OzfI=
//生成随机数 openssl rand -base64 NUM,NUM表示随机数的长度
[root@lnh ~]# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 |xargs
VnRr0QqXyGGS5SHuv1Rl1KK3TYPbcb
//生成30位的密码

组管理

创建组命令groupadd

-g GID ,-r

[root@lnh ~]# groupadd bnx
//创建组
[root@lnh ~]# groupadd   -g 1222 xnx
//指定组id
[root@lnh ~]# groupadd -r xbn
//-r 创建一个系统组
[root@lnh ~]# cat /etc/passwd |grep xnx
[root@lnh ~]# cat /etc/passwd |grep xbn
[root@lnh ~]# cat /etc/group |grep xbn
xbn991:
[root@lnh ~]# cat /etc/group |grep xnx
xnx1222:
[root@lnh ~]# cat /etc/group |grep bnx
bnx2001:

删除组命令groupdel

[root@lnh ~]# groupdel bnx
[root@lnh ~]# groupdel xbn
[root@lnh ~]# groupdel xnx
[root@lnh ~]# cat /etc/group |grep bnx
[root@lnh ~]# cat /etc/group |grep xbn
[root@lnh ~]# cat /etc/group |grep xnx

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11821

    浏览量

    219595

原文标题:用户与组管理全攻略:确保权限分配无懈可击

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析 ADP1828 同步降压 PWM 控制器:设计与应用全攻略

    深入解析 ADP1828 同步降压 PWM 控制器:设计与应用全攻略 在电子工程师的日常工作中,电源管理是一个至关重要的领域。而 ADP1828 同步降压 PWM 控制器作为一款功能强大且应用广泛
    的头像 发表于 03-12 17:10 635次阅读

    深入解析TPS25961 eFuse:功能特性与应用设计全攻略

    深入解析TPS25961 eFuse:功能特性与应用设计全攻略 在电子工程师的日常设计工作中,电路保护和电源管理是至关重要的环节。今天,我们就来详细探讨一下德州仪器(TI)推出的TPS25961
    的头像 发表于 02-27 17:10 670次阅读

    低噪声时钟抖动清理器 LMK0480x 深度解析:从特性到应用全攻略

    低噪声时钟抖动清理器 LMK0480x 深度解析:从特性到应用全攻略 在电子电路设计领域,时钟抖动问题一直是影响系统性能的关键因素。为了解决这一问题,德州仪器(TI)推出的 LMK0480x 系列
    的头像 发表于 02-09 11:10 297次阅读

    零碳园区建设全攻略:政策导向+建设路径+技术支撑+实践案例

    零碳园区建设全攻略:政策导向+建设路径+技术支撑+实践案例 安科瑞销售工程师-蔡禹 咨询:18702109681 全球气候变化背景下,“双碳”目标成为中国发展的重要战略指引,园区作为工业碳排放核心
    的头像 发表于 02-06 16:48 1458次阅读
    零碳园区建设<b class='flag-5'>全攻略</b>:政策导向+建设路径+技术支撑+实践案例

    深入解析LM393-MIL双差分比较器:设计与应用全攻略

    深入解析LM393-MIL双差分比较器:设计与应用全攻略 在电子工程师的设计世界里,比较器是一种基础且至关重要的器件。今天,我们要详细探讨的是TI公司的LM393-MIL双差分比较器,它在众多领域
    的头像 发表于 02-05 15:50 564次阅读

    深度解析LM4906音频放大器:设计应用全攻略

    深度解析LM4906音频放大器:设计应用全攻略 在音频放大领域,设备性能、成本和尺寸的平衡一直是工程师关注的焦点。今天为大家详细介绍一款性能出色的音频放大器——德州仪器(TI)的LM4906,它以
    的头像 发表于 02-03 16:25 3229次阅读

    UPS不间断电源是什么?企业如何选型与维护?2026年全攻略

    不间断电源(UPS)。本文将为您深入解析UPS,并提供一份贴合当下需求的企业选型与维护全攻略。一、深度解析:UPS不仅仅是“备用电池”不间断电源(Uninterrupt
    的头像 发表于 01-16 10:46 1994次阅读
    UPS不间断电源是什么?企业如何选型与维护?2026年<b class='flag-5'>全攻略</b>

    迅为驱动开发实战:iTOP-RK3568开发板eDP屏幕移植全攻略

    迅为驱动开发实战:iTOP-RK3568开发板eDP屏幕移植全攻略
    的头像 发表于 12-30 15:42 1302次阅读
    迅为驱动开发实战:iTOP-RK3568开发板eDP屏幕移植<b class='flag-5'>全攻略</b>

    深入解析DLP650NE数字微镜器件:设计与应用全攻略

    深入解析DLP650NE数字微镜器件:设计与应用全攻略 在当今的显示技术领域,数字微镜器件(DMD)凭借其独特的优势,成为了众多显示应用的核心组件。TI的DLP650NE作为一款高性能的DMD,为全
    的头像 发表于 12-15 09:15 2274次阅读

    电能质量在线监测装置支持多账号权限管理吗?

    是的,电能质量在线监测装置普遍支持多账号权限管理 ,且符合 DL/T 1297-2013《电能质量监测系统技术规范》的明确要求。 一、核心权限管理模式与架构 基于角色的
    的头像 发表于 12-10 17:01 1353次阅读
    电能质量在线监测装置支持多账号<b class='flag-5'>权限</b><b class='flag-5'>管理</b>吗?

    GPS设计全攻略

    电子发烧友网站提供《GPS设计全攻略.pdf》资料免费下载
    发表于 12-01 17:10 0次下载

    医疗电子EMC整改:原理到实战的系统化全攻略策略

    深圳南柯电子|医疗电子EMC整改:原理到实战的系统化全攻略策略
    的头像 发表于 11-27 09:45 1112次阅读

    工业 / 民用电表排线全攻略:安全合规 + 高效布线,90% 电工都在用的标准化方案

    工业 / 民用电表排线全攻略:安全合规 + 高效布线,90% 电工都在用的标准化方案 电表布线错一步,安全隐患埋十年!电工师傅、装修负责人、物业工程人员注意了—— 不合格的电表排线不仅会导致跳闸
    的头像 发表于 11-06 21:17 1913次阅读
    工业 / 民用电表排线<b class='flag-5'>全攻略</b>:安全合规 + 高效布线,90% 电工都在用的标准化方案

    技术文章 | Ubuntu权限管理攻略

    将从基础原理到实战操作,全面解析Ubuntu权限管理的核心知识。一、权限管理三角:用户
    的头像 发表于 08-14 12:02 1171次阅读
    技术文章 | Ubuntu<b class='flag-5'>权限</b><b class='flag-5'>管理</b><b class='flag-5'>攻略</b>

    Linux权限管理基础入门

    在Linux的广阔天空中,权限管理犹如一只翱翔的雄鹰,掌控着系统的安全与秩序。掌握Linux权限,不仅能让你的系统管理更加得心应手,还能有效防止未授权访问和数据泄露。本文将带你深入探索
    的头像 发表于 05-06 13:44 929次阅读
    Linux<b class='flag-5'>权限</b><b class='flag-5'>管理</b>基础入门