关于 Linux 系统 uid、gid 及 mysql 部署的相关问题求解

54 天前
 GoodRui

求助各位大佬~

按照《 MySQL 8.0 安全部署指南》官方文档中给出的命令,为什么在创建用户和用户组的时候使用了以下命令

groupadd -g 27 -o -r mysql
useradd -M -N -g mysql -o -r -d datadir -s /bin/false -c "MySQL Server" -u 27 mysql

想问下为什么在创建用户组和用户的时候使用了非唯一 uid 和 gid ?比如本来有个用户组的 gid 已经是 27 了,不就不太好了吗?文件和目录权限可能会不安全?

一直不太理解 Linux 系统中,non-unique uid 和 gid 的使用场景是什么?

还有个问题是如果直接使用 useradd 命令创建用户的时候,如果不存在同名用户组,会自动创建一个同名的用户组。但有时候创建出来的 user 和 group 随机分配的 uid 和 gid 会不一样...而指定 uid 和 gid 时,因为无法知道系统中是否已经存在该 uid 和 gid ,可能会导致创建用户和组失败,是不是基于这个原因,使用了 non-unique uid 和 gid ?

923 次点击
所在节点    Linux
3 条回复
adoal
54 天前
认真看一下 man useradd 了解 -r 参数的意思
adoal
54 天前
你看看打包好的 rpm/deb 里,每个服务用的用户就是这样创建的,这个范围的 uid 按约定不用于交互登录用户,是拿来跑服务的系统用户,如果打包的撞车了是发行方的错,你自己乱用是你的错。打包的 post-inst 脚本里加-o ,是为了保证包升级、不同来源的兼容包平替等场景下不用考虑复杂的创建用户操作,已有的用户可以继续使用。
NevadaLi
53 天前
Linux 中,自己造的用户,uid 大于 1000 ,比如 1001 ,1002.

1000 以下的 uid 约定俗成用于常用服务,除非用户/软件不遵守规范乱用,否则一般不会重复的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1079494

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX