我知道chmod
(更改模式)和chown
(更改所有者)的作用。
我也明白了do后面的数字代表什么意思chmod
。
我正在经历docker 教程我看见chown 999
它被利用了。
它的含义和作用是什么?
答案1
用户 999 是谁?这只是他的个人习惯,还是一个通用的代码?
在 Ubuntu 和 Ubuntu 家族版本中,实时会话中的数字用户 ID 是 999(文字用户 ID 是 ubuntu、kubuntu、lubuntu ... xubuntu 但在所有这些情况下数字用户 ID 都是 999。)
当您从 USB 驱动器启动“试用 Ubuntu”时,您将启动进入实时会话。
你可以使用命令检查
grep 999 /etc/group
如果您运行实时会话,您将找到该用户。否则,您可能无法通过该命令找到任何内容。
Docker 教程使用的操作系统可能是已安装的系统。并且似乎有一个带有数字 999 的用户 ID。可以创建这样的用户 ID,但在已安装的 Ubuntu 系统中,没有具有该数字用户 ID 的标准用户。
答案2
如在乔恩曼
chown——更改文件所有者和组
本手册页记录了 GNU 版本的 chown。chown 会更改每个给定文件的用户和/或组所有权。如果只有一个所有者 (用户名或数字用户 ID) 时,该用户将成为每个给定文件的所有者,并且文件的组不会改变。
看起来就像在视频中的例子中,教练改变了所有者文件夹的用户 ID999
例如在我的计算机上,使用gdm
user-id 是130
,用户logstash
user-id 是999
gdm:x:130:135:Gnome 显示管理器:/var/lib/gdm3:/bin/false
logstash:x:999:999:LogStash 服务用户:/usr/share/logstash:/usr/sbin/nologin
root# mkdir /tmp/a1
root# ll /tmp/a1
total 44
drwxr-xr-x 2 root root 4096 Jan 15 09:54 ./
drwxrwxrwt 27 root root 36864 Jan 15 09:54 ../
root# chown 130 /tmp/a1
root# ll /tmp/a1
total 44
drwxr-xr-x 2 gdm root 4096 Jan 15 09:54 ./
drwxrwxrwt 27 root root 36864 Jan 15 09:54 ../
# grep 999 /etc/passwd
logstash:x:999:999:LogStash Service User:/usr/share/logstash:/usr/sbin/nologin
root# chown 999 /tmp/a1
root# ll /tmp/a1
total 44
drwxr-xr-x 2 logstash root 4096 Jan 15 09:54 ./
drwxrwxrwt 27 root root 36864 Jan 15 09:54 ../
答案3
首先,他将此文件复制到每个正在运行的 mongo 容器中:
官方蒙戈图像(他在视频中使用它来创建多个 mongo 节点)有一个名为 mongodb 的默认用户,其 UID 为 999
如果您只是运行以下命令:
docker exec mongo_node_name bash -c "grep 999 /etc/passwd"
你将得到以下结果:mongodb:x:999:999::/home/mongodb:/bin/sh
因此他授予 mongodb 用户授权密钥文件。
999 在 Linux 中并不特殊,只是创建的用户恰好有一个 ID999