AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 537521
Accepted
muru
muru
Asked: 2014-10-16 12:27:14 +0800 CST2014-10-16 12:27:14 +0800 CST 2014-10-16 12:27:14 +0800 CST

在 SSH 中设置特定于用户或组的 MOTD

  • 772

我想在每个组/每个用户的基础上禁用或更改 SSH 登录时显示的 MOTD。SuperUser 上的这个问题有一个答案,说明我可以Match在sshd_config. 但是,man sshd_config声明:

Match
         ...
         Only a subset of keywords may be used on the lines following a
         Match keyword.  Available keywords are AcceptEnv,
         AllowAgentForwarding, AllowGroups, AllowTcpForwarding,
         AllowUsers, AuthenticationMethods, AuthorizedKeysCommand,
         AuthorizedKeysCommandUser, AuthorizedKeysFile,
         AuthorizedPrincipalsFile, Banner, ChrootDirectory, DenyGroups,
         DenyUsers, ForceCommand, GatewayPorts, GSSAPIAuthentication,
         HostbasedAuthentication, HostbasedUsesNameFromPacketOnly,
         KbdInteractiveAuthentication, KerberosAuthentication,
         MaxAuthTries, MaxSessions, PasswordAuthentication,
         PermitEmptyPasswords, PermitOpen, PermitRootLogin, PermitTTY,
         PermitTunnel, PubkeyAuthentication, RekeyLimit,
         RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset,
         X11Forwarding and X11UseLocalHost.

我在该列表中看不到任何与 MOTD 相关的内容。事实上,尝试使用该建议会导致sshd由于配置不正确而无法启动。

那么,我可以这样做吗?如果是这样,如何?从 SSH 配置或通过更改生成/打印 MOTD 的任何内容?


改变文件/etc/update-motd.d是没有用的,因为,根据man update-motd:

   Executable  scripts in /etc/update-motd.d/* are executed by pam_motd(8)
   as the root user at each login, and this information is concatenated in
   /var/run/motd. 

(我用一个脚本对此进行了测试echo $USER。我的rootMOTD 中有一个。)

这留下了 PAM 配置。我想可能可以pam_motd在每个组/用户的基础上禁用,但我不确定该怎么做。最后一个选择是pam_motd完全禁用并使用pam_exec,但我真的希望它不会变成那样。

ssh
  • 1 1 个回答
  • 7384 Views

1 个回答

  • Voted
  1. Best Answer
    Lety
    2014-10-25T14:08:49+08:002014-10-25T14:08:49+08:00

    这是受每个用户的motd 或登录横幅启发的每个用户/组 motd 的实现

    先注释掉:

    session    optional   pam_motd.so  motd=/run/motd.dynamic
    session    optional   pam_motd.so
    

    在和/etc/pam.d/login设置PrintMotd no/etc/ssh/sshd_config

    然后您可以定义每个用户/组的消息脚本并将其放入文件夹中,例如:

    sudo mkdir -p /etc/mymotd/groups
    sudo mkdir -p /etc/mymotd/users
    

    在这些文件夹中,您可以为每个组或用户创建可执行脚本,以在标准输出上打印当天的消息。

    您可以/etc/profile.d/perUserGroupMotd.sh使用以下行创建:

    gidName=`id -gn`
    if [ -e /etc/mymotd/groups/$gidName ]; then
       /etc/mymotd/groups/$gidName
    else 
       if [ -e /etc/mymotd/users/$USER ]; then
          /etc/mymotd/users/$USER
       fi
    fi
    

    或者您可以使用 file 来启用/禁用消息,而不是运行/path/to/script -g $gidNameor /path/to/script -u $USER,显然有许多不同的可能实现。

    关于pam_motd,最后我发现了这两个错误:

    • pam_motd 在未清理的环境中以 root 身份运行命令:这是一个安全漏洞,update-motd补丁是:取消设置环境并手动设置PATH变量。
    • pam_motd update-motd 代码的多个问题:其中一个问题是关于update-motd. 在多用户系统中,多个并发访问会导致 motd 损坏。

    由于这些原因,我想不可能pam_motd用于您的目标。

    HUSHLOGIN_FILE/etc/login.defsshould中的指令在登录序列期间禁止所有常见的聊天,因此即使是上次登录日期也禁止任何输出。

    我猜想 motd 旨在覆盖系统中的所有用户,因此ssh简单pam_motd地为所有用户启用或禁用它。

    • 5

相关问题

  • Gnome-terminal 快捷方式在选项卡中打开多个 ssh 连接

  • 通过 SSH 禁用密码访问?

  • ssh 如何使用多个私钥?

  • 如何通过一个 SSH 连接拥有多个终端会话?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve