在使用 linx-server 的时候,发现作者在 Dockerfile 中将存储文件的目录授予了 65534 这个用户权限,于是好奇为什么是 65534,于是有了这篇文章。
首先找到的是 Wikipedia 上关于 Linux 中用户 nobody 的 UID,历史上,用户 nobody 有多好几个不同的 UID,最早的时候一些操作系统使用 -2,还有一些操作系统,比如 OpenBSD 使用 2^(15) – 1 = 32767 ,为了兼容 16-bit 和 32-bit UID,现在许多 Linux 发行版将 nobody 的 ID 设置为 2^16-2 = 65534.
Ubuntu wiki 说 nobody 通常是 NFS 服务器中当不信任用户时使用的。
nobody 用户的作用
nobody 账户通常会用来运行一些不需要任何权限的程序。 nobody 账户是让一些守护程序以最小权限运行的。1 通常会用在一些容易受到攻击的服务上,比如 httpd 等,即使这些服务被 hack,这些服务也只会对系统造成最低的伤害。
如何访问 nobody
执行 sudo grep nobody /etc/shadow 可以知道 nobody 账户是没有密码的,无法使用 su 输入密码登录。最简单的方法是使用 sudo su nobody
什么时候使用 nobody
当程序不需要任何权限的时候,比如在 linx-server 的 data 目录中保存的是用户上传的临时文件,这个文件不需要任何权限。
另外一个现实的例子就是 memcached 一个 k-v 的基于内存的存储,直接可以通过 nobody 运行,因为不需要任何写磁盘的操作。
reference
https://askubuntu.com/a/329716/407870
https://groups.google.com/g/linux.debian.user/c/oNtzOORNQlk
本文转载自: https://einverne.github.io/post/2022/10/unix-nobody-65534.html
您也可以联系文章作者本人进行修改,若内容侵权或非法,可以联系我们进行处理。
任何个人或组织,转载、发布本站文章到任何网站、书籍等各类媒体平台,必须在文末署名文章出处并链接到本站相应文章的URL地址。
本站文章如转载自其他网站,会在文末署名原文出处及原文URL的跳转链接,如有遗漏,烦请告知修正。
如若本站文章侵犯了原著者的合法权益,亦可联系我们进行处理。
暂无评论内容