デフォルトでは~
次の値が与えられます/home/username/
つまり、コマンドを使用するとcd ~
ディレクトリに移動します/home/username/
その値を /home/username/filename などの他のファイルに変更するにはどうすればよいでしょうか?
これは危険である可能性があるとわかっていますが、CTF に取り組んでいるので問題ありません。
答え1
チルダ (~) は、シェルによって の短縮形として解釈されます
$HOME
。次のコマンドを試してください。
echo ~ HOME=foo echo ~
これは、最初に実際のホーム ディレクトリを印刷し、その後に $HOME` をそこに設定しているため、「foo」を印刷します。
のデフォルト値は
$HOME
システム構成から取得されます。 を使用すると、getent passwd
既知のすべてのユーザーとそのホーム ディレクトリを一覧表示できます。 システム構成によっては、これらのエントリは または任意のリモート ディレクトリ サービスから取得される場合があります/etc/passwd
。ホームディレクトリを一時的に再定義したいだけの場合は、別の を設定するだけです
$HOME
。永続的に変更したい場合は、手動で編集するなどして、passwd エントリを変更する必要があります
/etc/passwd
。