Articles of linux

/ sbin / nologin和/ bin / false有什么区别?

我经常听说它build议通过将其shell设置为/bin/false来禁用用户帐户。 但是,在我现有的Linux系统上,我发现大量现有帐户(所有服务帐户)都有一个/sbin/nologin的shell。 我从man页面看到, /sbin/nologin向用户打印一条消息,说明帐户已禁用,然后退出。 推测/bin/false将不会打印任何东西。 我也看到/sbin/nologin列在/etc/shells ,而/bin/false不是。 该手册页说,FTP将禁止未在/etc/shells列出的shell的用户访问,并暗示其他程序可能会执行相同的操作。 这是否意味着有人可以使用以/sbin/nologin作为shell的帐户进行FTP? 这里有什么区别? 我应该使用哪一个来禁用用户帐户,以及在什么情况下? /etc/shells中的列表有什么其他影响?

如何在Linux中显示文本文件中的某些行?

我想大家都知道有用的Linux命令行工具head和tail 。 head允许您打印文件的第一个X行, tail相同但打印文件的结尾。 什么是打印文件中间的好命令? middle –start 10000000 –count 20 (打印第10万行至第10000000行)。 我正在寻找能够有效处理大文件的东西。 我试过tail -n 10000000 | head 10 tail -n 10000000 | head 10 ,它是可怕的缓慢。

重新读取分区表而不重新启动?

有时候,在调整磁盘分区的大小时,cfdi​​sk会说: Wrote partition table, but re-read table failed. Reboot to update table. (其他分区工具也会发生这种情况,所以我认为这是一个Linux问题,而不是一个cfdisk问题。)为什么会这样呢,为什么只是偶尔发生,我该怎么办才能避免呢? 注意:请假设我正在编辑的分区没有被打开,挂载或以其他方式使用。 更新: cfdisk使用ioctl(fd, BLKRRPART, NULL)告诉Linux重新读取分区表。 到目前为止推荐的其他两种工具( hdparm -z DEVICE , sfdisk -R DEVICE )的function完全相同。 另一方面, partprobe DEVICE命令似乎使用了一个名为BLKPG的新的ioctl,可能会更好; 我不知道。 (如果BLKPG失败,它也会落在BLKRRPART上。) BLKPG似乎是“这个分区已经改变了;这是新的大小”的操作,它看起来像partprobe在设备的所有分区上单独调用它,所以它应该工作,如果单个分区是未使用的。 但是,我没有机会去尝试。

从SSH会话中断开连接是否会中止程序?

所以,说我开始rsync或cp或任何其他可以长时间运行的命令后,我会从SSH会话断开连接。 这个命令是否继续运行,直到断开连接完成,或者只是被杀死? 总是想知道这一点。

什么不应该由傀儡pipe理?

我通过一般的configurationpipe理学习了自己的方式,特别是使用puppet来实现它,我想知道系统的哪些方面(如果有的话) 不应该用puppet来pipe理。 举个例子,我们通常认为在将系统借给傀儡pipe理之前已经build立了主机名。 基本的IP连接,至less在用来联系木偶大师的networking上,必须工作。 使用木偶来自动创buildDNS区域文件是诱人的,但DNS反向指针应该已经在启动东西或证书将是有趣的。 那么我应该从puppet中去掉IPconfiguration吗? 还是应该在第一次启动木偶之前设置它,但是仍然用木偶pipe理ip地址? 有多个IP的系统(如WAN,LAN和SAN)呢? 怎么样IPMI ? 你可以用ipmitoolconfiguration它的大部分(如果不是全部的话),从而避免获得控制台访问权限(物理,串口over LAN,远程KVM等等),这样就可以通过puppet实现自动化。 但重新检查每个傀儡代理商的状态对我来说听起来并不酷,而在进行其他任何事情之前,基本的进入系统的灯光是我想要的。 另一个故事是关于安装更新。 我不是在这个具体的问题上,SF和许多不同的系统pipe理员之间的哲学已经有很多问题了。 我自己,我决定不让木偶更新东西(比如只ensure => installed ),并且像我们习惯的那样手动进行更新,而当我们对木偶更有信心的时候,这个任务的自动化将会更晚。通过添加MCollective混合)。 这些只是我脑海中的一些例子。 系统的任何方面都应该放在傀儡拿不到的地方吗? 或者换句话说,在系统configuration时应该设置什么和在系统中“静态”configuration之间的界限,以及通过集中configurationpipe理来处理什么?

如何将时间戳添加到bash脚本日志?

我有一个不断运行的脚本,我输出到一个日志文件: script.sh >> /var/log/logfile 我想在每个附加到日志的行之前添加一个时间戳。 喜欢: Sat Sep 10 21:33:06 UTC 2011 The server has booted up. Hmmph. 有什么可以使用的柔术吗?

memtest86 +testing内存是用来运行自己吗?

常见的服务器故障情况之一是坏的DRAM,有时甚至在使用ECC内存时也是如此。 memtest86+是诊断DRAM问题最有用的工具之一。 由于它在内存开始时自动加载,我一直在怀疑memtest86+是否检查memtest86+加载的内存部分。 内存分配到memtest86+这么小,没关系, memtest86+可能会错过DRAM的缺陷,因为它不能testing它驻留的内存位置?

Linux:没有根的高效系统pipe理员(保护知识产权)?

有没有办法让一个经验丰富的Linux系统pipe理员高效地工作而不给他完全的root权限? 这个问题来自保护知识产权(IP)的angular度,在我看来,这完全是代码和/或configuration文件(即容易复制的小数字文件)。 我们的秘诀已经使我们比我们小小的build议更成功。 同样地,我们曾经被一度bit,,曾经试图窃取知识产权的一些以前不择手段的员工(不是系统pipe理员)羞辱过。 高层pipe理人员的立场基本上是:“我们信任人,但是出于自身利益,不能承担给任何一个人更多获取的风险,而不是他们绝对需要做的工作。” 在开发人员方面,对工作stream程和访问级别进行分区比较容易,这样人们可以提高生产力,但只能看到他们需要查看的内容。 只有顶级人物(实际的公司所有者)才有能力将所有的原料结合起来,创造特殊的酱料。 但是我还没有能够想出一个在Linuxpipe理端维护这个IP保密性的好方法。 我们广泛使用GPG代码和敏感文本文件…但是,如何阻止pipe理员(例如)su'ing给用户并跳到他们的tmux或GNU Screen会话并查看他们在做什么呢? (我们也有无处不在的互联网接入,可能会接触到敏感信息,但没有什么是完美的,在networkingpipe理员面前可能会出现明智的系统pipe理员或者错误,甚至是好的旧的USB。当然还有许多其他的措施,但这些都超出了这个问题的范围。) 我所能想到的最好的方法是使用sudo的个性化帐户,类似于以root身份工作的多个Linux系统pipe理员 。 具体而言:除了公司所有者之外,没有人实际拥有直接的根访问权。 其他pipe理员将有一个个性化的帐户和能够sudo根。 此外,将build立远程日志logging,并且只有公司所有者才能访问服务器。 看到日志loggingclosures会引发某种警报。 一个聪明的系统pipe理员可能仍然可以在这个scheme中find一些漏洞。 除此之外,它仍然是被动的而不是主动的 。 我们知识产权的问题是,竞争对手可以很快地利用它,并在很短的时间内造成很大的损失。 所以更好的办法是限制pipe理员可以做的事情。 但是我认识到这是一个微妙的平衡(特别是在排查和解决目前需要解决的生产问题的情况下)。 我不禁想知道其他具有非常敏感数据的组织如何pipe理这个问题? 例如,军事系统pipe理员:他们如何pipe理服务器和数据而不能看到机密信息? 编辑:在最初发布,我的意思是抢先解决“招聘做法”的意见,开始浮出水面。 其一,这应该是一个技术问题,国际海事组织的招聘做法更倾向于社会问题。 但是,我会这样说的:我相信我们会尽自己所能招聘到的人:与公司的多个人面谈; 背景和参考检查; 所有员工都签署了许多法律文件,其中包括一个说他们已经阅读和理解我们的手册详细的知识产权问题。 现在,这个问题已经超出了这个问题的范围,但是如果有人能够提出“完美”的招聘方式来过滤掉100%的不良演员,那么我就是耳熟能详。 事实是:(1)我不相信有这样一个完美的招聘过程; (2)人们改变 – 今天的天使可能成为明天的魔鬼; (3)企业的盗号行为在这个行业似乎有些惯例。

使用crontab进行作业调度,计算机在那段时间内closures会发生什么?

我使用crontab安排了一些任务。 如果我的电脑关机或在cron计划执行某些操作时closures,会发生什么情况? 每台计算机启动后是否错过了cron作业,或者被忽略的当天错过作业? 如果错过的作业不能恢复,有没有办法configurationcron,以便在计算机重新启动后运行错过的任务?

是否有可能在Linux中别名主机名?

是否有可能在Linux中别名主机名? jmillikin在各种Ubuntu论坛上提出如下问题: 有没有可能创build一个主机名别名? 有点像/ etc / hosts,但与其他主机名而不是IP地址。 因此,有了这样的文件,你可以ping“fakehost1”,并将其重新映射到“真实主机”,然后“真实主机”将被parsing为IP地址。 # Real host # Aliases realhost fakehost1 fakehost2 fakehost3 有人已经回答了关于ssh,但不是关于ping等。我的主要目的是作为一个Subversion服务器的别名。 在我的情况下,realhost是在一个dynamic的IP地址下。 所以,“/ etc / hosts”别名不起作用。 我想以svn://my_svnserver/my_repos而不是svn://realhost/my_repos来访问我的Subversion服务器。