sudo 権限が必要なエディターでファイルを変更する

sudo 権限が必要なエディターでファイルを変更する

権限が必要なファイルを KomodoEdit で変更したいのですがsudo、 では KomodoEdit を起動できませんsudo(何らかの理由で)。 何らかの方法で Komodo にこれらのファイル (特に apache2 ファイルと ) を編集する権限を与えることはできますか/etc/hosts?

答え1

を使用しますsudoedit <file>。ファイルのローカル コピーを作成し、ユーザー権限で編集して元の場所にコピーします。エディターが通常のユーザーとして実行されるという利点があります。

デフォルトのエディターとは異なるエディターをEDITOR一時的に指定するには、次のように設定します。

EDITOR=/usr/bin/someeditor sudoedit /etc/hosts

これには、sudoパッケージをインストールし、ユーザーをsudoグループに追加する必要があります。

答え2

理論的には、komodoedit に suid ビットを設定し、その所有者を root に変更することでこれを実行できます。

sudo chown root:root /path/to/komodoedit
sudo chmod u+s /path/to/komodoedit

機能:

  1. chown所有者をルートに設定する
  2. chmod u+sファイルを実行するすべてのユーザーに、所有者と同じ権限(実行権限)を与えます。

所有者を root に設定しているため、有効な実行所有者は root になります。

これは、すべてのユーザーに有効なルート エディターを付与するため、おそらくあなたが求めている答えではありません。

marco が述べたように、セキュリティの観点からは、sudoedit の方がおそらく適切です。

答え3

比較的クリーンな方法は、特定のファイルに対するユーザーIDの権限を次のように付与することです。アクセス制御リストacl.コマンドgetfaclとを使用するには、パッケージをインストールする必要がありますsetfacl。その後、ユーザー「myname」とファイルに対して、/etc/hosts次のコマンドを実行できます。

sudo setfacl -m 'u:myname:rw' /etc/hosts

そして、このファイルの読み取り/書き込みが可能になります。ls -lファイルにアクセスすると+、ファイルに ACL があることを示すサインが表示されます。

-rw-r--r--+ 1 root root 221 Nov  5 16:55 /etc/hosts

getfaclファイルにACLをリストすることができます。後でACLを削除するには、

sudo setfacl -x 'u:myname' /etc/hosts

または、setfacl -bすべての ACL を削除します。(ファイルシステムが ACL をサポートしている必要があります。)

関連情報