Unix & Linux

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

2
apache和PHP应该以什么用户身份运行?/ var / www文件应具有什么权限?
我只是旋转了一个Ubuntu 11.10盒子,然后跑去apt-get install apache2 php5在盒子上安装apache2和PHP 5。现在它正在充当“ Web服务器”,并加载“ It Works!”。页。现在,我正在尝试加强安全性,并且我对linux Web服务器存在以下问题: apache应该以谁的身份运行? 该用户应属于哪个组? 哪些软件包可以使PHP(和Apache?)作为文件的所有者运行?(例如在共享的虚拟主机上)我应该使用这些软件包吗?在小型系统上维护是否容易/可行? 使用apache运行时向网络提供文件和文件夹的默认权限应该是什么www-data?对于以用户身份运行的apache / php? 在检查默认设置时,我已经做了以下事情: 档案结构 当我cd /和做ls -al的内容列表,我看到/var: drwxr-xr-x 13 root root 4096 2012-02-04 20:47 var/ 如果我cd进入var并ls -al看到: drwxr-xr-x 2 root root 4096 2012-02-04 20:47 www/ 最后,在内部/var/www看到: drwxr-xr-x 2 root root 4096 2012-02-04 20:47 ./ drwxr-xr-x 13 …

6
如何在tmux中像在屏幕上那样在窗口内的窗格之间循环切换?
我以为将tmux窗格移至窗口是相同的问题,但事实并非如此。 由于经常使用GNU屏幕,我正在寻找tmux做同样的事情。我经常要做的事情是打开几个不同的窗口,一个在vim中打开一些代码,打开几个终端窗口以测试代码,有时还需要一两个窗口来处理其他各种事情。我垂直分割屏幕,通常在顶部窗格中有vim窗口,然后在底部窗格中具有其他窗口之一。 然后Ctrla,我使用的主要命令是,Tab在窗格之间旋转,以及Ctrla,n在窗格内的窗口之间旋转。例如,在顶部窗格中使用vim,我切换到底部窗格,然后在其他终端上旋转,以完成所需的操作。屏幕始终保持拆分状态。 问题是我无法找到可比的能力,屏幕的Ctrla,n在TMUX。切换窗口似乎无法在窗格内运行,但会完全跳转。如果屏幕被拆分,则似乎仅有的两个选项是跳转到某个未拆分的窗口,然后拆分它或对窗格进行子拆分。我要找的东西都不是。 建议(除了坚持使用屏幕之外)?

4
运行时如何检查“ mdadm” RAID?
我开始在家中收集一台计算机,并且为了支持它们,我让我的“服务器” linux盒运行RAID阵列。 目前mdadm RAID-1,它会在RAID-5我拥有更多驱动器时(然后RAID-6我希望)。但是,我听说过有关一个驱动器上的数据损坏的各种故事,直到第一个驱动器发生故障,直到发现第二个驱动器也被拧紧(直到第三个,第四个驱动器),您才会注意到由于使用了另一个驱动器,第5个驱动器)。 显然,备份很重要,我也将对此加以注意,但是我知道我以前见过一些脚本,这些脚本声称可以帮助解决此问题,并允许您在RAID运行时检查RAID。但是,现在再次寻找这些脚本,我发现很难找到任何与我之前运行的脚本类似的东西,而且我觉得我已经过时了,不了解发生了什么变化。 您如何检查正在运行的RAID,以确保所有磁盘仍正常运行? 我监视所有驱动器上的SMART,并且mdadm设置为在发生故障的情况下向我发送电子邮件,但我想知道我的驱动器有时也会对其进行“检查”。
41 raid  mdadm 

5
如何在Linux中更改用户的默认组?
作为Linux管理的新手,我对以下命令有些困惑: useradd usermod groupadd groupmod 我刚读完Linux / Unix管理员手册中的用户管理书,但是有些事情仍然有些朦胧。 基本上useradd看起来很简单: useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert 我可以使用用户名添加“ David Hilbert” hilbert,并设置其默认目录,shell和组。我认为这-g是他的主要/默认组,-G也是他的其他组。 这些是我接下来的问题: 如果组faculty和famous不存在,此命令是否仍然有效?会创建它们吗? 如果没有,我该使用什么命令来创建新组? 如果我删除了该用户hilbert,但这些组中没有其他用户,它们是否仍然存在?我应该删除它们吗? 运行useradd上面的命令后,如何将David从famous组中删除,并重新分配hilbert尚不存在的主要组?


5
如何使用用户的UID杀死所有用户的进程
我想从Linux系统上的Shell脚本或本机代码中杀死特定用户的所有正在运行的进程。 我是否必须阅读/ proc目录并查找这些目录? 有任何想法吗?Linux中的UID下是否有pid的动态映射?这不是proc中的吗? 如果没有,那么此列表在哪里维护?我应该阅读吗?另外,系统中所有UID的静态列表在哪里,以便我可以验证此用户的存在,然后继续杀死在该用户下运行的所有进程?
41 c  linux  proc 

5
在/ dev / snd /中生成有趣的随机噪声
最近,我一直在探索附魔的/ dev文件夹。我想将一些随机数据写入音频设备以产生一些噪音。 我正在使用ALSA。 所以我指示cat将一些随机数据通过管道传输到/ dev文件夹中的播放文件... cat file-of-random-data > /dev/snd/pcmC0D0p 然后我收到了cat的错误消息 cat: write error: File descriptor in bad state 如何解决此问题,以便可以从声卡中听到一些美味的静态演奏?
41 audio  alsa 


2
如何检查rx环,max_backlog和max_syn_backlog大小
在故障排除和调整过程中,经常会发现自己在思考以下Linux内核设置: net.core.netdev_max_backlog net.ipv4.tcp_max_syn_backlog net.core.somaxconn 除此之外fs.file-max,net.ipv4.ip_local_port_range,net.core.rmem_max,net.core.wmem_max,net.ipv4.tcp_rmem,和net.ipv4.tcp_wmem,他们似乎是混乱的重要旋钮,当你调整了一个框高水平并发用。 我的问题:如何检查每个队列中有多少个项目?通常,人们只是将它们设置得很高,但是我想记录这些队列的大小,以帮助预测未来的故障并在问题以用户可察觉的方式显现之前发现问题。
41 linux  kernel  networking  tcp 

2
ls的输出有换行符,但显示在一行上。为什么?
我认为我可能忽略了关于Shell的一个相对基本的观点。缺省情况下,ls命令的输出用换行符分隔输出,但是外壳程序将输出显示在一行上。 有人可以向我解释吗?我一直以为输出只是用空格分隔,但是现在我看到输出用换行符分隔,我希望输出显示在单独的行上。 例: cpoweradm@debian:~/lpi103-4$ ls text* text1 text2 text3 od显示输出用换行符分隔: cpoweradm@debian:~/lpi103-4$ ls text* | od -c 0000000 t e x t 1 \n t e x t 2 \n t e x t 0000020 3 \n 0000022 如果存在换行符,那么为什么输出不显示为: text1 text2 text3
41 bash  terminal  ls  od 

1
导出的外壳变量与未使用bash的外壳变量之间的区别
Bash似乎可以区分已导出和未导出的变量。 例: $ FOO=BAR $ env | grep FOO $ set | grep FOO FOO=BAR set看到变量,但env看不到。 $ export BAR=FOO $ env | grep FOO BAR=FOO $ set | grep FOO BAR=FOO FOO=BAR set查看两个变量,但env仅查看导出的变量。 我知道那set是内置的bash,env不是。 导出的变量与未导出的变量之间有什么区别?

6
如何仅将交换空间用于紧急情况?
我有一台Debian(Buster)笔记本电脑,具有8 GB RAM和16GB交换空间。我正在执行一项很长时间的任务。这意味着我的笔记本电脑在过去的六天内一直处于开机状态。 在执行此操作时,我需要定期将笔记本电脑用作笔记本电脑。这应该不成问题;长期运行的任务是受I / O约束,可以处理USB硬盘上的内容,并且不会占用太多RAM(<200 MB)或CPU(<4%)。 问题是几个小时后我回到笔记本电脑时,它会非常缓慢,可能需要30分钟才能恢复正常。这非常糟糕,崩溃监视器将其各自的应用程序标记为已冻结(尤其是浏览器窗口),并且开始错误地崩溃。 在系统监视器上查看,已使用的2.5 GB内存中约有一半转移到了swap中。我已通过删除交换空间(swapoff /dev/sda8)确认了这是问题所在。如果我没有交换空间就可以使用它,即使在24小时之后,它也几乎可以立即恢复运行。通过交换,实际上仅剩下前六个小时的前五分钟就变成了一块砖。我已经确认即使我不在时内存使用量也不会超过3 GB。 我曾尝试降低swappiness(另见:维基百科)对值10和0,但问题仍然存在。似乎经过一天的不活动之后,内核认为不再需要整个GUI,并将其从RAM擦除(将其交换到磁盘)。长期运行的任务是读取庞大的文件树并读取每个文件。因此可能是内核被混淆了以为缓存会有所帮助。但是,仅扫描一次具有约10亿个文件名的2 TB USB HD,额外的GB RAM就不会对性能产生很大的帮助。这是一台便宜的笔记本电脑,硬盘驱动器呆滞。它根本无法足够快地将数据加载回RAM。 如何告诉Linux仅在紧急情况下使用交换空间?我不想没有交换就跑。如果发生意外情况,并且操作系统突然需要额外的GB,那么我不希望任务被杀死,而宁愿开始使用swap。但是目前,如果我启用交换功能,则仅在需要时才可以使用笔记本电脑。 “紧急情况”的确切定义可能是一个有争议的问题。但是要澄清一下我的意思:紧急情况是系统处于交换或终止进程的状态而没有其他选择的地方。 什么是紧急情况?- 您真的要问吗?...希望您永远不会在燃烧的建筑物中发现自己! 对于这个问题,我无法定义所有可能构成紧急情况的东西。但是例如,紧急情况可能是当内核被迫压入内存以至于它开始使用OOM Killer终止进程时。当内核认为使用交换可以提高性能时,就不会出现紧急情况。 最终编辑: 我已经接受了一个答案,该答案恰好满足了我在操作系统级别上的要求。未来的读者还应该注意提供应用程序级解决方案的答案。
41 linux  memory  swap 

1
“活动(退出)”状态对SystemD服务意味着什么?
我正在使用一个自定义服务,该服务实际上运行一个称为thisismywebserver的Web服务器。当前,它不起作用(即,尝试访问页面时出现“无法连接”错误)。 当我运行此命令service thisismywebserver status以查看服务的状态时,我看到该状态为“活动(已退出)”。这是否意味着服务已停止工作?如果不是,那意味着什么? root@thisismywebserver-testing:~# service thisismywebserver status ● thisismywebserver.service - LSB: ThisIsMyWebServer server Loaded: loaded (/etc/init.d/thisismywebserver) Active: active (exited) since Sun 2015-11-08 23:01:33 EST; 18h ago Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.


2
较少具有tail --follow = name(-F)之类的功能
该命令less可以被用来替换tail在 tail -f file 提供诸如处理二进​​制输出和导航回滚之类的功能: less +F file +前缀的意思是“假装我在启动后键入”,然后密钥随即F开始。 但也less可以取代 tail --follow=name file 随后file即使实际文件被删除或转移了,像被移动到一个日志文件file.log.1,然后一个新的文件具有相同名称的文件,随后创建?
41 tail  less  pager 

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.