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
    +关注

    关注

    87

    文章

    11304

    浏览量

    209498

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

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

收藏 人收藏

    评论

    相关推荐

    linux权限管理详解

    权限:在计算机系统中,权限是指某个计算机用户具有使用软件资源的权利。
    的头像 发表于 12-25 09:43 84次阅读

    恩智浦eIQ Time Series Studio 工具使用全攻略

    简化时间序列模型的创建、训练和部署过程,为开发人员提供了一个全面的开发环境。这个用户友好的IDE,可以帮助用户在没有AI/ML知识的情况下快速构建模型。     目标用户: 基于恩智浦SoC的时间序列机器学习解决方案的客户。 学
    的头像 发表于 12-12 09:37 696次阅读
    恩智浦eIQ Time Series Studio 工具使用<b class='flag-5'>全攻略</b>

    关于4G模组LuatOS开发:通用加解密函数(crypto)|全攻略

    本次我要说的攻略是关于4G模组LuatOS开发的通用加解密函数,我以我常用的Air780E模组为例子供大家参考。
    的头像 发表于 11-30 09:52 293次阅读
    关于4G模组LuatOS开发:通用加解密函数(crypto)|<b class='flag-5'>全攻略</b>

    Linux学习之用户管理

    超级用户申请成为普通用户,然后以普通用户的身份进入系统。超级用户可以对普通用户进行跟踪,并设置他们的访问
    的头像 发表于 11-25 10:47 243次阅读

    搞懂Linux权限管理,提升系统安全性与稳定性

    目录 权限管理 4.1 linux安全上下文 4.2 特殊权限 2.1 修改权限的命令chmod 2.2 修改文件属主和属的命令chown
    的头像 发表于 11-22 10:31 148次阅读
    搞懂Linux<b class='flag-5'>权限</b><b class='flag-5'>管理</b>,提升系统安全性与稳定性

    华纳云:设置RBAC权限的方法

    :    为每个角色定义一权限权限应该与角色的职责相匹配,确保角色能够执行其工作所需的操作,同时遵守最小权限原则。 3. 创建
    的头像 发表于 11-11 16:20 198次阅读

    Linux文件权限详解

    权限的意义在于允许某一个用户或某个用户组以规定的方式去访问某个文件。
    的头像 发表于 11-01 09:45 139次阅读

    Linux用户身份与进程权限详解

    在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限。ugo 权限信息是文件的属性,它指明了用户与文件之间的关系。但是真正操作文件的却是进程,也就是说
    的头像 发表于 10-23 11:41 351次阅读
    Linux<b class='flag-5'>用户</b>身份与进程<b class='flag-5'>权限</b>详解

    天线设计攻略简要概述 带你玩转PCB和WIFI

    给大家分享干货啦!天线设计全攻略,带你玩转PCB和WIFI
    的头像 发表于 05-08 14:42 1528次阅读
    天线设计<b class='flag-5'>攻略</b>简要概述 带你玩转PCB和WIFI

    重磅揭秘!智能手表选购全攻略,让你秒变科技达人!

    。在这个琳琅满目的智能手表世界里,怎么找到你的“真命天表”呢?别急,跟着这篇选购宝典,让你轻松选到最适合自己的智能手表,就让我们一起探索智能手表的选购全攻略,让你秒变科技达人! 一、明确需求:我为什么需要智能手
    的头像 发表于 04-19 17:24 648次阅读

    vcenter5.5添加域用户权限

    点击系统管理 > vCenter Sign-on > 配置 ,切换到标识源选项卡下,默认地,登陆用户)只有本地操作系统的用户)和vS
    的头像 发表于 04-19 10:46 664次阅读
    vcenter5.5添加域<b class='flag-5'>用户</b><b class='flag-5'>权限</b>

    机器学习基础知识全攻略

    有监督学习通常是利用带有专家标注的标签的训练数据,学习一个从输入变量X到输入变量Y的函数映射。Y = f (X),训练数据通常是(n×x,y)的形式,其中n代表训练样本的大小,x和y分别是变量X和Y的样本值。
    发表于 02-25 13:53 244次阅读
    机器学习基础知识<b class='flag-5'>全攻略</b>

    AWTK 开源串口屏开发(9) - 用户权限管理

    在AWTK串口屏中,内置用户管理权限控制的模型,无需编码即可实现登录、登出、修改密码、权限控制、创建用户、删除
    的头像 发表于 02-19 12:10 510次阅读
    AWTK 开源串口屏开发(9) - <b class='flag-5'>用户</b>和<b class='flag-5'>权限</b><b class='flag-5'>管理</b>

    一分钟了解鸿蒙OS 应用权限管理

    HarmonyOS 中所有的应用均在应用沙盒内运行。默认情况下,应用只能访问有限的系统资源,系统负责管理应用对资源的访问权限。 应用权限管理是由接口提供方(Ability)、接口使用方
    的头像 发表于 01-26 15:23 817次阅读

    CAD绘图技巧全攻略

    CAD的版本转换 A、CAD高版本可以打开所有低版本的图纸 B、CAD低版本不可以打开高版本的图纸 C、高版本转成低版本的方法,直接点击另存为,将文件类型可以改成任意的低版本 D、将低版本转换成高版本,比较复杂,需要第三方软件,也就是版本转换器。
    的头像 发表于 01-19 10:16 910次阅读
    CAD绘图技巧<b class='flag-5'>全攻略</b>