次のようにUbuntu 16.04にMavenをインストールしました。指示する。
/etc/environment
パスを編集して追加しました。専門家/空フォルダ$パス変える
通常のユーザーはすべてうまくいきますが、実行しようとするとsudo mvn test
次のメッセージが表示されます。MVN不明なコマンドです。再起動しても役に立ちません。
間違い:
/bin/sh: 1: mvn: not found
私も少し混乱しています/bin/sh
。私はbashを使っています。
それでは、sudoコマンドが表示できるようにMavenバイナリパスをどこに配置する必要がありますか?ありがとうございます。
答え1
使用すると、セキュリティ上の理由でsudo
ファイルの次の行で上書きされます。$PATH
/etc/sudoers
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
はい
その項目が次に存在する場合でも/etc/environment
:
$ cat /etc/environment
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/tmp
ピックアップされたようです:
$ sudo env | grep PATH
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/tmp
私たちはスクリプトを持っています/tmp
:
$ ls -l /tmp/blah.bash
-rwxrwxr-x 1 vagrant vagrant 20 Aug 8 20:57 /tmp/blah.bash
このスクリプトをwhoami
実行すると、次のように印刷されます。
$ cat /tmp/blah.bash
#!/bin/bash
whoami
Sudoは私達がこれをすることを許可しません:
$ sudo blah.bash
sudo: blah.bash: command not found
sudoの安全なルート変更
しかし、私のファイルを編集すると/etc/sudoers
:
$ sudo visudo
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/tmp
今動作します:
$ sudo blah.bash
root
安全
sudo
安全なパスにディレクトリを追加する理由を慎重に考えてください。このように設定したのにはそのような理由があります。追加のsudo
コマンドパスを軽く追加しないでください。
追加のディレクトリを追加すると、あなたとあなたのユーザーが遅すぎるまで多くの人が認識しない追加のリスクにさらされます。