Linux 用户以及用户权限

一、用户管理

从用户的配置文件以及配置命令的方式来了解用户管理,命令也是将结果写入到配置文件

用户配置文件

不建议直接修改配置文件!!!

账号 /etc/passwd
内容解析root:x:0:0:root:/root:/bin/bash用户名:密码:UID:GID:账号解释:家目录:shell

注意事项:

        1、UID为0就是超级用户

        2、shell 设置为/sbin/nologin 时账号无法登录

密码 /etc/shadow
内容解析root:$6$M9G.0hEG...:18417:0:99999:7:::用户名:加密密码:最近更改时间:不可改动时间:密码过期时间:过期前提醒时间:过期延期时间:失效日期:保留

注意事项
    1、密码前加!或者*就是锁定密码,不要直接修改文件,会导致密码失效

    2、密码失效后,无法登录

用户组 /etc/group
内容解析sys:x:0:jog,bob组名:群组密码:GID:这个组内的用户名

注意事项:

        1、群组密码一般不用设置

        2、这里的群组用户指存在多个组中的用户,也就是额外的用户

用户默认初始化模板
创建用户参考文档 */etc/default/useradd/etc/login.defs/etc/skel/*

注意:

        如果家目录被删了,登录显示~/.bashrc,可以从/etc/skel/.bashrc 拷贝再自定义恢复

特权用户配置 /etc/sudoers

可以针对用户或者用户组设置特定或者全部命令的权限,通常用来为普通用户授权root权限

常见用户查看命令

idid 显示当前用户信息id username 显示指定用户信息
groupsgroups 查看当前用户属组zhh : sysadmin root主用户群 : 次要用户群groups username 查看指定用户属组
w    Show who is logged on and what they are doing
who  show who is logged on
last show listing of last logged in users

常见密码相关命令

passwd 
man passwdpasswd 修改当前用户密码
passwd username 修改指定用户密码,需要提权
passwd -S username 用户状态root PS 2023-02-02 0 99999 7 -1 (Password set, SHA512 crypt.)用户名 状态 修改时间 不可修改时间 过期时间 过期警告时间 失效时间 解释信息
passwd -l username 锁定用户
passwd -uf username 强制解锁用户
passwd -e username  强制用户密码过期echo "password" | sudo passwd --stdin myuser1 明文设置密码

注意:空密码会在一定时间后被锁定,不影响有指纹的免密链接,没有指纹的免密也会连接失败

状态:

locked password (LK)

has no password  (NP)

has  a  usable password (PS)

chage
man chage
chage - change user password expiry informationchage -l username 查看密码状态
chage -M -1 username 密码永不过期
chage -m 6 -M 90 -E -1 -I -1 -W 30-m 密码最小修改间隔,限制密码更新-M 密码有效时间,区间内未更新会提示修改密码-E 密码过期时间,过期会提示修改密码-I 密码失效时间,失效无法登录-W 密码过期前多少天提醒

账号管理

用户添加
id 查看当前用户的用户和组信息useradd username 添加用户
useradd -u UID -g GID -G GID username
useradd -D 查看预设值参数:-u :后面接的是 UID-g :后面接的那个组名就是主组-G :后面接的组名是次要组-M :强制!不要建立用户家目录!(系统账号默认值)-m :强制!要建立用户家目录!(一般账号默认值)-d :指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径-s :后面接一个 shell ,若没有指定则预设是 /bin/bash-f :后面接失效时间,0 为立刻失效,-1 为永远不失效

注意:

创建用户以后, /etc/shadow 内仅会有密码参数而不会有加密过的密码数据,所以需要设置密码

用户删除
userdeluserdel usernameuserdel -r username 一同删除家目录
用户管理
usermodusermod username -g GID/groupname 设置主要用户组usermod username -G GID/groupname 设定次要用户组usermod username -aG GID/groupname 追加次要群组 
锁住初始密码的用户(已锁用户不再重复锁定) 

这个主要逻辑是通过参数来判断新用户,然后awk截取用户名,再依据passwd 命令来锁定用户

grep '0:6:90:30' /etc/shadow|grep -v '!'|awk -F ":" '{print $1}'|xargs -n 1 passwd -l
用户组管理

不常用,与用户管理差不错
groupadd
groupdel
groupmod

一些常见用户故障排查

用户无法登陆
1. shell 为/sbin/nologin
grep username /etc/passwd2. 密码过期或者被锁定
chage -l username3. sshd 设定root用户无法登陆
grep 'PermitRootLogin' /etc/ssh/sshd_config4. vim /etc/security/access.conf 配置的pam 限定了用户登录
表现为:正确密码:Authentication failed.错误密码:Permission denied, please try again.5. vim /etc/pam.d/login 中其他设置限定6. vim /etc/pam.d/sshd 中其他设置限定7. iptables对端口和IP做了限制
iptables --list8. 这里限制了IP
/etc/hosts.allow
/etc/hosts.deny

还有很多其他的情况,比如有些机器经过ldap.conf文件,或者用户的环境变量配置里面写了脚本启动失败,或者ld.so.preload 库文件被修改,还有fs.nr_open fs.file-max 这些参数被改小了等等各种问题。后期整理一下,再写一篇记录登录失败的排查文章。

无法修改密码

报错token验证失败,无法修改密码

passwd: Authentication token manipulation error

经检查是根目录满了,/home目录没挂出来,也满了


二、权限管理

用户权限管理命令

visudo 编辑/etc/sudoers 文件,会对内容进行语法检查校验

visudo -c # 检查校验
/etc/sudoers: parsed OK

细化权限设定 (ACL)

getfacl
getfacl filename
# file: aaa      文件名
# owner: root    拥有者
# group: root    属组
user::rwx        
group::r-x
other::r-x
user:myuser1:rwx     针对用户特殊权限
group:mygroup1:r-x   针对用户组权限
setfacl
setfacl参数:-m :设定后续的 acl 参数给文件使用,不可与 -x 合用-x :删除后续的 acl 参数,不可与 -m 合用-b :移除『所有的』 ACL 设定参数-k :移除『预设的』 ACL 参数-R :递归设定 acl ,亦即包括次目录都会被设定起来-d : 设定『预设 acl 参数』的意思,针对目录使用:u:[使用者账号列表]:[rwx]setfacl -m u:myuser1:rx filenameg:[群组列表]:[rwx] setfacl -m g:mygroup1:rx filename

PAM 相关

/etc/pam.d/*:每个程序个别的 PAM 配置文件

/lib64/security/*:PAM 模块文件的实际放置目录

/etc/security/*:其他 PAM 环境的配置文件

/usr/share/doc/pam-*/:详细的 PAM 说明文件

关于root用户登录问题:

telnet 使用/etc/pam.d/login模块,这个模块使用pam_securetty,由于远程连接动态端口

        没有写入到/etc/securetty所以会登录失败

ssh 使用/etc/pam.d/sshd模块,这个模块验证没有使用pam_securetty 所以可以登录

用户切换

注意:不加'-',不会切换环境变量,这关于是否启动一个子shell

su - username 切换用户

sudo su - 切换到root

sudo -u username id   使用username用户执行id命令

man su
-, -l, --loginStarts the shell as login shell with an environment similar to a real login:o      clears all environment variables except for TERMo      initializes the environment variables HOME, SHELL, USER, LOGNAME, PATHo      changes to the target user's home directoryo      sets argv[0] of the shell to '-' in order to make the shell a login shell

免密登录

这里只提供了一种简单的免密方式,ssh-copy-id 简单来说是ssh 将公钥追加到对方家目录~/.ssh/authorized_keys

# ssh-keygen -t rsa          #一直回车即可
# ssh-copy-id -i /local_username/.ssh/id_rsa.pub -p22 remote_username@xxx.xxx.xxx.xxx #回车, 输入远程登录的密码即可 

三、用户登录过程

strace 命令 trace system calls and signals,这个可以用来追踪命令的系统调用

strace ssh username@xxx.xxx.xxx.xxx 可以查看实际ssh是如何登陆到服务器的

OpenSSH:OpenSSH 是一种流行的 SSH 服务器,可用于远程连接到 Linux 服务器。它可以使用密码、公钥或其他身份验证方法来进行身份验证

PAM:PAM(Pluggable Authentication Modules)是一种允许系统管理员配置不同身份验证方法的框架。它可以与 OpenSSH 等应用程序一起使用来提供中央身份验证

LDAP:LDAP(轻量级目录访问协议)是一种用于存储和检索目录信息的协议。它可以与 PAM 一起使用来提供中央身份验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/596018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LN和BN

假设batch为2,(2,3,256,256)这样的样本 LN比较直观就是在每个独立的样本上计算均值和方差,然后归一化。(2,3,256,256) 归一化是将数…

小H靶场笔记:DC-4

DC-4 January 4, 2024 2:37 PM Tags: teehee提权 Owner:只惠摸鱼 信息收集 探测靶机ip,发现应该是192.168.199.134 扫一下开放端口(22、80)、服务、版本、漏洞 根据扫描结果,在80端口可能有CSRF漏洞,…

石头剪刀布游戏 - 华为OD统一考试

OD统一考试 分值: 100分 题解: Java / Python / C++ 题目描述 石头剪刀布游戏有 3 种出拳形状: 石头、剪刀、布。分别用字母 A,B,C 表示游戏规则: 出拳形状之间的胜负规则如下: A>B; B>C; C>A; 左边一个字母,表示相对优势形状。右边一个字母,表示相对劣势形状。…

Java里的Collections算法类

Collections算法类 Collections算法类里定义一系列用于操作集合的静态方法。 当谈到Java中的集合框架时,Collections 类是一个十分重要的类。它提供了一系列静态方法,用于操作和处理各种集合对象。 Java中的Collections类 Collections类是Java集合框架…

【SpringBoot系列】springboot中拦截器Interceptor使用

🤵‍♂️ 个人主页:@香菜的个人主页,加 ischongxin ,备注csdn ✍🏻作者简介:csdn 认证博客专家,游戏开发领域优质创作者,华为云享专家,2021年度华为云年度十佳博主 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收…

vue项目中axios拦截器配置及不同接口对应不同后端接口域名配置

vue项目中axios拦截器配置及不同接口对应不同后端接口域名配置 一、axios基础配置二、不同接口对应不同后端接口域名配置 一、axios基础配置 import axios from axios import store from /store import { Message } from element-ui //创建axios实例 const service axios.cre…

使用 express 实现反向代理,解决跨域问题

反向代理是对服务器的代理,可以使用 express 实现反向代理,很简单,具体代码请参考 彻底理解前端安全面试题(3)—— CORS跨域资源共享,解决跨域问题,建议收藏(含源码)-CS…

AI:108-基于深度学习的通信干扰抑制技术研究

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

企语iFair 协同管理系统 任意文件读取漏洞复现(CVE-2023-47473)

0x01 产品简介 企语iFair协同管理系统是一款专业的协同办公软件,该管理系统兼容性强,适合多种企业类型。该软件永久免费,绿色安全,无需收取费用即可使用所有功能。企语iFair协同管理系统同时兼容了Linux、Windows两种操作系统 0x02 漏洞概述 企语iFair协同管理系统getup…

AE (4)_ 直方图调整的理论

#灵感# 在短暂的高通平台调试中,很看重直方图调整的理解。后来其它平台,不怎么调整这个了。但还是记录一下。 我个人还是倾向 招式简单,但应用到极致。 绝大部分内容来自:刘斯宁,Image Enhancement - CLAHE - 知乎 (z…

Mybatis源码基本原理--XML版

文章目录 mybatis是什么架构设计首先建立起Mapper的代理工程和代理映射器的注册和使用XML文件解析数据源解析、创建和使用SQL执行器(Executor)的定义与实现SQL解析参数处理器:策略模式实现封装处理结果注解 mybatis 是什么 MyBatis 是一款优…

SecOC中新鲜度值和MAC都按照完整的值来生成,但是在发送和认证的时候只会截取一部分。这边截取的部分一般取多长?由什么参数设定?

新鲜度值(Freshness Value, FV)和消息验证码(Message Authentication Code, MAC)是SecOC协议中用于保证数据的真实性和新鲜度的重要信息。它们的长度取决于不同的因素,如加密算法、安全级别、通信带宽等。 一般来说,FV和MAC的长度越长,安全性越高,但也会占用更多的通信…

IDEA 每次新建工程都要重新配置 Maven的解决方案

文章目录 IDEA 每次新建工程都要重新配置 Maven 解决方案一、选择 File -> New Projects Setup -> Settingsfor New Projects…二、选择 Build,Execution,Deployment -> Build Tools -> Maven IDEA 每次新建工程都要重新配置 Maven 解决方案 DEA 每次新建工程都要…

用大模型读取你的想法,并转化成文本!恐怖的DeWave模型

悉尼科技大学的科研人员,通过大语言模型、EEG(大脑活动检测工具)、脑机接口等技术,开发了一个可自动读取人类想法,并转化成文本的AI大模型——DeWave。 DeWave的使用方法非常简单,用户只需要戴上EEG&#…

vivo 互联网技术 2023 年度盘点

在龙年到来之际,vivo互联网技术2023年货如约而至,让我们一起盘点下vivo互联网技术在过去一年的成长与收获吧。 01 年度技术文章 2023年,vivo 互联网技术公众号共推送技术干货文章 70,我们根据文章阅读量等指标,精选出…

[书生·浦语大模型实战营]——书生·浦语大模型全链路开源体系

大模型成为发展通用人工智能的重要途径 书生浦语大模型开源历程 书生浦语模型性能 从模型到应用 应用例子:智能客服/个人助手/行业应用 实现流程: 开源开放体系: 1.数据——书生万卷 价值观对齐这个挺有意思嗷! 2.预训练工具…

docker容器添加新的端口映射

通常在运行容器时,我们都会通过参数 -p来指定宿主机和容器端口的映射,例如 docker run -it -d --restart always --name [指定容器名] -p 8899:8080 [指定镜像名]上述命令将容器内的8080端口映射到宿主机的8899端口。 参数说明 -d 表示后台运行容器 -t…

【51单片机系列】LCD1602液晶模块

本文是关于液晶显示屏的相关介绍。相对于静态数码管、动态数码管、LED点阵等,LCD1602液晶显示器能够显示更多的字符数字信息,并且也是常用的一种显示装置。 文章目录 一、LCD1602介绍1.1、LCD1602简介1.2、LCD1602常用指令1.3、LCD1602使用 二、LCD1602使…

openGauss学习笔记-174 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作

文章目录 openGauss学习笔记-174 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作174.1 事务隔离说明174.2 写入和读写操作174.3 并发写入事务的潜在死锁情况 openGauss学习笔记-174 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作 174.1 事务隔离说…

SpringBoot之项目管理

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 SpringBoot之项目管理 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、指标监控Sprin…