私のUbuntu16.04.4サーバーのユーザー名:greycodes
エラー出力:
chown: invalid user: 'vagrant:vagrant'
OpenSSHのファイル権限を設定しています。私が望むのは、私のユーザー名を灰色のコードとして保持し、ユーザー名vagrantの代わりにこのユーザー名を使用して権限を定義することです。
chown -R vagrant:vagrant .ssh
私は次のように書かれていると理解しています。
chown -R username:group file name
私も最初に試しました:
chown -R graycodes:vagrant .ssh
しかし、うまくいきません。私のサーバーのユーザー名をvagrantに設定するしかありませんか?
私は「vagrant」グループに「graycodes」を追加すると役に立つと思います。
$ groups
$ sudo usermod -a -G vagrant $USER
$ exec su -l $USER
$ groups
答え1
考慮すべき事項がいくつかあり、質問にいくつかの穴を埋めることができることを願っています。
chown
まず、エンティティを割り当てたいユーザーとグループは、次のものを使用する必要があります。存在する。それ以外の場合はエラーが発生します。まず、実際に存在することを確認してください。
第二に、使用するにはchown
いくつかの強化された能力が必要です。私は通常のユーザーとして、ファイルなどの所有権を他のユーザーに譲渡することはできません。これが何を意味するのか、これがあなたが望むものであることを確認してください。
第三に、自分がやりたいことが何であるかを確実に理解してください。chown
1つ以上のファイルシステムエンティティの所有権を指定したユーザーとグループに変更します。
答え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 を呼び出します。