
これはとても些細なことです。mkdir ~root/.ssh
なぜmkdir /root/.ssh
?作成者がディレクトリのmkdir ~root/.ssh
作成に使用する次のdockerファイルを見ています。.ssh
https://github.com/macropin/docker-sshd/blob/master/Dockerfile
他よりも利点がありますか?最初にそれについて読んだとき、私は~root
それが/rootroot
。
答え1
~USER
ユーザーのホームディレクトリの略語ですUSER
。一般ユーザーの場合は通常yes/home/USER
ですが、rootユーザーの場合は通常yesです/root
。
あなたの質問が他の質問よりも良いかどうかについての唯一の違いは、ホームディレクトリが拡張プロセスを経ず、絶対パスではなくルートに動的~root
に拡張されることです。/root
必要なのは、特定のユースケースによって異なります。ルートのホームディレクトリがroot以外の場所にあるシステムでスクリプトを実行するために/root
使用します~root
。/root
常に絶対パスを使用するには、を使用してください/root
。
現実的にほとんどの場合、違いはありません。しかし、個人的には、/root
スクリプトがルートのホームディレクトリが存在しないシステムで実行されると予想する理由がない限り、使用する方が安全だと思います/root
。
答え2
「〜」記号は、ホームディレクトリを参照するために使用できる特別なショートカット文字です。
~root
root
つまり、ログインしたユーザーのホームディレクトリを/root
表し、
~
それを使用している場合はホームディレクトリを~user
返します。user
答え3
明らかな利点がありますmkdir ~root/.ssh
。mkdir/root/.ssh
前者は~root
rootユーザーに柔軟に拡張できます。実際メインディレクトリ。 rootユーザーのホームディレクトリを/ root2、/home/root、または/root以外の別のディレクトリに設定するにはどうすればよいですか?
答え4
他の回答ですでに述べたように、新しいディレクトリを作成する場所によって異なります。 "mkdir /root/.ssh" 形式は、その絶対パスにそれを明示的に生成します (/root ディレクトリがすでに存在し、他のエラーがないと仮定します)。しかし、通常、sshに必要な情報を保存するために使用される.sshディレクトリを作成しようとしているので、 "mkdir ~root/.ssh"の他の形式を優先する必要があると思います。その他のエラー)sshコマンドが期待する正確な場所、つまりrootユーザーのホームディレクトリ(ファイルシステムの正確な場所)に新しいディレクトリ.sshを作成し、通常は常に/ rootである必要はありません。