据我了解,Linux 内核会记录到/proc/kmsg文件(主要是与硬件相关的消息)和/dev/log套接字吗?还有其他地方吗?其他应用程序是否也能够向/proc/kmsg或发送消息/dev/log?最后但并非最不重要的,我是正确的,这是系统日志守护程序(rsyslog现在,syslog-ng的),该检查的消息来自这两个地方,然后分发到那些像各种文件/var/log/messages或者/var/log/kern.log甚至是中央系统日志服务器?
我正在阅读这本书,Mark Mitchell、Jeffrey Oldham 和 Alex Samuel 合着的Advanced Linux Programming。2001年的,有点老了。但无论如何我觉得它非常好。
但是,我发现它与我的 Linux 在 shell 输出中产生的不同。在第 92 页(查看器中的第 116 页),第 4.5 章 GNU/Linux 线程实现以包含以下语句的段落开头:
GNU/Linux 上 POSIX 线程的实现在一个重要方面不同于许多其他类 UNIX 系统上的线程实现:在 GNU/Linux 上,线程被实现为进程。
这似乎是一个关键点,稍后用 C 代码进行说明。书中的输出是:
main thread pid is 14608
child thread pid is 14610
Run Code Online (Sandbox Code Playgroud)
在我的 Ubuntu 16.04 中,它是:
main thread pid is 3615
child thread pid is 3615
Run Code Online (Sandbox Code Playgroud)
ps 输出支持这一点。
我想从 2001 年到现在,肯定发生了一些变化。
下一页的下一个子章节 4.5.1 信号处理建立在上一条语句的基础上:
信号和线程之间的交互行为因类 UNIX 系统而异。在 GNU/Linux 中,行为是由线程作为进程实现的事实决定的。
看起来这在本书后面会更加重要。有人可以解释这里发生了什么吗?
我见过这个Linux 内核线程真的是内核进程吗?,但这并没有多大帮助。我糊涂了。
这是C代码: …
根据Rapid7 的一篇文章,有一些易受攻击的Samba版本允许在 Linux 系统上远程执行代码:
虽然WannaCry勒索蠕虫影响了 Windows 系统并且很容易识别,但有明确的修复步骤,但Samba漏洞将影响 Linux 和 Unix 系统,并可能为获得或部署适当的修复带来重大的技术障碍。
从 3.5.0 开始的所有版本的 Samba 都容易受到远程代码执行漏洞的攻击,恶意客户端可以将共享库上传到可写共享,然后导致服务器加载并执行它。
可能的攻击场景:
从两个因素出发:
攻击者可以访问 Linux 机器并使用本地漏洞提升权限以获得 root 访问权限并安装未来可能出现的 ramsomware,类似于适用于 Linux 的 WannaCry 勒索软件模型 。
更新
最新文章“警告!黑客开始使用“SambaCry 漏洞”来破解 Linux 系统”演示了如何使用 Sambary 漏洞来感染 linux 机器。
该预测结果非常准确,因为卡巴斯基实验室的研究人员团队建立的蜜罐捕获了一个恶意软件活动,该活动利用 SambaCry 漏洞感染带有加密货币挖掘软件的 Linux 计算机。
另一位安全研究员 Omri Ben Bassat? 独立发现了同一个活动并将其命名为“EternalMiner”。
据研究人员称,在 Samba …
Linux 内核最低构建要求指定计算器bc需要构建内核 v4.10,该工具的最低版本为1.06.95.
bc在这种情况下有什么用,为什么不直接使用 C 语言来代替bc这些操作?
我经常听到人们将 Linux 内核称为 Linux 内核映像,而且我似乎无法在任何搜索引擎上找到有关为什么将其称为映像的答案。
当我想到图像时,我只能想到两件事,要么是磁盘副本,要么是照片。它肯定不是照片图像,为什么它被称为图像?
我找不到关于rt和lowlatencyLinux 内核的任何好的信息。
我很奇怪,为什么有人会不希望使用低延时的内核。
另外,如果有人能说出具体的区别是什么,那也太好了。
我的电脑说:
$ uptime
10:20:35 up 1:46, 3 users, load average: 0,03, 0,10, 0,13
Run Code Online (Sandbox Code Playgroud)
如果我检查,last我会看到:
reboot system boot 3.19.0-51-generi Tue Apr 12 08:34 - 10:20 (01:45)
Run Code Online (Sandbox Code Playgroud)
然后我检查:
$ ls -l /var/log/boot.log
-rw-r--r-- 1 root root 4734 Apr 12 08:34 boot.log
Run Code Online (Sandbox Code Playgroud)
然后我在/var/log/syslog今天的第一行看到:
Apr 12 08:34:39 PC... rsyslogd: [origin software="rsyslogd" swVersion="7.4.4" x-pid="820" x-info="http://www.rsyslog.com"] start
Run Code Online (Sandbox Code Playgroud)
所以一切似乎都集中在8:34我的机器启动的时候。
但是,我想知道:确切的时间uptime使用是什么?是uptime启动并检查某个文件的进程还是硬件上的某个进程?
我正在运行 Ubuntu 14.04。
我只是好奇是否可以单独安装 Linux 内核,或者您是否需要使用其中一种风格。如果可能,你会怎么做?我不需要详细的教程。我只是想知道它在概念上是如何完成的。我不擅长底层的东西,想知道你是如何将操作系统安装到计算机中的。我想这与MBR有关。
哦,我注意到很多答案都暗示了一些最小 Linux 的某个发行版。我可能应该说我不打算安装一个最小的或裸机的 Linux。这个问题纯粹是理论上的。不过,我真的很感激所有的答案,如果我想安装一个真正个性化的 Linux,我会立即参考它们。
为什么 Linux 要求用户是根用户/使用 sudo/每个挂载特别授权才能挂载某些东西?关于是否允许用户挂载某些东西的决定似乎应该基于他们对源卷/网络共享和挂载点的访问权限。非根挂载的几个用途是将文件系统映像挂载到用户拥有的方向,并将网络共享挂载到用户拥有的目录。似乎如果用户可以控制安装方程的两边,一切都应该很酷。
访问限制说明:
我觉得我应该能够挂载用户可以访问的任何内容,否则用户将拥有该用户拥有的挂载点。
例如,在我的计算机上, /dev/sda1 由用户 root 和具有权限的组磁盘拥有brw-rw----。因此,非 root 用户不能弄乱 /dev/sda1 并且显然 mount 不应该允许他们挂载它。但是,如果用户拥有 /home/my_user/my_imagefile.img 和挂载点 /home/my_user/my_image/ 为什么他们不能在该挂载点上挂载该图像文件:
mount /home/my_user/my_imagefile.img /home/my_user/my_image/ -o loop
Run Code Online (Sandbox Code Playgroud)
正如科尔马克指出的那样,存在一个 suid 问题。因此,必须添加一些限制以防止 suid 成为问题以及潜在的其他一些问题。也许一种方法是让操作系统将所有文件视为属于进行安装的用户。但是对于简单的读/写/执行,我不明白为什么这会是一个问题。
用例:
我在实验室有一个帐户,我的家庭空间限制为 8GB。这是很小的,非常非常烦人。我想从我的个人服务器安装一个 nfs 卷,以从本质上增加我拥有的空间量。然而,因为 Linux 不允许这样的事情,我被困在 scp 文件来回保持在 8GB 限制之下。
我正在学习设备驱动程序和内核编程。根据 Jonathan Corbet 的书,main()设备驱动程序中没有功能。
所以我有两个问题:
main()设备驱动程序中的函数?main()功能吗?谁可以给我解释一下这个?