Articles of linux

为什么密码input工作在pipe道sudo命令?

如果我做: sudo cat /etc/resolv.conf | less 它会提示我input密码,即使更less(大概)需要stdin。 在fd上显示的是密码提示,它是如何得到input的?

在Linux中,为什么超级用户root的文件夹在/ home下?

您可以创build一个具有root权限的root ,并且其主目录将归入/home/username 。 为什么root在文件系统的顶层获取自己的文件夹? 这只是惯例,安全问题,还是与性能相关的原因?

如何列出符号链接链?

鉴于这个例子: mkdir a ln -sab ln -sbc ln -scd 如果我执行: ls -ld 它会显示: d -> c 有没有办法使用ls或其他的linux命令来显示d -> c -> b -> a来代替?

在内核树上执行“make oldconfig”时自动回答默认值

当根据以前的configuration构build一个新的内核时,有没有办法make oldconfig进程自动化,以便将新选项设置为默认值? 编辑:我的意思是,当在新的内核上使用.config(来自/boot/config-*或/proc/config.gz )时, make oldconfig进程会询问是否要启用那些不是在旧的内核中可用。 您可以回答Y / n / m或按回车键接受默认值。 我希望自动接受默认值,而不需要用户交互。

我如何完全logging所有bash脚本操作?

我想从脚本输出中捕获所有的日志数据,包括错误消息,并将它们全部redirect到日志文件。 我有像下面的脚本: #!/bin/bash ( echo " `date` : part 1 – start " ssh -f [email protected] 'bash /www/htdocs/server.com/scripts/part1.sh logout exit' echo " `date` : sleep 120" sleep 120 echo " `date` : part 2 – start" ssh [email protected] 'bash /www/htdocs/server.com/scripts/part2.sh logout exit' echo " `date` : part 3 – start" ssh [email protected] 'bash /www/htdocs/server.com/scripts/part3.sh logout […]

限制Linux用户所拥有的文件

想象一个共享虚拟主机公司的服务器设置,其中多个(~100)客户可以通过shell访问单个服务器。 很多networking“软件”build议chmod文件0777 。 遵循这些教程,我不明智地为我们的客户感到紧张,向其他客户开放了他们的文件。 (我肯定没有cmod 0777自己使用cmod 0777 !)有没有一种方法可以确保客户只能访问他们自己的文件,并阻止他们访问其他用户的世界可读文件? 我查看了AppArmor ,但是它与一个进程非常紧密地联系在一起,这个进程似乎在那个环境下失败了。

用于Linux的安全networking文件系统:人们在做什么?

NFSv3是普遍的,但默认的安全模型是… 古怪 。 CIFS可以使用Kerberos身份validation,但是如果没有POSIX语义,则它是非启动器。 AFS从来没有encryptionnetworking上的stream量,是krb4 – 基本上是一个死的项目。 花哨的新实验性文件系统要么从未实现,要么专注于速度(如果幸运的话,数据可靠性) – 例如,Lustre使用与NFSv3相同的客户端信任模型。 对于家庭使用,sshfs是漂亮的,但是肯定不会缩放。 然后当然还有NFSv4,sec = krb5p。 理论上很好,但是十年之后,似乎在现实世界中还没有得到应用。 Linux客户端刚刚删除了实验性标签。 而如果你看看EMC Celerra,Isilon等等,那都是NFSv3。 (Celerra支持NFSv4,但是它真的被埋在了文档里面,Isilon显然是在为FreeBSD添加RPCGSS支持,所以也许到了,但是现在还没有。)我甚至不能把这个post标记为“nfsv4”,因为我这里是新的, 这将是一个新的标签 。 所以, 真的 。 你在做什么?

如果我启动一个后台进程然后注销,它会继续运行吗?

经过与同事长时间的讨论后问这个问题,我真的很想在这里澄清一下。 我启动一个后台进程,可以通过在命令行中追加“ & ”,或者通过CTRL-Z停止并使用“ bg ”在后台恢复。 然后我退出。 怎么了? 我们确信它应该被SIGHUP杀死,但是这并没有发生。 当再次login时,该过程高兴地运行,并且pstree显示它被init “采纳”。 这是预期的行为? 但是,如果是这样, nohup命令的目的是什么? 看起来这个过程不会被杀死,无论有没有… 编辑1 一些更多细节: 该命令是从SSH会话启动的,而不是从物理控制台启动的。 该命令没有 nohup和/或& ; 然后用CTRL-Z暂停,然后用bg重新开始。 ssh会话没有下降。 有一个实际的注销(“ exit ”命令)。 该过程是一个scp文件的复制操作。 再次login时, pstree显示进程正在运行并且是initsubprocess。 编辑2 要更清楚地说明问题:将背景(使用&或bg )放到一个进程忽略SIGHUP ,就像nohup命令一样? 编辑3 我尝试手动发送一个SIGHUP scp :它退出,所以它绝对不会忽略信号。 然后我再次尝试启动它,把它放在后台并注销: init被“采纳”并继续运行,并且在重新login时发现它。 我现在很困惑。 看起来没有SIGHUP被发送在所有upong注销。

如何通过附加服务器启用SSH X11转发?

我有主机A,B和C.从主机AI只能通过ssh访问B.从BI可以访问C.我希望能够在C上运行X11程序并向前显示给A. 我试过这个: A $ ssh -XB B $ ssh -XC C $ xclock 错误:无法打开显示: 但它不起作用。

现代文件系统中数百万文件的性能影响是什么?

假设我们使用ext4(启用了dir_index)来托pipe3M文件(平均大小为750KB),我们需要决定我们要使用的文件夹scheme。 在第一种解决scheme中 ,我们将散列函数应用于文件,并使用两个级别文件夹(第一级为1个字符,第二级为2个字符):因此,作为filex.for散列等于abcde1234 ,我们将其存储on / path / a / bc /abcde1234-filex.for。 在第二种解决scheme中 ,我们将散列函数应用于文件,并使用两个级别文件夹(第一级为2个字符,第二级为2个字符):因此,作为filex.for散列等于abcde1234 ,我们将其存储on / path / ab / de /abcde1234-filex.for。 对于第一个解决scheme,我们将有以下scheme/path/[16 folders]/[256 folders] , 每个文件夹 (文件所在的最后一个文件夹) 平均为732个文件 。 在第二种解决scheme中,我们将拥有/path/[256 folders]/[256 folders] , 每个文件夹的平均文件数为45个 。 考虑到我们要从这个scheme中写很多(基本上是nginxcaching系统)的文件( 但大多是读取 ),从性能的angular度来看,如果我们select了一个或其他的解决scheme呢? 另外,我们可以使用什么工具来检查/testing这个设置?