tar*_*pka 7 zsh administration
问题可能不清楚且过于宽泛,但任何答案,无论它是短还是宽,都非常感谢。
前段时间我要求在我们的生产服务器上安装 zsh。我的管理员公司回复说这是无法完成的,因为这是生产服务器,而不是开发服务器。
过去 5 年我一直使用 zsh 和 oh-my-zsh,并且非常喜欢它,zsh 让我的工作更轻松、更快捷。但这还不够。
我不擅长安全或可能涉及的其他问题,这就是为什么我的问题是:
Sté*_*las 11
zsh
只是一个外壳,它不启动任何服务,它不带有任何 setuid 命令。因此,在有人或某物实际使用它之前,仅安装软件包不会做任何事情。由于它不需要任何特权,因此任何用户都可以将其安装在自己的主目录中或他们有权访问的任何地方。
如果不是生产质量,人们可能会争辩说,将其设为 admin 用户的登录 shell 会带来一些风险,但由于它的语法比其他 shell 更明智,例如bash
or tcsh
,我认为它会大大改善问题。
虽然它的主要用途是作为一个交互式 shell,但我认为编写脚本zsh
可能比bash
脚本更安全、更可靠(看看有多少人bash
在zsh
忘记引用变量时不知不觉地用语法编写 脚本,以及如何改变 shebang from #! /bin/bash
to#! /bin/zsh
将修复其脚本中的许多错误)。
无论如何,安装zsh
是我在我工作过的所有地方为所有服务器部署所做的第一件事。
但是,我通常不会默认将其设置为任何用户的登录 shell,因为某些软件期望以 bash 为中心的环境并不少见。
和其他人一样,这是我的意见:
- 在生产服务器上安装 zsh 对系统无害吗?
定义“无害”。严格来说,它不会造成直接伤害。但是,生产系统上的任何代码都是潜在的攻击媒介。从这个意义上说,它并不是真正的“无害”,因为它可以用于对系统进行攻击。还有一些其他方式可能会间接导致问题。例如,ZSH 比 bash 更需要资源,这对接近容量运行的系统可能很重要。
- 在这种情况下,您是否允许安装 zsh,为什么会这样?
根据具体情况,我可能已经安装了它。
我所有的个人系统都安装了 ZSH 并将其设置为包括 root 在内的所有人的默认 shell。这仅仅是因为我经常在这些系统上使用本地 shell 工作,并且在许多情况下我积极使用 ZSH。
但是,我在工作中管理的所有系统都没有安装它。我为他们所做的大约 95% 的管理工作并没有涉及我实际接触这些系统上的 shell(我在工作中通过 Ansible做了很多工作),所以我没有必要让它成为一个熟悉的环境。除了我们的实际开发系统之外,我也不太可能将它安装在任何东西上,而且我根本没有机会将它安装在任何可以在场外直接访问的东西上。
- 在生产服务器上使用 bash 限制用户是否有意义?
除了某些不涉及实际 shell 访问的非常严格的情况外,我怀疑让普通用户接触生产系统的实用性。
例如,在我工作的地方,只有 IT 部门和直接负责维护我们网站的人员才能对我们的 Web 服务器进行常规 HTTPS 访问。IT 人员(包括我自己)必须使用仅用于管理 Web 服务器的特殊帐户登录,即便如此,他们对系统的访问也受到限制,除非他们坐在服务器机房的物理控制台前。网页设计者只能通过 SFTP 访问网站的根目录,除此之外别无他物。鉴于此,除了 bash(这是我们内部管理使用的标准)之外,不需要任何 shell。
同样,对于我们的内部文件服务器,只有 IT 部门拥有实际的 shell 访问权限。其他用户对某些目录的访问权限特别有限,通常允许常规文件服务器协议(SMB、NFS 等),加上 SFTP,在某些情况下还允许 rsync,但他们都没有任何真正的 shell 访问权限,因为他们实际上并不需要它。
归档时间: |
|
查看次数: |
2903 次 |
最近记录: |