有时我在/etc使用 Vim 时开始编辑配置文件,但忘记使用sudo启动 Vim。不可避免的结果是,在完成我的编辑后,我遇到了可怕的通知,即我没有保存文件的权限。
大多数编辑都足够小,我只需退出 Vim 并以 root 身份再次执行整个操作。我当然可以保存到我可以写入的位置,然后以 root 身份复制,但这也有点烦人。
但是我确信有一种更简单的方法可以sudo在 Vim 内部成为 root 或使用,而不必放弃更改。如果该方法不依赖于sudo为用户设置,那就更好了。
我试图让一个特定的软件运行,它使用一个许可证管理器,它没有注意到较新的 Linux 发行版不再命名他们的网络设备eth0。它正在尝试验证 MAC 地址,但是由于ens1在 Centos 7 上调用了我的 NIC,这不起作用。
该软件的供应商已经在另一台计算机上修复了这个问题,我想了解他们是如何做到这一点的。他们创建了某种别名,ens1以便许可证管理器可以eth0再次找到。
如果我这样做ifconfig -a,则根本不会显示别名,但在显式调用ifconfig eth0. 使用ip link命令可以看到如下:
eth0@ens1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
link/ether [mac address] brd ff:ff:ff:ff:ff:ff
Run Code Online (Sandbox Code Playgroud)
他们到底在这里做了什么,我如何在另一台计算机上重新创建这种别名?
在 unices 上不需要文件扩展名,但我遇到的每个 tarred、gzipped 或 bzipped 文件都有一个文件扩展名,如.tar,.tar.gz或.tgz.
有什么特殊原因吗,还是只是约定俗成?
我有一个特定的 Linux 可执行文件,它被一个更大的应用程序调用来执行一些计算。我想修改执行计算的方式,为此我首先需要了解可执行文件的调用方式以及参数和数据的传输方式。
因此,如果调用此可执行文件,我想监视命令行参数、stdin 和 stdout。可执行文件的正常运行不应受到干扰。
有没有简单的方法来做到这一点?
更新:
我尝试了 shell 脚本占位符的想法来使用以下脚本获取所有数据:
#!/bin/bash
export LOGFILE=/tmp/logname
echo `env` > $LOGFILE-env
echo "$@" >> $LOGFILE-arguments
tee -a $LOGFILE-stdin | /path/to/real/executable 2>&1 | tee -a $LOGFILE-stdout
Run Code Online (Sandbox Code Playgroud)
这适用于测试输入,但如果它被真正调用,它就会挂起。可能发生的事情比我想象的还要多。
我正在尝试使用 x11vnc 来允许用户远程控制某些计算机。一般来说,这工作得很好,但有一个方面我在实施时遇到了困难。我想限制对特定用户帐户的访问,但 X11 会话所属的用户是不同的。
所以情况是:
问题是我只能以 root 或当前登录的用户身份启动 x11vnc,它不能像任何其他用户一样工作。有什么方法可以允许特定用户访问我的 X11 会话吗?