sudo
権限を必要とするファイルを変更するには、KomodoEditを使用したいと思います。ただしsudo
、(何らかの理由で)KomodoEditを起動できません。どういうわけかKomodoにこれらのファイルを編集する権限を付与できますか/etc/hosts
? (特にapache2ファイルと。
答え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
所有者をrootに設定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をサポートする必要があります。)