CHOWN:“id -u”代表什么

JPr*_*ers 6 filesystem security

我正在努力让 Mongodb 在 Ubuntu 服务器安装上运行。在审查说明我需要创建在根驱动器中的“\ DATA \ DB”目录。此时我需要使用 CHOWN 命令更改所有者,如下所示:

sudo chown `id -u` /data/db
Run Code Online (Sandbox Code Playgroud)

当我发出快速入门指南中显示的命令时,我收到

chown: invalid user: 'id -u'
Run Code Online (Sandbox Code Playgroud)

我是 Linux 新手,所以我不明白“id -u”应该是什么意思。当我用我的用户名替换时,命令完成得很好并且 mongo 运行。有人可以帮助我理解速记 'id -u' 会传达给专业 Linux 用户的信息吗?

Ric*_*rri 13

该命令id -u打印出您的“数字用户 ID”(简称:UID);正如您已经注意到的,这与在chown命令行中完整拼出您的用户名相同。实际上,以下命令调用都应该具有相同的效果:

sudo chown `id -u` /data/db
sudo chown $USER /data/db
Run Code Online (Sandbox Code Playgroud)

它没有按预期工作的原因可能与引号有关:它们必须是反引号(ASCII char 0x60),而chown错误消息表明您使用了单引号(ASCII char 0x27)。

您可以在此处找到对 UNIX shell 引用的非常详尽的解释。

  • +1 表示反引号。OP:在大多数 shell 中,“普通”单引号 (') 和“反引号”引号 (`) 之间存在差异。确保使用正确的。 (2认同)