小编pev*_*vik的帖子

如何找到 Linux 内核系统调用的实现?

我试图mkdir通过查看内核源代码来了解一个函数是如何工作的。这是尝试了解内核内部结构并在各种功能之间导航。我知道mkdirsys/stat.h. 我找到了原型:

/* Create a new directory named PATH, with permission bits MODE.  */
extern int mkdir (__const char *__path, __mode_t __mode)
     __THROW __nonnull ((1));
Run Code Online (Sandbox Code Playgroud)

现在我需要看看这个函数是在哪个 C 文件中实现的。从源目录,我试过

ack "int mkdir"
Run Code Online (Sandbox Code Playgroud)

其中显示

security/inode.c
103:static int mkdir(struct inode *dir, struct dentry *dentry, int mode)

tools/perf/util/util.c
4:int mkdir_p(char *path, mode_t mode)

tools/perf/util/util.h
259:int mkdir_p(char *path, mode_t mode);
Run Code Online (Sandbox Code Playgroud)

但它们中没有一个与 中的定义匹配sys/stat.h

问题

  1. 哪个文件有mkdir实现?
  2. 有了上面这样的函数定义,我怎么能找出哪个文件有实现呢?内核在定义和实现方法时是否遵循任何模式?

注意:我正在使用内核2.6.36-rc1

source system-calls linux-kernel

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

鼠标滚轮可以在 Screen 会话中工作吗?

有没有办法使用鼠标滚轮滚动screen会话的输出?

screen按下 后,我可以使用键盘滚动浏览先前的输出ctrl+a [。可以用鼠标滚轮做到这一点吗?

(我正在使用putty,但我认为这不是putty问题,我相信这是一个screen问题。)

ssh gnu-screen putty mouse scrolling

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

如何通过终端软杀死 gui 应用程序?

有没有办法以友好的“请立即退出”方式关闭 GUI 应用程序,而无需对应用程序窗口进行图形访问?

例如,如果 Gnome/X 显示器崩溃为黑色,我想切换到 tty2 并关闭像 firefox 这样的应用程序,让它们保存配置等。最好不要进一步的用户查询。

command-line kill gui signals

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

独立于 WM 的方式来聚焦/提升紧急窗口

我想要一个键盘快捷键来“转到”(焦点 + 提升)窗口,并设置了 URGENT 标志,看起来像 URGENT:它出现在任务栏(Gnome + Metacity)上,即使它在桌面上而不是当前并开始眨眼(感谢@slm 指出)。

此窗口可能位于当前虚拟桌面之外的其他虚拟桌面上。

在这种特殊情况下,Skype 窗口设置了紧急标志,因此它们出现在alt-tab弹出窗口(metacity WM)中,但如果它不在当前虚拟桌面上,我无法切换到此窗口。

我正在调查xdotoolwmctrl指挥,但没有运气。

任何想法或线索?


更新:看来,我在谈论_NET_WM_STATE= _NET_WM_STATE_DEMANDS_ATTENTION...

gnome window-manager x11 focus metacity

9
推荐指数
1
解决办法
2753
查看次数

当要求 GPG 密码时,如何让 git 使用 cli 而不是某些 GUI 应用程序?

每当我尝试创建签名的 git 提交时,我都需要输入我的 GPG 密钥。它会生成一些 GUI 应用程序来接收密码。看起来该应用程序是seahorse,所以我卸载了它,但 git 仍然使用一些 GUI 应用程序。Polybar 不报告应用程序名称,其标题只是[process]@MYPC

如何让 git 使用命令行/pinentry?

版本:

git gpg gpg-agent

8
推荐指数
2
解决办法
2035
查看次数

如何使用 audisp-remote 发送审计日志并使用 netcat 接收它们

我正在尝试配置在 VirtualBox 中运行的 CentOS 7,以将其审核日志发送到 FreeBSD 10.3 主机。理想情况下,我希望通过 FreeBSD 接收日志,auditdistd(8)但现在我只想能够使用 netcat。

我的问题是 netcat 没有得到任何数据。

细节

  1. 当我运行时,service auditd status我得到以下结果:
Redirecting to /bin/systemctl status  auditd.service
auditd.service - Security Auditing Service
   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2016-08-19 11:35:42 CEST; 3s ago
  Process: 2216 ExecStartPost=/sbin/augenrules --load (code=exited, status=1/FAILURE)
 Main PID: 2215 (auditd)
   CGroup: /system.slice/auditd.service
           ??2215 /sbin/auditd -n
           ??2218 /sbin/audispd

Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote was restarted
Aug 19 11:35:42 hephaistos audispd[2218]: …
Run Code Online (Sandbox Code Playgroud)

freebsd logs centos netcat linux-audit

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

更改 common-account-pc 或 common-auth-pc 后如何重新启动 pam.d 服务

我在输入配置行时遇到问题,common-account-pc并且common-auth-pc拒绝 root 访问:

account  required  pam_tally2.so  deny=10 onerr=fail unlock_time=600 even_deny_root root_unlock_time=5 file=/home/log/faillog
Run Code Online (Sandbox Code Playgroud)

似乎这条线在尝试多次访问 SUT 时会导致一些问题,我认为它是通过 ssh 进行的攻击。但它实际上是一个测试工具,它尝试从服务器(10.10.10.13)通过 ssh root@ 向 SUT(100.100.100.100)发送多次命令。

Apr 25 05:51:56 SUT sshd[31570]: pam_tally2(sshd:auth): user root (0) tally 83, deny 10
Apr 25 05:52:16 SUT sshd[31598]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.10.10.13  user=root
Apr 25 05:52:21 SUT sshd[31568]: error: PAM: Authentication failure for root from 10.10.10.13
Apr 25 05:52:21 SUT sshd[31568]: Connection closed by 10.10.10.13 [preauth]
Run Code Online (Sandbox Code Playgroud)

由于密码总是正确的,但一段时间后它仍然开始通过异常(pexpect)帐户锁定。

version: 2.3 ($Revision: …
Run Code Online (Sandbox Code Playgroud)

pam

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

内核模块参数 vs /sys/class/... 解释

我正在制作(我的第一个)内核模块来使用我的熊猫板的 gpio 引脚和中断。

已经“内置”了,我注意到你可以做(​​简要)

cd /sys/class/gpio
echo 138 > export  # a file gpio138 appears    
echo out > gpio138/direction
echo 1 > gpio138/value
Run Code Online (Sandbox Code Playgroud)

将连接器引脚上的一些电压调高或调低。

类似地,在内核模块上,您有模块参数,您可以执行echo 3 > /sys/module/my_module/parameters/delay_seconds例如

我的问题:

  1. 什么处理 /sys/class/gpio ?内核模块 ? 一个司机 ?

  2. 无论 1. 是什么,内核模块中是否有可能有更复杂的模块参数,以及一些目录结构?就像包含延迟参数的“延迟”目录一样,....../sys/module/my_module/parameters/delays/delay_led1_seconds

  3. 您可以在路径 /sys/module/my_module/parameters/... 之外的其他地方设置参数吗?(/sys/class/a_name/... 例如)

  4. 当您写入时,gpio 如何在 /sys/class/gpio 中创建新/删除文件[un]export

drivers kernel-modules sysfs

5
推荐指数
1
解决办法
4019
查看次数

checkbashisms:“类型”有什么问题?

#!/bin/sh

foo() {
   echo "in foo"
}

type foo
Run Code Online (Sandbox Code Playgroud)

checkbashisms.pl明明不喜欢type,为什么?

$ checkbashisms.pl foo.sh
possible bashism in foo.sh line 7(type):
type foo
Run Code Online (Sandbox Code Playgroud)

不是POSIX吗?但是所有常见的外壳都支持它(即bash, zsh, dash, busybox sh, mksh; 甚至在ksh; 也许只是csh不支持它),难道不应该有一种方法来抑制这个警告吗?

shell shell-builtin

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

为什么root用户无法创建浏览器沙箱?

--no-sandbox错误:不支持以 root 身份运行。

  • 在Linux中,为什么root用户不能像其他用户一样为chrome或opera浏览器创建沙箱?
  • 为什么 root 用户需要使用--no-sandboxargs 启动浏览器?
  • 无沙箱使用时浏览器的安全性有何意义?
  • 有没有办法为root用户在浏览器中创建沙盒环境?

chrome browser sandbox

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