GoodRui
V2EX  ›  Linux

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

By GoodRui at 2024 年 10 月 12 日 · 1665 次点击

求助各位大佬~

按照《 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 ?

3 条回复    2024-10-12 16:02:36 +08:00
adoal
   1
adoal  
   2024 年 10 月 12 日   ❤️ 1
认真看一下 man useradd 了解 -r 参数的意思
adoal
   2
adoal  
   2024 年 10 月 12 日
你看看打包好的 rpm/deb 里,每个服务用的用户就是这样创建的,这个范围的 uid 按约定不用于交互登录用户,是拿来跑服务的系统用户,如果打包的撞车了是发行方的错,你自己乱用是你的错。打包的 post-inst 脚本里加-o ,是为了保证包升级、不同来源的兼容包平替等场景下不用考虑复杂的创建用户操作,已有的用户可以继续使用。
swLoXtOtd89pGg8t
   3
swLoXtOtd89pGg8t  
   2024 年 10 月 12 日
Linux 中,自己造的用户,uid 大于 1000 ,比如 1001 ,1002.

1000 以下的 uid 约定俗成用于常用服务,除非用户/软件不遵守规范乱用,否则一般不会重复的
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
© 2026 V2EX · 38ms · 3.9.8.5