権限が必要なファイルを 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
機能:
chown
所有者をルートに設定する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 をサポートしている必要があります。)