Pythonをsudoで実行する方法について解説します。sudoとは、Linux環境でroot権限でコマンドを実行するためのコマンドです。

sudoとは

sudoとは、Linux環境で「root権限でコマンドを実行する」ためのコマンドです。su (rootユーザに切り替えるコマンド) + 英語のdo、が語源です。以下のようにコマンドを入力すると、コマンドcommandをroot権限で実行します。

sudo command

sudoでは、実行できるコマンドを制限したり、コマンド履歴を取得したりできます。rootユーザへの切り替えを禁止するが、一部root権限の必要な作業がある、といった状況でよく用いられます。

Pythonをsudoで実行する方法

Pythonをsudoで実行するには、sudoに続けてPythonプログラムとソースコードファイルを指定します。sudoを使わない場合と同様に、ソースコードファイルの指定は絶対パス、相対パスのいずれでも可です。

sudo python script.py
sudo python /path/to/script.py

実際に書いてみよう

以下のソースコードファイルread_shadow.pyを作成しました。/etc/shadow (暗号化パスワードを保存しているファイル) を表示するプログラムです。

with open('/etc/shadow') as f:
    print(f.read())

最初にsudoなし (普通のユーザ権限)で実行すると、Permission deniedというエラーになりました。これは、/etc/shadowの読取権限がないためです。次にsudoありで実行すると、/etc/shadowの中身を読み取れました。これは、Pythonプログラムがroot権限で実行されたためです。

以上がUbuntu環境でPythonをsudoで実行する方法についての解説です。この情報が皆さんのPythonプログラミングに役立つことを願っています。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です