我的问题:我有一个 Python 程序,用户使用sudo. 有时我必须得到用户的家,我只能知道它的名字才能做到这一点:
import pwd
pwd.getpwnam(username)
Run Code Online (Sandbox Code Playgroud)
那么:我怎样才能获得启动该程序的用户的姓名?
假设我有一个mymod包含源文件的模块,如下所示:
src/mod/mymod.c
src/inc/mymod.h
我尝试包含 mymod.h 如下
#include <mymod.h>
Run Code Online (Sandbox Code Playgroud)
我的 makefile 包含EXTRA_CFLAGS= -I$(shell pwd)/../inc/但在制作内核时,我收到一条错误消息:
未找到 mymod.h
原因似乎是在制作内核模块时,此命令从 makefile 运行:(使用makeV1):
make -C <path/to/linux/src> M=<path/to/mymod> modules
Run Code Online (Sandbox Code Playgroud)
在其他作品中,我$(shell pwd)扩展到<path/to/linux>. 这不是我想要的。如何指定-I要指向src/inc我的mymod源树的参数?
查看 的手册页tcpdump,如果缓冲区已满,内核似乎可以丢弃数据包。我想知道是否:
从手册页(为了便于参考):
“被内核丢弃”的数据包(这是由于缺少缓冲区空间而被运行 tcpdump 的操作系统中的数据包捕获机制丢弃的数据包数量,如果操作系统向应用程序报告该信息;如果不是,则报告为0)。
我正在使用 emacs(在终端上)并且我使用 screen 在终端之间切换。组合键Ctrl+A被屏幕抓取。有没有办法改变屏幕键绑定?
在 Virtual Box for windows 中创建的虚拟机可以在 Virtual box for linux 上运行吗?
如果是这样,我只需要传输硬盘文件吗?
我不小心将所有文件夹从根目录移动到子文件夹。( /bin, /etc, /home, /lib, /usr... 全部移动了) 唯一没有移动的,因为它们在使用中,是 /bak, /boot, /dev, /proc, /sys。
现在,我尝试执行的任何命令都不会发生。我经常收到“没有这样的文件或目录”。
我通过 ssh 和 ftp 连接,但我无法通过 ftp 移动文件,因为直接 SU 登录被禁用。如果我需要直接从那里做一些事情,我也可以访问实际的服务器。
我假设我需要编辑一个配置文件以告诉它在哪里可以找到/bin文件夹,这将帮助我再次获得访问权限,但我不知道是哪个文件或如何做(因为我甚至无法运行chmod以更改权限)。
除了重装还有什么办法解决吗?
我正在开发旧版本的 CentOS。
我对 Linux 世界非常陌生,因此这个动作和问题......
我是 Arch Linux 的新手,并且仍然习惯于它的一些范例。我从另一个发行版中养成了很多习惯,这些习惯更加结构化并且在某些方面是可预测的。
我想对一些系统做的一件事是启用 cron 作业来自动更新所有系统包。这似乎很容易,除了我还希望系统提供一些有意义的反馈,告诉我事情的进展情况,但不会太冗长以至于我最终会忽略它,直到我发现系统正在运行。
pacman是不必要的。我不在乎下载花了多长时间,也不在乎它是在 53 次更新中的第 46 次。我确实关心安装过程中发出的“通知”。例如今天的 systemd 更新说:
Run Code Online (Sandbox Code Playgroud):: coredumps are no longer sent to the journal by default. To re-enable: echo >/etc/sysctl.d/50-coredump.conf \ "kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e"
或者文件系统产生了这个:
Run Code Online (Sandbox Code Playgroud)warning: /etc/group installed as /etc/group.pacnew warning: /etc/passwd installed as /etc/passwd.pacnew warning: /etc/shadow installed as /etc/shadow.pacnew
最后一个类别实际上是促使我提出这个问题的原因,因为看起来这些在整个包集中非常不一致。其中一些似乎是由 生成的post_upgrade(),其他的似乎是由等生成的install()。有时它们被写入标准输出,有时被写入标准错误。消息的格式差异很大:有时整个块以某种方式以缩进为前缀,有时只有一个空的回显字符串。
我想知道可能需要我对系统进行干预但又不会被打扰的事情。是否有一种工具可以智能地管理这些数据并简化系统管理?有什么方法可以将软件包生成的输出与安装它们的 pacman 进程分开?还是我自己编写某种解析器来过滤掉安装日志中的良性内容?
¹ 在你跳过这有多么愚蠢之前,请注意我足够聪明,不会在生产服务器上这样做,也不会在没有基于快照的完整系统备份的情况下进行,这样在发生灾难时可以轻松恢复。
目前我正在使用以下内容来检查进程实际运行的时间:
ps -eo uid,pid,etime | egrep '^ *MY_ID' | egrep 'PID_OF_PROCESS'
Run Code Online (Sandbox Code Playgroud)
并输出以下内容:
MY_ID PID_OF_PROCESS 00:16
Run Code Online (Sandbox Code Playgroud)
但是,在该过程结束后,我想知道它实际运行了多长时间,但似乎找不到该信息。
有没有不使用 X11 的 Linux 图形用户界面?
由于 X 的安全性很差 :O
例如:Ubuntu、Fedora - 还有什么?
目标:拥有一个没有 X 的桌面环境。 - 解决方案是什么?(例如:使用 Google Chrome 观看 Flash,使用 LibreOffice 编辑文档等,不使用基于文本的网络浏览器)
也许与帧缓冲区?但是如何?:O
是否可以在 tmux.conf 文件中使用环境变量?我正在尝试为环境变量设置默认路径。目前我正在尝试的是:
set -g default-path $MYVAR
Run Code Online (Sandbox Code Playgroud)
此外,我想检查 $MYVAR 是否已设置,以便我可以执行以下操作:
if($MYVAR == "") set-environment -g MYVAR /somepath/
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?