loginctl - 控制 systemd 登录管理器

loginctl

    • loginctl用途
    • loginctl安装
    • 开启loginctl服务
    • session操作
    • user操作
    • 管理用户服务

loginctl - Control the systemd login manager

Redhat/centos平台使用loginctl管理登录用户与session

loginctl用途

  • 控制 systemd 登录管理器
  • 管理当前登录的用户和session

loginctl安装

loginctl [OPTIONS...] {COMMAND} [NAME...]
  1. 查看所属的rpm包
[root@blog ~]# whereis loginctl
loginctl: /usr/bin/loginctl /usr/share/man/man1/loginctl.1.gz[root@blog ~]# rpm -qf /usr/bin/loginctl
systemd-239-18.el8_1.4.x86_64
  1. 如果找不到loginctl命令,可以用yum安装
[root@blog ~]# yum install systemd
  1. 查看版本和帮助
[root@node-137 ~]# loginctl --version
systemd 219
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN[root@blog ~]# loginctl --help 

开启loginctl服务

loginctl在使用时需要systemd-logind.service开启

[root@redis local]# loginctl list-sessions
Failed to list-sessions: Unit systemd-logind.service is masked.
[root@redis local]# systemctl start systemd-logind.service
Failed to start systemd-logind.service: Unit systemd-logind.service is masked.#如果服务被mask,需要先取消mask再start[root@redis local]# systemctl unmask systemd-logind.service
Removed /etc/systemd/system/systemd-logind.service.
[root@redis local]# systemctl start systemd-logind.service

session操作

  1. 列出本机所有的session
    只执行loginctl 和loginctl list-sessions效果一样,list-sessions是 loginctl的默认操作
[root@node-137 ~]# loginctlSESSION        UID USER             SEAT31       1000 yurq15          0 root14          0 root30       1000 yurq4 sessions listed.

可以看到:同一个用户可以开启多个session

  1. 显示一个session的详细信息
[root@node-137 ~]# loginctl show-session 30
Id=30
User=1000
Name=yurq
Timestamp=Fri 2023-11-24 13:16:25 CST
TimestampMonotonic=12800340928
VTNr=0
Remote=yes
RemoteHost=192.168.17.1
Service=sshd
Scope=session-30.scope
Leader=5648
Audit=30
Type=tty
Class=user
Active=yes
State=closing
IdleHint=no
IdleSinceHint=0
IdleSinceHintMonotonic=0
LockedHint=no
  1. 显示一个session的状态:
    session-status: session状态,指定一个session id,可以看到这个session开启的进程等信息
[root@node-137 ~]# loginctl session-status 30
30 - yurq (1000)Since: Fri 2023-11-24 13:16:25 CST; 1h 30min agoLeader: 5648Remote: 192.168.17.1Service: sshd; type tty; class userState: closingUnit: session-30.scope└─5739 podmanNov 24 13:16:25 node-137 sshd[5648]: pam_unix(sshd:session): session opened for user yurq by (uid=0)
Nov 24 13:16:25 node-137 systemd[1]: Started Session 30 of user yurq.
Nov 24 14:41:58 node-137 sshd[5648]: pam_unix(sshd:session): session closed for user yurq
  1. 结束指定的session
    杀死指定会话的所有进程、释放所有与此会话相关的资源
    terminate-session 结束指定的session
[root@node-137 ~]# loginctl terminate-session 30
[root@node-137 ~]# loginctlSESSION        UID USER             SEAT42          0 root43          0 root2 sessions listed.
  1. kill-session 杀死session
    与terminate session基本相同,但可以指定发送的信号。如果不加参数,则signal为SIGTERM
[root@node-137 ~]# loginctl kill-session 46

如果指定SIGSTOP,则session没有退出,但用户的终端会停止响应

[root@node-137 ~]# loginctl kill-session 45 --signal=SIGSTOP

man参考:

 -s, --signal=When used with kill-session or kill-user, choose which signal to send to selected processes.Must be one of the well known signal specifiers, such as SIGTERM,SIGINT or SIGSTOP. If omitted, defaults to SIGTERM.
  1. 查看自己的tty的session
[root@node-137 ~]# tty
/dev/pts/0
[root@node-137 ~]# loginctl session-status 42
42 - root (0)Since: Fri 2023-11-24 14:42:29 CST; 14min agoLeader: 6526 (sshd)Remote: 192.168.17.1Service: sshd; type tty; class userState: activeUnit: session-42.scope├─6526 sshd: root@pts/0├─6530 -bash├─6765 loginctl session-status 42└─6766 lessNov 24 14:42:29 node-137 sshd[6526]: pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 24 14:42:29 node-137 systemd[1]: Started Session 42 of user root.

user操作

  1. 列出所有用户
[root@node-137 ~]# loginctl list-usersUID USER0 root1000 yurq2 users listed.
  1. 查看当前登录用户的详细信息
[root@node-137 ~]# loginctl show-user yurq
UID=1000
GID=1000
Name=yurq
Timestamp=Fri 2023-11-24 13:16:25 CST
TimestampMonotonic=12800338419
RuntimePath=/run/user/1000
Slice=user-1000.slice
Display=45
State=active
Sessions=45
IdleHint=no
IdleSinceHint=0
IdleSinceHintMonotonic=0
Linger=yes
  1. 查看登录用户的状态
[root@node-137 ~]# loginctl user-status yurq
yurq (1000)Since: Fri 2023-11-24 13:16:25 CST; 1h 43min agoState: activeSessions: *45Unit: user-1000.slice└─session-45.scope├─6641 sshd: yurq [priv]├─6644 sshd: yurq@pts/1└─6646 -bashNov 24 13:16:25 node-137 sshd[5648]: pam_unix(sshd:session): session opened for user yurq by (uid=0)
Nov 24 13:16:25 node-137 systemd[1]: Created slice User Slice of yurq.
...
Nov 24 14:52:37 node-137 sshd[6643]: pam_unix(sshd:session): session closed for user yurq
  1. 结束指定用户的所有session
loginctl terminate-user yurq
  1. 停止用户的终端
[webop@blog ~]$ loginctl kill-user webop --signal=SIGSTOP

管理用户服务

loginctl enable-linger [USER], disable-linger [USER]

启用/禁止用户逗留(相当于保持登录状态)。 如果指定了用户名或UID, 那么系统将会在启动时自动为这些用户派生出用户管理器, 并且在用户登出后继续保持运行。 这样就可以允许未登录的用户在后台运行持续时间很长的服务。 如果没有指定任何参数, 那么将作用于当前调用者的用户。

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

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

相关文章

Peter算法小课堂—高精度加法

指针与数组 看看以下代码&#xff0c;请预测答案 #include <bits/stdc.h> using namespace std; int x[10]{0,1,2,3,4,5,6,7,8,9}; int main(){cout<<x<<endl;cout<<x3<<endl;cout<<*x<<endl;cout<<*(x7)<<endl;cout&…

定制手机套餐---python序列

if __name__ __main__:print("定制手机套餐")print("")#定义电话时长&#xff1a;字典callTimeOptions{1:0分钟,2:50分钟,3:100分钟,4:300分钟,5:不限量}keyinput("请输入电话时长的选择编号&#xff1a;")valuecallTimeOptions.get(key)if val…

代码随想录算法训练营第五十四天|392.判断子序列 115.不同的子序列

文档讲解&#xff1a;代码随想录 视频讲解&#xff1a;代码随想录B站账号 状态&#xff1a;看了视频题解和文章解析后做出来了 392.判断子序列 class Solution:def isSubsequence(self, s: str, t: str) -> bool:dp [[0] * (len(t)1) for _ in range(len(s)1)]for i in ra…

Java 关于批量插入遇到的问题 -sqlserver

序言&#xff1a; 我们在做项目的时候&#xff0c;经常会遇到&#xff0c;对数据的新增动作&#xff0c;如果数据量很少的情况下&#xff0c;单个新增对性能还好&#xff0c;但是一旦涉及到 大数据量&#xff0c;如十万&#xff0c;百万&#xff0c;千万&#xff0c;这个时候如…

RabbitMq使用与整合

MQ基本概念 MQ概述 MQ全称 Message Queue&#xff08;[kjuː]&#xff09;&#xff08;消息队列&#xff09;&#xff0c;是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。 &#xff08;队列是一种容器&#xff0c;用于存放数据的都是容器&#xff0c;存…

优秀的时间追踪软件Timemator for Mac轻松管理时间!

在现代社会&#xff0c;时间管理成为了我们工作和生活中的一大挑战。如果你经常感到时间不够用&#xff0c;无法高效地完成任务&#xff0c;那么Timemator for Mac将成为你的得力助手。 Timemator for Mac是一款出色的时间追踪软件&#xff0c;它可以帮助你精确记录和管理你的…

Linux的基本指令 ( 一 )

目录 前言 Linux基本指令 快速认识五个指令 ls指令 补充内容 pwd指令 补充内容 cd指令 补充内容 重新认识指令 指令的本质 which指令 alias指令 最后 一个文件的三种时间 tree指令及安装 tree指令 前言 关于Linux操作系统的桌面&#xff0c;在学校教学中我们…

实用高效 无人机光伏巡检系统助力电站可持续发展

近年来&#xff0c;我国光伏发电行业规模日益壮大&#xff0c;全球领先地位愈发巩固。为解决光伏电站运维中的难题&#xff0c;浙江某光伏电站与复亚智能达成战略合作&#xff0c;共同推出全自动无人机光伏巡检系统&#xff0c;旨在提高发电效率、降低运维成本&#xff0c;最大…

Spark---SparkCore(一)

一、术语与宽窄依赖 1、术语解释 1、Master(standalone):资源管理的主节点&#xff08;进程&#xff09; 2、Cluster Manager:在集群上获取资源的外部服务(例如&#xff1a;standalone,Mesos,Yarn) 3、Worker Node(standalone):资源管理的从节点(进程)或者说管理本机资源的…

用Python写一个浏览器集群框架

更多Python学习内容&#xff1a;ipengtao.com 在分布式爬虫和大规模数据采集的场景中&#xff0c;使用浏览器集群是一种有效的方式&#xff0c;可以提高数据采集的速度和效率。本文将介绍如何用Python编写一个简单但强大的浏览器集群框架&#xff0c;以应对需要使用多个浏览器实…

WebGL/threeJS面试题扫描与总结

什么是 WebGL&#xff1f;什么是 Three.js&#xff1f;请解释three.js中的WebGL和Canvas的区别&#xff1f; WebGL(全写Web Graphics Library)是一种3D绘图协议&#xff0c;这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起&#xff0c;通过增加OpenGL ES 2.0的一个…

分库分表、分布式数据库、MPP

分库分表、分布式数据库、MPP的区别吗&#xff1f; 一、MySQL分库分表和MySQL分布式集群在性能方面各有优劣&#xff0c;具体取决于应用场景和需求。 MySQL分库分表&#xff1a; 在分库分表的场景下&#xff0c;可以将负载分散到多个数据库实例上&#xff0c;从而提高整体性能…

【模糊测试】课堂笔记

模糊测试 模糊测试过程通常是自动化的。这个过程经典地分为以下几个阶段。 准备&#xff1a;这是第一阶段&#xff0c;重点是 SUT 输入和输出格式的识别和规范。基于此&#xff0c;规范可以减少生成初始无效模糊数据的可能性并创建有效且精确的输入。Fuzz Data Generation&am…

思科模拟器操作命令

模式 思科模拟器常见的模式有 用户模式 能够操作的命令比较少 特权模式特权模式下面可以操作的比较多 全局模式 接口模式 用户模式进入特权模式: 命令enable 特权模式进行全局模式命令: configure terminal 退出命令 exit命令&#xff1a;返回上一层&#xff0c;即一步一步…

RocketMQ 消息中间件 知识点汇总

目录 RocketMQ1、什么是RocketMQ?常用术语:2、为什么需要消息队列3、什么是异步处理4、什么是服务解耦5、什么是流量控制6、消息队列两种模型队列模型:发布/订阅模型:总结:7、怎么保证消息不丢失8、如何处理消息被重复消费**出现消息重复的情况:****解决方法:**9、如何保…

流量分析-PhishingEmail_WriteUp

一、题目问题 问题1&#xff1a;黑客的email名称 问题2&#xff1a;黑客向几人发送了钓鱼邮件 问题3&#xff1a;黑客传输的木马文件名 问题4&#xff1a;下载并运行了木马文件的人的email名称和ip地址&#xff0c;用“-”连接 问题5&#xff1a;黑客用于反弹shell的主机i…

什么葡萄酒会适用这种双重滗析方法呢?

滗析有两个主要目的&#xff0c;一种是去除陈年或未经过滤的葡萄酒中的沉淀物。虽然沉淀物不会对你造成任何伤害&#xff0c;但当喝葡萄酒满嘴都是葡萄沉淀物时是一件很糟糕的事。其次&#xff0c;倾析葡萄酒是可以让葡萄酒“呼吸”与氧气接触的&#xff0c;氧气可以软化单宁&a…

二维数值型数组例题

1、单位矩阵初始化 题目描述 对用作单位矩阵的数组初始化。单位矩阵在主对角线上的值为1&#xff0c;而其他的地方的值为0&#xff0c;并且主对角线上的行、列下标是一样的。 输入要求 输入一个整数n表示矩阵的行数 输出要求 输出n*n的单位矩阵。数据之间以空格间隔&…

LeetCode Hot100 102.二叉树的层序遍历

题目&#xff1a; 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 方法&#xff1a;迭代 class Solution {public List<List<Integer>> levelOrder(TreeNode root) {if …

C语言——输入一个4位正整数,输出其逆数。

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int i,j 0;int a1,a2,a3,a4;printf("输入一个4位正整数&#xff1a;\n");scanf("%d",&i);a1 i/1000; a2 i/100%10; a3 i/10%10; a4 i%10; printf("千位a1%d,百位a…