小编Cal*_*leb的帖子

如何获取启动`sudo`的用户名

我的问题:我有一个 Python 程序,用户使用sudo. 有时我必须得到用户的家,我只能知道它的名字才能做到这一点:

import pwd

pwd.getpwnam(username)
Run Code Online (Sandbox Code Playgroud)

那么:我怎样才能获得启动该程序的用户的姓名?

users sudo python

17
推荐指数
1
解决办法
6998
查看次数

如何在linux内核模块中包含本地头文件

假设我有一个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源树的参数?

linux compiling kernel make

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

用于在内核空间中捕获数据包的缓冲区大小?

查看 的手册页tcpdump,如果缓冲区已满,内核似乎可以丢弃数据包。我想知道是否:

  1. 该大小是可配置的和/或
  2. 我在哪里可以看到我的发行版的大小?

从手册页(为了便于参考):

“被内核丢弃”的数据包(这是由于缺少缓冲区空间而被运行 tcpdump 的操作系统中的数据包捕获机制丢弃的数据包数量,如果操作系统向应用程序报告该信息;如果不是,则报告为0)。

networking kernel buffer tcpdump

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

使用 screen 和 emacs

我正在使用 emacs(在终端上)并且我使用 screen 在终端之间切换。组合键Ctrl+A被屏幕抓取。有没有办法改变屏幕键绑定?

keyboard-shortcuts gnu-screen emacs

16
推荐指数
1
解决办法
5299
查看次数

在 Windows 中创建的虚拟机在 linux 上运行?

在 Virtual Box for windows 中创建的虚拟机可以在 Virtual box for linux 上运行吗?

如果是这样,我只需要传输硬盘文件吗?

virtualbox

16
推荐指数
1
解决办法
7356
查看次数

移动 bin 和其他文件夹!如何让他们回来?

我不小心将所有文件夹从根目录移动到子文件夹。( /bin, /etc, /home, /lib, /usr... 全部移动了) 唯一没有移动的,因为它们在使用中,是 /bak, /boot, /dev, /proc, /sys

现在,我尝试执行的任何命令都不会发生。我经常收到“没有这样的文件或目录”。

我通过 ssh 和 ftp 连接,但我无法通过 ftp 移动文件,因为直接 SU 登录被禁用。如果我需要直接从那里做一些事情,我也可以访问实际的服务器。

我假设我需要编辑一个配置文件以告诉它在哪里可以找到/bin文件夹,这将帮助我再次获得访问权限,但我不知道是哪个文件或如何做(因为我甚至无法运行chmod以更改权限)。

除了重装还有什么办法解决吗?

我正在开发旧版本的 CentOS。

我对 Linux 世界非常陌生,因此这个动作和问题......

linux centos

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

如何在 Arch Linux 上负责任地自动运行更新?

我是 Arch Linux 的新手,并且仍然习惯于它的一些范例。我从另一个发行版中养成了很多习惯,这些习惯更加结构化并且在某些方面是可预测的。

我想对一些系统做的一件事是启用 cron 作业来自动更新所有系统包。这似乎很容易,除了我还希望系统提供一些有意义的反馈,告诉我事情的进展情况,但不会太冗长以至于我最终会忽略它,直到我发现系统正在运行。

  • 的完整输出pacman是不必要的。我不在乎下载花了多长时间,也不在乎它是在 53 次更新中的第 46 次。
  • 在大多数情况下,我不关心成功。
  • 我确实关心错误。如果更新运行失败,我想知道它,并且应该修补任何特定的错误消息。
  • 我确实关心安装过程中发出的“通知”。例如今天的 systemd 更新说:

    :: 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
    
    Run Code Online (Sandbox Code Playgroud)

    最后一个类别实际上是促使我提出这个问题的原因,因为看起来这些在整个包集中非常不一致。其中一些似乎是由 生成的post_upgrade(),其他的似乎是由等生成的install()。有时它们被写入标准输出,有时被写入标准错误。消息的格式差异很大:有时整个块以某种方式以缩进为前缀,有时只有一个空的回显字符串。

我想知道可能需要我对系统进行干预但又不会被打扰的事情。是否有一种工具可以智能地管理这些数据并简化系统管理?有什么方法可以将软件包生成的输出与安装它们的 pacman 进程分开?还是我自己编写某种解析器来过滤掉安装日志中的良性内容?

¹ 在你跳过这有多么愚蠢之前,请注意我足够聪明,不会在生产服务器上这样做,也不会在没有基于快照的完整系统备份的情况下进行,这样在发生灾难时可以轻松恢复。

arch-linux pacman upgrade package-management yaourt

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

如何检查进程完成后运行了多长时间?

目前我正在使用以下内容来检查进程实际运行的时间:

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)

但是,在该过程结束后,我想知道它实际运行了多长时间,但似乎找不到该信息。

process

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

有没有不使用 X11 的 Linux 图形用户界面?

有没有不使用 X11 的 Linux 图形用户界面?

由于 X 的安全性很差 :O

例如:Ubuntu、Fedora - 还有什么?

目标:拥有一个没有 X 的桌面环境。 - 解决方案是什么?(例如:使用 Google Chrome 观看 Flash,使用 LibreOffice 编辑文档等,不使用基于文本的网络浏览器)

也许与帧缓冲区?但是如何?:O

linux security x11

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

在 tmux.conf 文件中使用环境变量

是否可以在 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)

有任何想法吗?

tmux environment-variables

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