小编Ama*_*rus的帖子

允许用户运行带参数的命令(包含空格)

我想允许一个用户运行 grep(通过 sudo),并为一个特定文件中的一个特定字符串 grep。我不想让这个用户能够对所有文件运行 grep。用户没有对该文件的读取权限,因此需要使用 sudo。我正在尝试编写一个 nagios 检查,它对机器上另一个服务的日志文件进行 grep。

但是它不起作用,sudo 不断要求输入密码。

我的命令是:(sudo grep "string I want (" /var/log/thefilename.log是的,(我想 grep 的字符串中有一个原始的和一些空格)

/etc/sudoers.d/user-can-grep 有这个内容:

user ALL=(root) NOPASSWD: /bin/grep "string I want (" /var/log/thefilename.log
Run Code Online (Sandbox Code Playgroud)

此 sudoers 文件归其所有root:root并具有权限-r--r-----

服务器是 Ubuntu trusty 14.04.3 LTS。

我怎样才能使这项工作?

sudo

25
推荐指数
3
解决办法
4万
查看次数

在 debian 上安装更新和旧版本的 python?

如何在 Debian (jessie) 上安装额外版本的 python。在 Ubuntu 上,我可以使用“deadsnakes”PPA,它会给我任何我想要的 python 版本,在命令中带有版本名称(例如python33python 3.3)。这使我可以将它们全部安装在一起。我可以使用 virtualenvs 为特定版本安装特定的 python 包,而不会弄乱系统包。我维护了一些 python 库,它们需要在许多版本的 python 上工作。如果我安装了 python 二进制文件,那么 tox 将负责为每个 python 版本使用 virtualenvs。

那么 Ubuntu 死蛇 PPA 的 debian 版本是什么?

更新我想安装 python:2.6、2.7、3.3、3.4 和 3.5。

debian python

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

基于第一行和最后一行的正则表达式提取文件行的​​子集

我有一个很大的文本文件,我只想查看其中的一些行。我想要的第一行与 regex 匹配R,当该行与 regex 匹配时S,我不关心该行或任何后续行。中间的线将不匹配R。有没有办法在 bash 命令的命令行上执行此操作,以便我可以将输出通过管道传输到某个地方?

text-processing regular-expression

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

打印出 stdin 的 unicode 值?

我用来od打印文件/标准输入/字符串的八进制或十六进制。这让我可以看到标准输入的 ASCII 或 UTF-8 编码值。

但我们不再生活在 ASCII 世界了。是否有任何命令可以打印出(假设)utf-8 编码输入的 unicode 值/代码点?我想知道我看到的是什么 unicode 字符?

command-line debugging unicode text

6
推荐指数
1
解决办法
1377
查看次数

Shellcheck 批准了一种将一个变量中的 2 个参数传递给 bash 脚本中的命令的方法

在 bash 脚本中,我调用另一个程序,但我想使用命令行选项配置该程序。以下作品:

\n
AREA_ARG=""\nif __SOME_SETTING__ ; then\n  AREA_ARG=" --area us,ca "\nfi\n\nprocess_data -i /some/path $AREA_ARG\n
Run Code Online (Sandbox Code Playgroud)\n

即 bash 执行process_data -i /some/path, 或process_data -i /some/path --area us,ca

\n

然而shellcheck抱怨!

\n
$ shellcheck test.sh \n\nIn test.sh line 7:\nprocess_data -i /some/path $AREA_ARG\n                           ^-------^ SC2086: Double quote to prevent globbing and word splitting.\n\nDid you mean: \nprocess_data -i /some/path "$AREA_ARG"\n\nFor more information:\n  https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...\n
Run Code Online (Sandbox Code Playgroud)\n

我理解原理,但我希望/需要变量在空间上分割,以便process_data获得 2 …

bash shell-script shellcheck

6
推荐指数
2
解决办法
1950
查看次数