Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

4
如何缓解Linux系统上的Spectre和Meltdown漏洞?
安全研究人员在零号项目上发布了一个名为Spectre and Meltdown的新漏洞,该漏洞使程序可以从其他程序的内存中窃取信息。它会影响英特尔,AMD和ARM体系结构。 可以通过访问JavaScript网站来远程利用此缺陷。技术细节上可以找到redhat的网站,Ubuntu的安全团队。 通过推测性执行侧通道攻击的信息泄漏(CVE-2017-5715,CVE-2017-5753,CVE-2017-5754亦称为Spectre and Meltdown) 人们发现,一类新型的边信道攻击会影响大多数处理器,包括Intel,AMD和ARM的处理器。该攻击允许恶意用户空间进程读取内核内存,并允许来宾中的恶意代码读取虚拟机监控程序内存。为解决此问题,将需要更新Ubuntu内核和处理器微代码。这些更新将在以后的《 Ubuntu安全公告》中宣布。 JavaScript中的示例实现 作为概念验证,编写了JavaScript代码,该代码在Google Chrome浏览器中运行时允许JavaScript从其运行过程中读取私有内存。 我的系统似乎受到幽灵漏洞的影响。我已经编译并执行了这个概念证明(spectre.c)。 系统信息: $ uname -a 4.13.0-0.bpo.1-amd64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux $ cat /proc/cpuinfo model name : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz $gcc --version gcc (Debian 6.3.0-18) 6.3.0 20170516 如何缓解Linux系统上的Spectre和Meldown漏洞? 进一步阅读:使用Meltdown实时窃取密码。 更新资料 @Carlos Pasqualini回答Spectre & …

3
无法在代理后面添加带有apt-key的gpg密钥
apt-key自从我切换到Ubuntu 17.04以来,通过系统添加gpg密钥失败(不过我怀疑这是直接相关的)。Spotify的回购密钥示例: $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886 Executing: /tmp/apt-key-gpghome.wRE6z9GBF8/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886 gpg: keyserver receive failed: No keyserver available 如果删除hkp://前缀,也是一样。 上下文:我使用CNTLM处理本地公司代理。设置环境变量(在中/etc/environment): $ env | grep 3128 https_proxy=http://localhost:3128 http_proxy=http://localhost:3128 ftp_proxy=http://localhost:3128 /etc/apt/apt.conf已配置(apt命令运行正常): $ cat /etc/apt/apt.conf Acquire::http::Proxy "http://localhost:3128"; Acquire::https::Proxy "http://localhost:3128"; Acquire::ftp::Proxy "http://localhost:3128"; 最后,指定的密钥服务器似乎可以访问: $ curl keyserver.ubuntu.com:80 <?xml version="1.0"?> <!DOCTYPE …
34 debian  apt  proxy  gpg 

1
如何 !!在bash工作?
当您忘记命令开头的sudo时,此功能非常有用,!!就像上一个命令的别名一样。范例: $ mv /very/long/path/for/a/protected/sensible/file/caution.h . (...) Permission denined $ sudo !! sudo mv /very/long/path/for(...) . [sudo] password : 我们怎么称呼这个双重!!把戏?因此,通过互联网进行研究非常困难。 它是如何工作的 ?我怀疑与history命令的链接。 它在哪里定义?我可以自己定义其他人吗? 编辑:一些有趣的事件指示符 !!:* 它引用上一个命令的参数。用例: cat /a/file/to/read/with/long/path nano !!:* :p 仅打印命令而不执行它,您必须将其放在事件指示符的末尾。 $ !-5:p sudo rm /etc/fstab -f 这里更多。

4
Vim-如何用两个\ n替换一个新行\ n
在vim编辑器中,我想使用vim命令模式将换行符(\ n)替换为两个换行符(\ n \ n)。 输入文件内容: This is my first line. This is second line. 我尝试过的命令: :%s/\n/\n\n/g 它将字符串替换为不需要的字符,因为 This is my first line.^@^@This is second line.^@^@ 然后我尝试了以下命令 :%s/\n/\r\r/g 它工作正常。您能解释一下为什么第二条命令可以正常工作吗?

13
我可以创建一个* super *超级用户,以便实际上可以拥有一个可以拒绝root权限的用户吗?
我当时在想,拥有比root用户更高权限的用户可能是有利的。 您会看到,我想保留所有活动以及几乎所有现有的root用户特权。 但是,我希望能够在极其个别的情况下拒绝特权授予root权限。 优点之一是可以防止在更新过程中安装某些不需要的文件。这只是一个可能优势的例子。 因为apt-get更新是由root或具有sudo特权运行的,所以apt-get能够在更新过程中替换某些不需要的文件。 如果我可以拒绝这些特定文件的特权,则可以将它们设置为simlink,/dev/null或者可以将其设置为空白占位符文件,该文件可以具有在更新过程中拒绝替换文件的权限。 此外,我不禁想起了在接受Ubuntu创作者之一采访时说的一句话,当时那个家伙说了一些有关用户如何更好地信任“我们”(指Ubuntu开发者)的事情,“因为我们有根”,这是在具有root权限的情况下如何执行系统更新的参考。 简单地更改安装过程以说出解决此问题的方法绝对不是我在这里感兴趣的。既然我的脑子里有一个想法,就是有权拒绝超级用户访问权限,那么我想找出一种方法来实现此目的。 我只是考虑过这一点,到目前为止还没有花任何时间来思考这个问题,我非常有信心可以解决这个问题。但是,我很想知道这是否已经完成,或者这可能不是一个新的想法或概念。 基本上,似乎应该有某种方法可以拥有一个超级超级用户,该超级超级用户的权限仅超出系统权限一个级别。 注意:尽管我认为可接受的答案最符合标准,但我非常喜欢@CR的答案。也。 我想在树上创建一个实际的用户(我),但我想我有一天要花一天时间坐下来。 另外,我不是在这里尝试使用Ubuntu。如果我对此感到负面,就不会将其用作主要发行版。
34 permissions  sudo  users  root 

1
tail -f是否比less + F更有效?
本文指出了使用less +Fover的一些原因tail -f。大多数原因与功能有关,而非技术原因:less +F可以突出显示,搜索,浏览文件。 技术原因如何? AFAIK,less使用轮询每一秒更新文件,同时tail,如POSIX定义使用一个循环,1秒睡觉和副本可用任何字节。这足够了,但是POSIX也鼓励实现使用更有效的方法。至少GNU尾部使用了inotify,因此效率更高。 less 还可以将文件内容保留在内存中,因此对于大文件(如数GB),它可能会降低计算机的速度。 那么,有没有任何其他技术使用的原因tail -f了less +F?
34 tail  less 

5
mv -f有什么意义?
该用于GNU Coreutils的手册mv说: -f --force Do not prompt the user before removing a destination file. 但是,这似乎已经是的默认行为mv,因此该-f选项似乎是多余的。例如在GNU Bash版本4.3.11中: $ ls -l total 0 $ touch 1 2; mv -f 1 2; ls 2 $ touch 1 2; mv 1 2; ls 2 -f标志的意图似乎不太可能是重写alias mv="mv -i",因为存在几种重写别名(例如使用\mv)的标准方法,这些方法可以更简洁,且在命令之间保持一致。 手册指出:“如果您指定-i,-f,-n选项中的多个选项,则只有最后一个选项会生效。”但是,该-f标志的意图似乎-i一般是不能覆盖该标志,因为等同的行为可以通过简单地使用来实现mv,这比使用更加简洁和易懂mv -if。 既然如此,-f标记的目的是什么?为什么存在?
34 files  history  mv 

5
从一台服务器到另一台服务器的cp?
我试图绕过我的本地计算机将文件从一台服务器直接复制到另一台服务器。 我做了 scp -r usrname@server1.com:~/data/* usrname@server2.com:~/data/ Password: Host key verification failed. lost connection 这有可能吗?我该如何解决?
34 scp 

3
i686和x86_64软件包之间有什么区别?
我有一台同时装有glibc i686和x86_64的计算机,以及glibc的一个非常烦人的问题。 一台计算机上安装两个相同名称的库是否正常?我怎么知道执行哪个库? 直到最近,我还认为x86_64是i686。好吧,我一定弄错了,但是为什么呢? [root@machin ~]# yum info glibc Loaded plugins: rhnplugin, security This system is not registered with RHN. RHN support will be disabled. Excluding Packages in global exclude list Finished Installed Packages Name : glibc Arch : i686 Version : 2.5 Release : 42 Size : 12 M …

3
即使较新的计算机没有这样的串行端口,为什么某些Linux发行版中仍然包含/ dev / ttyS0,ttyS1等?
许多新的笔记本电脑和台式计算机没有9针/ 25针串行端口。为什么许多Linux发行版还包含/dev/ttyS0,dev/ttyS1设备文件? 由于udev可以动态地创建设备文件,为什么/dev/ttyS0,/dev/ttyS1还是静态创建?每次我开机,/dev/ttyS0并/dev/ttyS1在那里。 顺便说一句:我正在使用Debian 7.0。

9
文本编辑器,用于打印C ++代码
我正在寻找一个编辑器来打印(纸上)C ++代码。我目前在工程学校,导师要求我们在纸上提交代码。 他想要名字+姓氏,类号(在标题上),底部的页数以及每页加粗的保留字! 在Windows上,可以使用notepadd++。但是我在Linux上,但是找不到有效的IDE或文本编辑器。(我已经尝试过SCITE,gedit和Syntaxic)
34 editors  c++  ide 

5
从硬盘到硬盘的完整DD复制
原始问题: 如果我有两个具有以下特征的相同硬盘驱动器: SATA 6.0 Gb /秒 5400转 3TB 完整的dd副本需要多长时间才能完成? 到目前为止,它已经运行了5个小时,并且仍在运行... 我正在使用Linux Ubuntu 12.04 64bit,并且我正在使用的命令是: dd if=/dev/sdb of=/dev/sdc 更新:1 现在,我可以看到进度,复制430GB已超过6个小时。硬盘为3TB ... 没有更快的方法吗? 更新:2 这似乎比以前要好得多(感谢Groxxda的建议): sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K 对于3TB,ETA大约需要9个小时,而在6小时之后达到430GB之前,所以我猜测使用前一个命令大约需要36个小时。
34 hard-disk  dd  cloning 



4
相对于目录的“查找”输出
我想用来find在给定的根目录中递归列出所有文件和目录,以进行cpio操作。但是,我不希望根目录本身出现在路径中。例如,我目前得到: $ find diskimg diskimg diskimg/file1 diskimg/dir1 diskimg/dir1/file2 但是,我想得到 file1 dir1 dir1/file2 (请注意,根目录也不在我想要的输出中,但这很容易被删除tail)。 我在OS X上,如果可能的话,我不希望安装任何额外的工具(例如GNU find),因为我想与其他OS X用户共享我编写的脚本。 我知道可以通过cut切断根目录列表来完成此操作,但这似乎是次佳的解决方案。有没有更好的解决方案?
34 find 

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.