1. ホーム
  2. python

[解決済み] スクリプトのユーザーがrootのような権限を持っているかどうかを確認する最も良い方法は何ですか?

2023-07-12 23:14:56

質問

Pythonスクリプトで、/etcのファイルを移動したり、apt-getでインストールしたりと、rootレベルの権限を必要とするようなことをたくさんする予定です。私は現在持っています。

if os.geteuid() != 0:
    exit("You need to have root privileges to run this script.\nPlease try again, this time using 'sudo'. Exiting.")

これはチェックを行うための最良の方法でしょうか?他にベストプラクティスはありますか?

どのように解決するのですか?

許しよりも許しを請う方が簡単」という原則に従います。

try:
    os.rename('/etc/foo', '/etc/bar')
except IOError as e:
    if (e[0] == errno.EPERM):
       sys.exit("You need root permissions to do this, laterz!")

の非移植性が気になる場合は、以下のようにします。 os.geteuid() を使うべきではありません。 /etc を使うべきではありません。