在 Linux 系统上,默认情况下有很多用户:守护进程、bin、sys、游戏等。
根据我的 /etc/passwd,大多数用户都分配了一个 shell (/bin/sh),这对我来说似乎有点不安全。我天真地认为:只给那些可以登录服务器的用户一个 shell。
我的想法是错误的吗?
如果不是完全错误:我可以禁用“daemon”和“www-data”的shell而不会产生副作用(例如系统无法启动或Apache PHP无法执行系统调用)吗?
添加:我的发行版是 Debian Squeeze。
谢谢你的提示!
答案1
答案2
您询问的那些用户不是直接登录的,而是在其下运行程序/进程(如果有的话)。我认为不为他们分配 shell 无论如何都会有害。但一个好的检查方法是检查 /etc/shadow 文件并查看这些帐户的第二个字段是否为 X(划掉)。这意味着他们将无法登录并获取 shell。
因此,我的建议是先检查 /etc/shadow 文件,然后如果愿意,继续禁用这些用户的 shell,让系统照常运行,看看是否有任何问题。如果没有,那么你就可以开始了。如果出现问题,并且你发现它确实是由于将 shell 更改为 /bin/false(我非常怀疑会发生这种情况)而导致的,那么请恢复到原始状态。那时,我们将需要考虑进一步的安全插件 :)