首页 > 系统相关 >ubuntu修改登录信息(本机和SSH登录)

ubuntu修改登录信息(本机和SSH登录)

时间:2024-03-25 18:44:19浏览次数:22  
标签:motd 登录 dynamic update etc SSH MOTD 本机 pam

1.MOTD

1.1 什么是MOTD

  • motd是message of the day的缩写,意思是“当天的提示信息”,通常在用户成功登录到Linux后出现,该信息可以从/etc/motd文本文件中找到。
  • 提示:UNIX/Linux系统管理员也通常会把一些重要的信息写到 /etc/motd里面,以方便其他人或自己下次成功登录时需要注意什么和做什么,非常方便。
  • 一般来讲 /etc/motd是一个静态文件,里面仅仅含有安装更新的版本信息。但是ubuntu引入了update-motd框架,他可以在登陆时候动态的组装脚本(assembled from a collection of scripts)。
  • 执行/etc/update-motd.d/*下的脚本是使用的pam_motd,而这个信息则会被组合在/run/motd.dynamic中(实际上,我发现update-motd.d中的脚本是被符号链接到motd.dynamic中,进而通过pam执行文件夹才实现动态motd)

1.2 如何修改MOTD?

  • MOTD的fragments必须存放在/etc/update-motd.d文件夹下面,而且必须是一个可执行文件。
  • 这些脚本必须命名为NN-xxxx,其中NN是一个二位数代表他们在MOTD的位置,比如你准备放在最后一个,可以直接填写99-xxx
  • 在写完bash后,必须改变为可执行文件sudo chmod +x /etc/update-motd.d/99-custom
  • 检测是否成功run-parts /etc/update-motd.d/

1.3 pam.d是什么?

本来关于MOTD的东西是由/etc/login.defs来管理的,后来由/etc/pam.d/login来管理。如下图所示:

很容易发现,一般的静态MOTD在/etc/motd中存放,而动态的MOTD在/run/motd.dynamic中存放,那么他们和/etc/update-motd.d是什么关系呢?上面讲update-motd.d中的东西会存放在motd.dynamic中,然后motd.dynamic再通过pam_motd执行。
这里的pam_motd其实就是pam_motd.so用于执行update-motd.d文件夹中可执行文件的。

因此,只需要将/etc/pam.d/login中的pam_motd.so motd=/run/motd.dynamic改为pam_motd.so motd=/etc/update-motd.d即可,或者使用符号链接也可以。(不知道为什么我的阿里服务器没有符号链接)

1.3 写一个自己的LOGO MOTD:

apt-get figlet
figlet Ssozh > /etc/Ssozh.txt
vim 92-ssozh
chmod +x ./92-ssozh
run-parts /etc/update-motd.d/
ln -s  /etc/update-motd.d/ /run/motd.dynamic

注意:figlet的内容不能放在update-motd.d中,会无法找到该文件!
其中92-ssozh中的内容:

#!/bin/sh
# Ssozh banner
cat /etc/Ssozh.txt

最终效果图:

参考博客:
https://linuxconfig.org/how-to-change-welcome-message-motd-on-ubuntu-18-04-server
http://manpages.ubuntu.com/manpages/bionic/man5/update-motd.5.html

标签:motd,登录,dynamic,update,etc,SSH,MOTD,本机,pam
From: https://www.cnblogs.com/zpzp/p/18095060

相关文章

  • ssh -p 2222怎么进docker容器
    要通过SSH和端口2222进入Docker容器,您需要确保容器内已经安装并运行了SSH服务器,并且已经将宿主机的2222端口映射到容器的SSH端口(通常为22)。以下是一般的步骤:1、启动容器时映射端口:当您启动容器时,使用-p参数将宿主机的2222端口映射到容器的SSH端口。例如:dockerrun-d--n......
  • 【喂饭级AI教程】手把手教你在本机安装Stable Diffusion秋包【附带全套资源】
    今天,我们将探索一个为Bilibili社区核心贡献者秋叶大佬所发布的神器——一款整合软件包。这款软件巧妙地简化了学习Python和网络知识这一通常漫长的过程。即使是编程新手,也能轻松入门并开始使用StableDiffusion(简称SD),并且几乎不需要任何调整,就能体验到前沿的AI绘图技术。本......
  • Go-Rod自用案例 #1 测试多组账号登录
    使用场景本样例用于在给定的HTML文件中(简单的登录注册),测试多组账号密码是否能够成功登录,并打印出登录结果。前端代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-......
  • finalshell 登录ubuntu ,创建文件之后修改文件 提示权限不足
    在FinalShell中登录Ubuntu系统时,如果你创建文件后尝试修改文件提示权限不足,通常是因为你当前使用的用户账户没有对该文件或目录具有足够的写入权限。解决这个问题有以下几种方法:使用sudo权限:如果你需要对某个系统级别的文件进行操作,可能需要以超级用户(root)权限执行命令。在Fi......
  • 关于Macbook错误方式删除登录用户,无法清除废纸篓
    近期我在删除mac上用户列表的某个用户时,发现在账户与群组中删除后,在访达的用户目录还存在那个用户的文件夹,遂将其拖进废纸楼然后惊奇的发现,这个文件夹无法清除,说正在使用Library之类的报错,由于没有什么办法,遂不管他但是麻烦来了,在这之后的每一次倾倒废纸篓,我都会遇到这个问题......
  • 认证登录URL
    https://login.dingtalk.com/oauth2/auth:这个URL是用于钉钉开放平台的标准OAuth2.0授权认证流程。通过此URL,第三方应用可以向用户请求授权,并获取访问用户钉钉账号相关资源的权限。通常用于企业内部应用或者服务端应用,允许第三方应用获得对企业内部员工钉钉账号的授权......
  • 基于SpringBoot+HTML实现登录注册功能模块
    目录一、登陆注册实现思路二、实现具体步骤1.设计数据库表结构2.创建SpringBoot项目3.编写实体类4.编写Repository接口5.编写Service层6.创建Controller 7.编写前端页面Register.html: login.html: 8.进行测试登陆注册模块 三、总结博主介绍:✌专注......
  • 我的三合一op,亲测不能直接更新,直接更新会重启还原。但是可以直接检测到新版本。更新方
    我的三合一op,亲测不能直接更新,直接更新会重启还原。但是可以直接检测到新版本。更新方式要是ssh,具体如下 2024年 切换到目标分支:如果您还没有切换到dev28分支,可以使用下面的命令来切换:gitcheckoutdev281拉取最新的代码:一旦切换到正确的分支,就可以使用gitpull来更新代码......
  • JumpServer如何对接企业微信实现扫码登录
    前言:    JumpServer是一套优秀的堡垒机软件,本文主要介绍如何设置来将Jumpserver与企业微信来做联动。前提是已经安装好Jumpserver且注册了企业微信,并堡垒机访问的域名是通过icp备案的。如果要实现回调的,域名需要指向公网,如果这是扫码登录和身份验证域名无需指向公网地......
  • 使用python登录boss 并自动投递简历打招呼
    使用的是selenium4的和3的版本语法有点出入但是大差不差暂时还没有完善会持续更新fromseleniumimportwebdriverimporttimefromselenium.webdriver.common.byimportByfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supp......