sudoでコマンドを実行した際に「すでに定義されています」と表示される

Linux

Linuxでは基本的に一般ユーザではroot権限でコマンドの実行が行えないです。しかし、sudoを使用することで、root権限でコマンドを実行できます。

私は、このsudoでコマンドを実行した際に、エラーとは別の警告文が表示されたことがありました。

この記事では、私が過去にsudoでコマンドを実行した際に表示されたエラー原因と対応方法について解説していきます。

表示されたエラー

私が過去に経験したことがあるエラーは下記のようものです。

/etc/sudoeres.d/sudores_bak 別名"ja_JP.UTF-8" はすでに定義されています。
Cmnd_AliasPROCESS_ADM = /bin/kill,/usr/bin/pkill

対応方法

/etc/sudoers.d/sudoersのバックアップファイルを、/etc/sudoers.d/配下から別の場所へ移動させることで解決しました。私の場合は、/tmp配下へ移動させました。

原因

sudoでコマンドを実行すると、/etc/sudoers.d/配下のファイルが全て読み込まれることが原因でした。

詳細

sudoでコマンドを実行すると、/etc/sudoers.d/配下のファイルが全て読み込まれるようになっています。私はこの仕様を把握しておらず、/etc/sudoers.d/sudoersのバックアップファイルを、同じ階層に取っていました。

具体的には「/etc/sudoers」の中の下記の部分が、/etc/sudoers.d/配下を読み込むパラメータです。

#includedir /etc/sudoers.d

設定ファイルの中ではコメントアウトになっている可能性がありますが、デフォルトとして読み込む設定になっています。

/etc/sudoers.d/sudoersのバックアップファイルが同じ階層に存在すると、おおむね同じ内容のファイルが2重で読み込まれてしまいます。2重で読み込まれてしまうことから「すでに定義されています」と警告文が表示されるようになっているようです。

この警告文を表示させないようにするには、/etc/sudoers.d/sudoersのバックアップファイル別の階層へ移動させることで解決できます。私が経験してきた中では、/etc/sudoers.d/sudoersのみですが、他のファイルでも同じ階層に存在することで2重読み込みされることもあるでしょう。

作業でバックアップファイルを取る必要がある場合は、別の階層に置くことを強くおすすめします。

私の場合、基本的には/var/crashの配下にバックアップファイルを取っていました。

コメント

タイトルとURLをコピーしました