标签: shell

不活动后ssh会话超时?

PCI-DSS 3.0 要求 8.1.8 规定:“如果会话空闲时间超过 15 分钟,则要求用户重新进行身份验证以重新激活终端或会话。” PCI-DSS 2.0 要求 8.5.15 也是如此。

处理在 bash 提示符下空闲的 ssh 会话的第一种也是最明显的方法是强制执行只读的全局$TMOUT900。不幸的是,这仅涵盖坐在 bash 提示符下的会话。PCI 规范的精神还需要终止运行 top/vim/etc 的会话。

我曾考虑编写一个 */1 cron 作业来解析“/usr/bin/w”的输出并杀死相关的 shell,但这似乎是一个生硬的工具。有什么想法可以实际执行规范要求并锁定终端吗?我看过awayvlock; 它们似乎都非常适合自愿锁定您的终端,但我需要一个强制锁定的 cron/守护进程任务。

linux unix shell pci-dss

7
推荐指数
1
解决办法
2万
查看次数

在 bash 中获得更多有用的选项卡完成提示?

假设我有一个包含几个文件的目录,如下所示:

$ ls
file1  file2  file3
Run Code Online (Sandbox Code Playgroud)

我想在 bash 中做一些 tab 补全:

$ cat file<tab>
file1  file2  file3  
Run Code Online (Sandbox Code Playgroud)

我记得看到有人在做 Tab 补全,shell 将下一部分加粗,所以在这种情况下,它会将文件名的1,2和加粗,3因此它看起来像这样:文件1 文件2文件3

这将告诉您接下来应该输入什么。

我认为这是 的一个功能zsh,但有什么办法可以得到它bash吗?

linux shell bash command-line-interface prompt

7
推荐指数
1
解决办法
927
查看次数

如何在我可以通过 sudo 访问的文件末尾添加一行?

我试过了:

sudo "some string" >> test.txt
Run Code Online (Sandbox Code Playgroud)

但我收到了拒绝许可的警告。

任何人都可以帮忙吗?

shell sudo file-permissions

7
推荐指数
3
解决办法
2859
查看次数

Bash:将作业放在后台,然后拖尾日志

您如何进行转义工作,以便&实际在后台运行第一个命令?

# foo param1 param2 >> run.out &; tail -f run.out
Run Code Online (Sandbox Code Playgroud)

scripting shell bash background-process

7
推荐指数
1
解决办法
6175
查看次数

文件扩展名何时覆盖 Linux 上的 shebang 行?

一些 PHP cron 作业最近开始在共享服务器上失败。他们已经运行了将近一年没有错误和更新,但现在由于语法错误而无法运行。发生了什么?

事实证明,这些脚本现在突然在 PHP 4 下运行,而不是 PHP 5。在 /usr/local/bin/php 安装了一个 PHP 4 版本,但这是这些脚本上的“shebang”行:

#!/usr/local/php5/bin/php
Run Code Online (Sandbox Code Playgroud)

我做了一些实验:

% /usr/local/php5/bin/php --version
PHP 5.2.6 (cli) (built: May 11 2008 13:09:39) 
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

% echo '<?= phpversion() ?>' | /usr/local/php5/bin/php
5.2.6

% printf '#!/usr/local/php5/bin/php\n<?= phpversion() ?>' > version
% chmod …
Run Code Online (Sandbox Code Playgroud)

linux shell unix-shell

7
推荐指数
1
解决办法
939
查看次数

如何在鱼壳中永久设置 $TERM ?

我用fish。我正在尝试使用solarized themevim在里面运行,但是除非我运行,否则颜色会损坏:tmux

set -lx TERM screen-256color-bce;
Run Code Online (Sandbox Code Playgroud)

跑步前tmux attach

每天都要运行它很烦人,所以我想永久设置 TERM 变量。但是,当我使用以下命令设置此特定变量时,fish 似乎忽略了set -U

$ set -U foo bar; echo $foo
foo bar
$ set -U TERM screen-256color-bce; echo $TERM
TERM xterm
$ set -lx TERM screen-256color-bce; echo $TERM
TERM screen-256color-bce
Run Code Online (Sandbox Code Playgroud)

我甚至试图把set -lx TERM screen-256color-bce~/.config/fish/config.fish,而是一个新的鱼(启动外tmux)总是TERM设置为xterm

shell dotfiles environment-variables fish

7
推荐指数
1
解决办法
3118
查看次数

ulimit 是由 shell、用户还是组合继承的?

当一个进程产生一个子shell时,它是如何ulimit继承的?

是按用户、按外壳还是按组合?

具体来说,这是在某些托管 AIX 设备上的 HP 服务器自动化作业由于软硬件之间的交互而失败的情况下发现的ulimits。简而言之,代理(root在处理来自 SA 的命令时作为子外壳运行并生成子外壳)无法处理某些作业,因为其子外壳正在访问ulimit.

增加ulimit解决了问题,但如何ulimit继承以及是否需要提高软限制或硬限制(或两者)的问题仍然悬而未决。

这个问题的正确答案是什么?它可能是特定于 AIX 的,也可能是跨 Unix/Linux 变体的——以哪个更好。

unix shell ulimit hp-server-automation

7
推荐指数
1
解决办法
3233
查看次数

允许 www-data 执行 shell 脚本

我在 Ngnix 服务器上有一个名为 boot.sh 的 shell 脚本

我试图通过 PHP 调用它,但我认为我没有权限。

如何授予 www-data 运行 boot.sh 的权限 - 并且只允许 boot.sh

当尝试sudo chownsudo chgrp我得到Operation Not Permitted

linux permissions nginx shell

7
推荐指数
1
解决办法
3万
查看次数

Linux 语言环境:en_US.UTF-8 与 en_US

我通常通过配置我的 ubuntu

sudo locale-gen --purge en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

我已经安装了语言环境

# locale -a
C
C.UTF-8
en_US.utf8
POSIX
Run Code Online (Sandbox Code Playgroud)

我失踪了可以en_US吗?

linux ubuntu localization shell

7
推荐指数
2
解决办法
2万
查看次数

如何使用 logger 命令记录多行消息?

我想通过命令将多行消息记录到系统记录器中

echo -e "foo\nbar" | logger
Run Code Online (Sandbox Code Playgroud)

但它显示为 2 个日志。

是否可以记录为单个日志?

linux ubuntu shell syslog

7
推荐指数
2
解决办法
7036
查看次数