Questions tagged «linux»

这些问题通常与Linux有关-并非特定于特定发行版。如果问题恰好在Linux环境中,请在问题正文中指定Linux发行版,但不要使用/ linux标记。

1
Bash-日期,在32位LINUX系统上解决2038错误
我写了一个小小的bash脚本,使我偶然发现了“ 2038年错误”。我以前不知道这个问题,我只是敢发布我的脚本试图在这个不可思议的日期(2038年1月19日的UTC:14:07)进行计算时--debug得到的输出date。 date -d "20380119" date: parsed number part: today/this/now date: input timezone: +01:00 (set from system default) date: warning: using midnight as starting time: 00:00:00 date: starting date/time: '(Y-M-D) 2038-01-19 00:00:00 TZ=+01:00' date: '(Y-M-D) 2038-01-19 00:00:00 TZ=+01:00' = 2147468400 epoch-seconds date: output timezone: +01:00 (set from system default) date: …
9 linux  date  gnu 

1
为什么我不能打印在env输出中看到的变量?
我对设置一个外壳实例与另一个外壳实例的环境变量感兴趣。所以我决定做一些研究。阅读了许多与此有关的问题后,我决定对其进行测试。 我生成了两个外壳A和B(PID 420),它们都在运行zsh。从外壳程序AI运行以下命令。 sudo gdb -p 420 (gdb) call setenv("FOO", "bar", 1) (gdb) detach 从外壳B运行时,env我可以看到变量FOO确实设置为bar值。这使我认为FOO已在shell B的环境中成功初始化。但是,如果我尝试打印FOO,则会出现一个空行,表明未设置FOO。对我来说,这里似乎有矛盾。 这已在我自己的Arch GNU / Linux系统和Ubuntu VM上进行了测试。我还在bash变量甚至未在env中显示的地方对此进行了测试。尽管这让我感到失望,但如果shell在生成时缓存其环境的副本并仅使用它(在链接的问题之一中建议),则是有意义的。这仍然不能回答为什么zsh可以看到变量。 为什么输出为echo $FOO空? 编辑 输入评论后,我决定进行更多测试。结果可以在下表中看到。第一列是FOO注入变量的外壳。第一行包含该命令的输出,可以在其下面看到。FOO使用:注入变量sudo gdb -p 420 -batch -ex 'call setenv("FOO", "bar", 1)'。zsh:专用的命令zsh -c '...'也已使用bash进行了测试。结果是相同的,为简洁起见,省略了它们的输出。 Arch GNU / Linux,zsh 5.3.1,bash 4.4.12(1) | | env | grep FOO | echo …

1
什么是通用套接字,它与网络设备有什么关系?
我试图了解网络驱动程序如何在Linux下工作。此次问答表明,Linux中的网络设备未由设备文件表示。它指出网络驱动程序可以使用sockets。 例如,这引用了如何通过ioctl呼叫来设置网络设备。ioctl但是,由于没有用于网络驱动程序的设备文件,因此需要一个文件描述符,唯一可以传递的文件描述符是套接字中的文件描述符。 这使我明白了问题的重点。到目前为止,似乎是物理网卡的软件表示形式的网络接口实际上是套接字的劣等对象。 但是,从抽象的角度来说,套接字是什么,它仅仅是支持推送通知的设备文件的另一个名称吗?我通过用户空间应用程序绑定到网络接口上的address:port对的连接点来理解TCP套接字。我不了解套接字是设置网络接口的先决条件。 Linux上的网络接口(如eth0列出的ifconfig)是否可以不带套接字? ifconfig或某些网络管理器守护程序是否保持套接字打开以允许我们设置网络接口选项?

1
使用Linux上的ZFS,如何列出设备(vdev)的特定属性?
从现在开始我一直在使用ZFS,没有任何问题。我仍然对此感到兴奋,并且高度信任它。但是我不时会想到新的问题(特别是在阅读了一些文档之后,有时会增加而不是减少问题的数量)。 在这种情况下,我向根池添加了新的vdev(镜像),因此已阅读zpool手册(man zpool)。在本节的末尾zpool add,它指出: -o属性=值 设置给定的池属性。有关可以设置的有效属性的列表,请参见“属性”部分。目前唯一支持的属性是转移。请注意,某些属性(包括ashift)不是从先前的vdev继承的。它们是特定于vdev的,而不是特定于池的。 这意味着该ashift属性不是特定于池的,而是特定于vdev的。但是我无法找到任何命令或选项来允许我查看每个vdev的该属性(或任何其他vdev特定的属性)。 换句话说,例如,如果我有一个包含一个带有vdev ashift=12和一个带有vdev的池,ashift=10我该如何验证呢? 我已经尝试过的: root@cerberus:~# zpool list -v -o ashift rpool ASHIFT 12 mirror 928G 583G 345G - 27% 62% ata-ST31000524NS_9WK21HDM - - - - - - ata-ST31000524NS_9WK21L15 - - - - - - mirror 928G 74.4M 928G - 0% 0% ata-ST31000524NS_9WK21FXE - - …
9 linux  devices  zfs 

1
如何确定计算机是否具有TPM(受信任的平台模块)
想要使用Trusted Platform Module的东西,我安装了TrouSerS并尝试启动tcsd,但是出现了这个错误: TCSD TDDL ERROR: Could not find a device to open! 但是,我的内核加载了多个TPM模块: # lsmod | grep tpm tpm_crb 16384 0 tpm_tis 16384 0 tpm_tis_core 20480 1 tpm_tis tpm 40960 3 tpm_tis,tpm_crb,tpm_tis_core 那么,如何确定我的计算机是否缺少TPM与TrouSerS是否存在错误? 无论是dmidecode也不是cpuid关于“TPM”或“信任”输出任何东西。在中/var/log/messages,一方面,我看到了rngd: /dev/tpm0: No such file or directory,但另一方面,我看到了,kernel: Initialise system trusted keyrings并且根据该内核文档,可信密钥使用TPM。 编辑:我的计算机的BIOS设置菜单没有提及TPM。 另外,请看/proc/keys: # cat /proc/keys …
9 linux  security  tpm 

1
为什么从〜运行时find命令找不到目录?
下/tmp有一个名为的目录test_copy。 $ ls /tmp/test_copy/ a.sh b.sh $ cd /tmp /tmp$ find . -name test_copy ./test_copy 但是,如果我运行以下find命令,它将不会返回任何内容。 ~/scripts$ find /tmp -name test_copy ~/scripts$ 为什么find在最后一种情况下找不到目录?
9 linux  find 

1
仅使用一个cpu内核
我需要为并发程序运行性能测试,而我的要求是只能在一个 CPU内核上运行它。(我不想使用协作线程-我希望始终进行上下文切换)。 所以我有两个问题: 最佳解决方案-如何仅为我的程序签名和保留一个CPU内核(以强制OS不要使用该CPU内核)。我想不可能,但也许我错了... 如何设置Linux(Fedora 24)仅使用一个CPU内核?

2
如何保护我的系统免受Linux中的Off-path TCP攻击?
根据cve.mitre.org的说法,4.7之前的Linux内核容易受到“偏离路径” TCP漏洞的攻击 描述 4.7之前的Linux内核中的net / ipv4 / tcp_input.c不能正确确定质询ACK段的速率,这使得中间人攻击者更容易通过盲目窗口内攻击来劫持TCP会话。 该漏洞被认为是危险的,因为攻击者仅需要IP地址即可执行攻击。 将Linux内核升级到最新的稳定版本是否4.7.1成为保护我的系统的唯一方法?

1
Ubuntu Service samba被屏蔽,无法启动
我正在尝试在Ubuntu服务器上运行samba服务,它给了我错误信息,并说它被掩盖了并且死了,我该如何解决?是什么导致它像这样? 这是我得到的错误:- 无法启动samba.service:单位samba.service被屏蔽。如果我在Virtual Box上运行Ubuntu服务器,那会是问题吗?谢谢。
9 linux  ubuntu 

4
如果禁用selinux会发生什么问题[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 我们从另一个团队那里继承了一堆二手服务器。其中有些启用了SELinux,有些则没有。由于SELinux的,我们是无法设置密码的ssh,我们的网络服务器等,我们发现一个变通此stackexchange网站,这是运行: restorecon -R -v ~/.ssh 但是,由于我们不需要运行SELinux来完成工作,因此将其关闭可能比记住每个人都需要权限的目录运行上述cmd容易。 我们是否可以关闭SELinux而不产生任何影响,还是重新映像服务器更好?需要注意的一件事;我们的IT团队真的很忙,因此除非是绝对必要(需要非常好的业务案例),否则重新映像服务器的位置并不高...或者有人用一瓶苏格兰威士忌或威士忌贿赂老板。 更新:感谢大家的建议。这些服务器都将用作内部开发服务器。这些机器将不会有外部访问,因此安全性不是我们关注的重点。据我们所知,我们目前使用的所有服务器均未启用SELinux。我的经理刚刚获得的一些服务正在执行,而那些我们正在禁用的服务正在执行,因此集群中的所有内容都是统一的。
9 linux  ssh  selinux 



1
rsyslogd反复HUP
注意,对于VM框,进入rsyslogd进程已被HUP的日志。除了一些论坛上的一些帖子说这是逻辑上的观点之外,没有找到任何想法。任何想法如何解决/解决此问题。 messages-20141011:2014-10-10T04:02:02.054134-06:00 udr-oradl01 rsyslogd: [origin software="rsyslogd" swVersion="5.8.12" x-pid="364" x-info="http://www.rsyslog.com"] rsyslogd was HUPed messages-20141011:2014-10-11T04:02:02.079917-06:00 udr-oradl01 rsyslogd: [origin software="rsyslogd" swVersion="5.8.12" x-pid="739" x-info="http://www.rsyslog.com"] rsyslogd was HUPed messages-20150124:2015-01-24T04:02:01.497596-07:00 udr-oradl01 rsyslogd: [origin software="rsyslogd" swVersion="5.8.12" x-pid="819" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
9 linux  rhel  vmware  rsyslog 

1
半专有软件如何基于Linux内核?
如果我理解正确,Linux内核是根据GPL许可的,这意味着,如果任何人都基于GPL许可,他们还必须根据GPL许可整个衍生作品,从而使任何人都可以自由地修改和/或重新分发其衍生作品。 例如,所有Android版本均基于LK。这是否意味着整个发布及其所有组件也必须根据GPL发布? 例如,大多数Android版本附带专有组件。这不违反GPL吗?是否不需要根据GPL发布全部衍生作品? 例如,对于Ubuntu,您必须在安装后下载MPEG编解码器。我认为这是因为MPEG是专有的,因此MPEG的许可证与GPL不兼容,因此它们不能包含在同一发行版中吗? Android版本如何解决这个问题?

2
是否可以为流程伪造特定路径?
我正在尝试在不具有root用户的多个用户的linux服务器上运行ADB(与我的android模拟器一起玩)。adb守护程序将其日志写入文件/tmp/adb.log,不幸的是,该日志似乎已硬编码到ADB中,这种情况不会改变。 因此,adb无法运行,给出了明显的错误:cannot open '/tmp/adb.log': Permission denied。该文件是由另一个用户创建的,/tmp具有粘性。如果我通过adb nodaemon server将adb 写入stdout来启动它,则不会发生任何错误(我还将其端口设置为唯一值以避免冲突)。 我的问题是:有什么方法可以使ADB写入另一个文件/tmp/adb.log?更一般而言,是否有一种方法可以创建一种特定于过程的符号链接?我想将所有文件访问重定向/tmp/adb.log到一个文件~/tmp/adb.log。 同样,我不是服务器的root用户,所以chroot,mount -o rbind并且chmod不是有效的选项。如果可能的话,我不想修改ADB的来源,但是如果没有其他解决方案,我一定会做的。 PS对于特定的ADB案例,我可以求助于adb nodaemon serverwith nohup和输出重定向,但是一般问题仍然很重要。
9 linux  filenames  adb 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.