仮想マシンからファイルをダウンロードするスクリプトを実行しようとしているときに受信する仮想マシンを指定することはできません。しかし、私は着信仮想マシンの状態に関係なくダウンロードが成功し、それがunix / linuxシステムであることを知りたいです。
私の質問は、すべてのUNIX / Linuxシステムに存在することが保証されているダウンロードに使用できる特定のファイルがありますか?
ありがとうございます!
答え1
ほぼ唯一のもの保証する存在するのはルートディレクトリ自体です。一つあるたくさん標準はほぼ普遍的ちょっと待ってください。しかし、退屈なシステムエンジニアが、など/etc
のLinuxバージョンをリリースすることは完全に可能です。そのようなシステムでは何でも可能です。/andsoforth
/bin
/cupboard
/usr
/luser
答え2
/etc/passwd
よく使われるものは安全専門家が概念証明/フラグキャプチャの練習として使用し、その理由があります。このファイルは、すべてのUNIXシリーズシステムに存在します。
しかし、これがpasswd
デフォルトのアクセスデータベースではないことは注目に値します。その他のデータベースたとえば、LDAPも重要な役割を果たします。
答え3
POSIXly、約束された唯一のこと(「適合性システムに存在しなければならない」)は、、、およびですが、すべて書き込み/
可能または/dev
読み取ることができるわけではありません。/tmp
/dev/null
/dev/tty
/dev/console
ファイルをコピーするために何を使用しているかに応じて、これらすべてが実際には役に立たないか、コピーを試すことができます/dev/null
。scp
コピーしようとするとエラーが発生するようですが、次のようなものを使用できます。ただデータを読み、特殊ファイルを無視します。たとえばcp /dev/null .
、最終的にゼロの長さの通常のファイルを正常にコピーします。
しかし、Copy itを使用してデバイスノードの内容をコピーしようとすると、おそらく許可なしにローカルシステムに作成できない可能性があり、デバイス番号が同じであるという保証もないようです。システム間で複製できる場合は、ローカルシステムとはまったく異なることを意味するデバイスノードになる可能性があります。
標準ユーティリティはに存在する必要があるため、リモートで解決できる場合、またはリストされているいくつかのディレクトリにありますPATH
(シンボリックリンクかもしれません)。標準互換システムでもこれを見つけることができるはずですが、Linuxでは外部ユーティリティとしてほとんど使用されないため、これを持たない傾向があります。sh
ls
cd
実際には多くのシステムで、/bin/ls
またはを見つけることができます/bin/sh
(まだシンボリックリンクかもしれません)。最も深刻ではないかもしれませんが、これらの問題に対処している場合はおそらく知っているでしょう。
答え4
私の経験によると:
/dev/stdout
、時にはこれがシンボリックリンクなので、/dev/null
より良いかもしれませんが、どちらも通常のファイルではありません。/etc/hosts
おそらく、ネットワークで接続されているすべてのUNIXシステムに/etc/resolv.conf
必要です。/bin/sh
これ/bin/init
は可能性が高いですが、組み込みLinuxシステムやLinuxベースのデバイスとNASボックスには、それらの1つが別の場所にあるか、ファイルではなく/bin/busybox
シンボリックリンク(たとえば)が/etc/inittab
ある場合があります。存在し、通常のファイルでなければなりません/etc/issue
/etc/profile
誰もがシェルにログインできるすべての場所に存在するようです。