SSH 配置: chown username:group: 说无效用户

SSH 配置: chown username:group: 说无效用户

我的Ubuntu16.04.4服务器的用户名:graycodes

错误输出:

chown: invalid user: 'vagrant:vagrant'

我正在为 OpenSSH 设置文件权限。我想要的是将我的用户名保留为格雷码,并使用此用户名代替用户名 vagrant 来定义权限。

chown -R vagrant:vagrant .ssh

我理解它是这样写的:

chown -R username:group file name

我也首先尝试过:

chown -R graycodes:vagrant .ssh

但它不起作用。我别无选择,只能将我的服务器用户名设置为 vagrant 吗?

我相信这可能有助于将“graycodes”添加到“vagrant”组中。

$ groups
$ sudo usermod -a -G vagrant $USER
$ exec su -l $USER
$ groups 

答案1

有一些事情需要考虑,我希望我能弥补你问题中的一些漏洞。

首先,当您使用 时chown,您尝试将实体分配给的用户和组应该存在。如果没有,那么您将收到错误。所以首先要确保它确实存在。

其次,要使用chown,您需要一些提升的能力。您不能自己将文件等的所有权作为普通用户转移给另一个用户。确保您知道这意味着什么并且这就是您想要的。

第三,确保你明白你想要做什么。chown将一个或多个文件系统实体的所有权更改为您指定的用户和组。

答案2

就我而言,这是因为我在容器中运行 chown,而 nscd 在主机上运行。由于容器和主机的 /etc/passwd 和用户不同,因此 chown 将失败,因为无法解析用户名。停止 nscd 守护程序问题解决后, chown 似乎使用本地 /etc/passwd 文件。

来自手册页https://linux.die.net/man/8/nscd, 获取名称 (https://man7.org/linux/man-pages/man3/getgrnam.3.html) 由 chown (https://github.com/coreutils/gnulib/blob/fcdf335e093e245e384874254ec897c97430ccf2/lib/userspec.c#L202) 将首先调用 nscd。

相关内容