求助各位大佬~
按照《 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 ?
1
adoal 79 天前 1
认真看一下 man useradd 了解 -r 参数的意思
|
2
adoal 79 天前
你看看打包好的 rpm/deb 里,每个服务用的用户就是这样创建的,这个范围的 uid 按约定不用于交互登录用户,是拿来跑服务的系统用户,如果打包的撞车了是发行方的错,你自己乱用是你的错。打包的 post-inst 脚本里加-o ,是为了保证包升级、不同来源的兼容包平替等场景下不用考虑复杂的创建用户操作,已有的用户可以继续使用。
|
3
NevadaLi 79 天前
Linux 中,自己造的用户,uid 大于 1000 ,比如 1001 ,1002.
1000 以下的 uid 约定俗成用于常用服务,除非用户/软件不遵守规范乱用,否则一般不会重复的 |