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
    • 最新
    • 标签
主页 / server / 问题 / 503745
Accepted
Brad
Brad
Asked: 2013-04-30 19:29:02 +0800 CST2013-04-30 19:29:02 +0800 CST 2013-04-30 19:29:02 +0800 CST

如何在安全 FTP 登录期间不运行 /etc/profile.d/custom.sh

  • 772

当我尝试将 FTP(使用 WinSCP)保护到我的 CentOS 6.4 框时,我收到一条消息提示:

Received too large (168438314 B) SFTP packet. Max supported packet size is 1024000 B.

This error is typically caused by message printed from startup script (like profile). The message may start with ""\n\n**"" 

Cannot initialize SFTP protocol. Is the host running an SFTP server

这似乎是由我的 /etc/profile.d/custom.sh 脚本引起的,该脚本在登录期间运行。它设置为输出欢迎消息以及系统摘要(CPU/内存/磁盘使用情况)。

我真的需要在登录本地控制台或通过 SSH 登录时运行 custom.sh 脚本。但是我不希望它在登录安全 FTP (SFTP) 时运行。

有什么方法可以将其配置为在通过安全 FTP 登录时不运行?

或者,如果我无法阻止它运行,是否有一种方法可以检测到它在安全的 FTP 登录期间正在运行并且不输出任何内容。所以在伪代码中是这样的:

如果通过安全 FTP 登录,则不输出任何内容。如果通过 SSH 或本地控制台登录,则输出当天的消息(系统统计信息)。

谢谢!布拉德

更新 - 这里有支持此问题的文档:http ://winscp.net/eng/docs/requirements#remote_environment

建议是检测会话是否是交互式的。我尝试通过将以下内容添加到我的 custom.sh 的顶部来做到这一点,但它仍然无法正常工作:

if [ -z $PS1 ]; then
### if [ -v PS1 ]   # On Bash 4.2+ ...
    # non-interactive
    return
fi

然后我的脚本的其余部分运行输出 MOTD。

SecureFTP 应该被检测为非交互式还是交互式?如果它是非交互式的,为什么当我尝试通过安全 FTP 登录时上面的代码不存在脚本?

linux
  • 2 2 个回答
  • 1435 Views

2 个回答

  • Voted
  1. Best Answer
    Danila Ladner
    2013-04-30T20:16:32+08:002013-04-30T20:16:32+08:00

    也许是检查 fd '0' 的标准方法?

    if [ -t 0 ]; then
    # do stuff
    fi
    
    • 3
  2. Greg Dubicki
    2020-02-24T05:42:30+08:002020-02-24T05:42:30+08:00

    使用/etc/profile.d仅用于通过 SSH/控制台进行交互式登录所需的事实上的动态 MOTD 将产生此类问题。

    虽然Danila Lander 的回答中的解决方法可能有效,但我建议做正确的事情并为此使用适当的解决方案。

    请参阅此问题的答案,了解有关如何在 Ubuntu 和 Centos 7 服务器上以正确方式执行此操作的信息。

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve