私はシェルスクリプトを書いています(これ)新しいウェブサイトプロジェクトを開始します。これはユーザーによって実行される必要があります(そのユーザーがまさに年齢であるため、root権限があるかどうかは重要ではありません)。
ご覧のとおり、ユーザーは次のことができる必要があります。
- 編集する
/etc/hosts
。 - に新しいファイルを追加します
/etc/apache2/sites-available/
。 /var/www/
に新しいディレクトリ(lnを含む)を作成します。- 注文
a2ensite
の実行 - 注文
service apache2 reload
の実行
これらの操作はすべてrootとして実行する必要があります。しかし、一般ユーザーにこのような権限を付与することは可能ですか?これを行うには、ファイルの所有者、ユーザーグループ、またはその両方を変更する必要があります。どうすればよいですか?
答え1
これは一般的にsudo
。最新のシステムでは、ファイルを追加して/etc/sudoers.d
新しい権限を追加できます。
# Rules for running am apache script.
User_Alias APACHE = yourUser
Cmnd_Alias APACHE = /usr/local/sbin/your_script
APACHE ALL = NOPASSWD: APACHE
ユーザーはユーザーであるため、/etc/sudoers
管理者用に定義されたグループにアカウントを追加できます。 DebianまたはUbuntuシステムではadmin
。他のディストリビューションは異なる値を使用します。これは管理者グループのUbuntuの定義です。
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
sudo
詳細なマニュアルページが付属しています。sudo
、sudoers
およびのマニュアルページを確認してくださいvisudo
。マニュアルページをインデックス化した場合は、コマンドを使用してsudo関連のマニュアルページのリストを取得できますman -k sudo
。