Debian(左)とUbuntu(右)を比較します。
$ ifconfig $ ifconfig
bash: ifconfig: command not found eth0 Link encap ...
$ which ifconfig $ which ifconfig
$ /sbin/ifconfig
次に、スーパーユーザーとして:
# ifconfig # ifconfig
eth0 Link encap ... eth0 Link encap ...
# which ifconfig # which ifconfig
/sbin/ifconfig /sbin/ifconfig
さらに:
# ls -l /sbin/ifconfig # ls -l /sbin/ifconfig
-rwxr-xr-x 1 root root 68360 ... -rwxr-xr-x 1 root root 68040 ...
Debianでifconfig
を超能力なしでは実行できない唯一の理由は、それが私のパスにないためです。 /sbin/ifconfig
を使用するとうまくいきます。
not Debianのパスに/usr/local/sbin:/usr/sbin:/sbin
を追加する必要がある理由はありますか?これはパソコンです。私だけが人間です。
使用されているバージョン(uname -a
):
Ubuntu:
Linux ubuntu 3.13.0-51-generic #84-Ubuntu SMP Wed Apr 15 12:08:34 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Debian:
Linux debian 3.16.0-4-AMD64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux
Debian Policy には、Debianが File Hierarchy Standard バージョン2.3に従うと書かれています。 注#19 標準では次のように述べています:
「sbin」ディレクトリに入れるものを決定するのは簡単です。通常の(システム管理者ではない)ユーザーがそれを直接実行する場合は、「bin」ディレクトリの1つに配置する必要があります。通常のユーザーは、パスにsbinディレクトリを配置する必要はありません。
たとえば、ユーザーがたまにしか使用しないchfnなどのファイルは、引き続き/ usr/binに配置する必要があります。 ping、ただしroot(ネットワークの回復と診断)には絶対に必要ですが、ユーザーがよく使用し、そのため/ binに存在する必要があります。
特定のsetuidプログラムとsetgidプログラムを除いて、ユーザーに/ sbin内のすべてに対する読み取りと実行の権限を与えることをお勧めします。/binと/ sbinの間の分割は、セキュリティ上の理由から、またはユーザーがオペレーティングシステムを表示できないようにするためではなく、誰もが使用するバイナリと、主に管理タスクに使用されるバイナリの間に適切なパーティションを提供するために作成されました。 ユーザーの/ sbinを制限外にしても、固有のセキュリティ上の利点はありません。
Debianのパスに
/usr/local/sbin:/usr/sbin:/sbin
を追加してはいけない理由はありますか?
メモに記載されているように、これを行うべきではない理由はありません。システムを使用しているのはあなただけであり、sbin
ディレクトリにバイナリが必要な場合は、自由に$PATH
に追加してください。この時点で、 優れた答え を正しく行う方法をご案内します。
それらを追加しない唯一の理由は、コマンドのタブ補完が遅くなり(より多くのディレクトリが検索されるため)、効果が低下するためです(非rootが使用しても意味のないコマンドから誤った一致が発生する可能性が高いため) )。