2017-01-03 28 views
1

私は、Python 3スクリプトを特定のホストとLinux上のユーザーに実行する機能を制限したいと考えています。関数やライブラリにPython 3.xのビルドがありますが、私はこれを比較的簡単に実行できますか?スクリプトを実行する権限を制限する方法は?

+3

スクリプト実行権限をスクリプト自体から制限したいですか?そのためにはまずそれを実行しなければならないでしょう。 – UnholySheep

+0

特定のスクリプトのみを実行するか、Pythonスクリプトを実行する必要がありますか? – Pax0r

+0

スクリプトがユーザー名とホスト名を確認すると、実行を続行するか、停止して終了します。 – Yat

答えて

1

私はこれを行うより良い方法があると確信していますが、以下は私の最初の試みです。

#!/usr/bin/python3 
import getpass 
import socket 

hostname = socket.gethostname() 
username = getpass.getuser() 
allowedusers = 'user1' 
allowedhosts = 'host1' 

if hostname in allowedhosts: 
    print('hostname allowed') 
    if username in allowedusers: 
     print('user allowed') 

    else: 
     print('username not allowed') 
     exit() 
else: 
    print('hostname not allowed') 
    exit() 

print('script will continue to run as hostname and user are allowed') 
+1

docs https://docs.python.org/2.7/library/getpass.html getpassによれば、いくつかのenv変数をチェックするという事実に注意してください。ユーザがスクリプトを 'LOGNAME = 'ではなく、本当に私として実行するならば'python script.py'そして 'getuser()'は 'not-really-me'を返します。このようなチェックはOSレベルで行うことを強くお勧めします。 – Pax0r

+1

@ pax0r私は同意しますが、これは、スーパーセキュアであることが期待されるプロダクションではなく、唯一のエクササイズです。ご意見をいただきありがとうございます。 – Yat

+0

でも他の人がこれを読んでいる可能性があるので気をつけてください;) – Pax0r

3

ない正確にPythonの答えが、Linux 1 - あなたには、いくつかのグループにスクリプトを実行することができ、すべてのユーザーが追加することができます:

groupadd allowed-users 
usermod -a -G allowed-users some-user 

を次に、スクリプトのグループを変更するだけのためにそれへの読み取りアクセスを制限しますグループ(ユーザーがスクリプトを読むことができない場合は、スクリプトを実行できません)。

chown allowed-users script.py 
chmod 640 script.py 
+0

これは似たようなことを達成するための良い考えです。 – Yat

関連する問題