$ which sudo emacs
/usr/bin/sudo
/home/user1/local_build/bin/emacs
$ sudo emacs /etc/apache2/sites-available/000-default.conf
sudo: emacs: command not found
$ emacs /etc/apache2/sites-available/000-default.conf # Works fine
$ which emacs
/home/user1/local_build/bin/emacs
$
編集する:
ちょうどユーザーのPATH
ために添付しました。root
$ whoami
user1
$ which emacs
/home/user1/local_build/bin/emacs
$ sudo tail -n 2 -F /root/.bashrc
#fi
export PATH=/home/user1/local_build/bin:$PATH
$
$ sudo emacs /etc/apache2/sites-available/000-default.conf
sudo: emacs: command not found
$
編集する:
# whoami
root
# command -v emacs
/home/user1/local_build/bin/emacs
# exit
exit
$ whoami
user1
$ command -v emacs
alias emacs='emacs -q --load ~/.emacs.d/init.el'
$
編集する
$ whoami
user1
$ tail -n 2 -F .bashrc
alias emacs='emacs -q --load ~/.emacs.d/init.el'
^C
$
編集する:
Tiggerの答えの後でも問題はまだ存在します。
$ tail -n 2 -F /home/user1/.bashrc
# alias emacs='emacs -q --load ~/.emacs.d/init.el'
^C
$ whoami # After logout/login bash
user1
$ sudo emacs /etc/apache2/sites-available/000-default.conf
sudo: emacs: command not found
$
編集する:
7_R3Xが応答した後、
# whoami
root
# ls -ltr /etc/sudoers #Unable to modify this file
-r--r----- 1 root root 755 Oct 14 2016 /etc/sudoers
#
ところで、sudo gedit <etc's filename>
うまくいきます。
質問:
なぜemacs
startを使用できないのですsudo
か?
ベストアンサー1
cylgaladがコメントで言及したエラーの原因は、その/home/user1/local_build/bin
パスがルートのシステム変数に存在しないためですPATH
。
問題の原因は、/home/user1/local_build/bin
変数にディレクトリが存在しないためですsecure_path
。このディレクトリを追加するには、ファイルを編集してsecure_path
基本/etc/sudoers
コンテンツの内容を変更する必要があります。
または、
この問題を解決するには、コマンドで完全パスを明示的に参照してemacsを実行できます。
sudo /home/user1/local_build/bin/emacs /etc/apache2/sites-available/000-default.conf
または代替的に
/home/user1/local_build/bin/
ルートにパスを追加できます。ディレクトリ内のファイルPATH
に次の行を入れます。.bashrc
~/root/
PATH=$PATH:~/home/user1/local_build/bin
説明に記載されているSteeldriverの理由から、ルートにディレクトリを追加してもPATH
機能しません。