Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでのシャドウパスワードデータベースへのアクセス


UNIXシャドウパスワードデータベースにアクセスするには、spwdモジュールを使用する必要があります。このファイルにアクセスするには、十分な権限が必要です。シャドウパスワードデータベースエントリは、オブジェクトのようなタプルのようなものです。

spwdモジュールを使用するには、-

を使用してインポートする必要があります
import spwd

シャドウパスワードデータベースの属性は次のとおりです-

属性と説明
インデックス
0

sp_nam

ログイン名またはユーザーのユーザー名

1

sp_pwd

暗号化されたパスワード

2

sp_lstchg

最終変更日

3

sp_min

パスワードの変更間の最小日数

4

sp_max

パスワードの変更間の最大日数

5

sp_warn

パスワードを変更する日数について警告する

6

sp_inact

パスワードの有効期限が切れてからアカウントがブロックされるまでの日数

7

p_expire

1997年1月1日からアカウントが無効になるまでの日数

8

sp_flag

予約済み

このモジュールのいくつかのメソッドは次のとおりです-

メソッドspwd.getspnam(name)

このメソッドは、指定されたユーザー名のシャドウパスワードデータベースエントリを返します。

メソッドspwd.getspall()

このメソッドは、使用可能なすべてのシャドウパスワードデータベースエントリを返します。

サンプルコード

import spwd
print("Root: " + str(spwd.getspnam('root')) + '\n') #Password detail for root
for entry in spwd.getspall():
    print("Name: " + entry[0] + "\t\tPassword: " + entry.sp_pwdp)

出力

(目的の出力を取得するには、スクリプトをsudoモードで実行する必要があります)

$ sudo python3 example.py
Root: spwd.struct_spwd(sp_namp='root', sp_pwdp='!', sp_lstchg=17778, sp_min=0, sp_max=99999, sp_warn=7, sp_inact=-1, sp_expire=-1, sp_flag=-1)

……..
……..
……..
Name: geoclue        Password: *
Name: gnome-initial-setup        Password: *
Name: gdm        Password: *
Name: unix_user        Password: $6$47n9s0Ep$znWkgNtywebHGKq2o6kZKhGOM8ryp8z4/6P6PUE1m.NQ5Erg9aWncNUAGbuNLFNWUO9M9xzKLxRpFGB5md/nu1
Name: mongodb        Password: !

  1. アクセスデータベースにパスワードを設定する方法

    データベースの不正使用を防ぐためにデータベースにパスワードを設定する場合は、 Microsoft Access 必要に応じて、ユーザーがデータベースにパスワードを設定できるようになります。ユーザーが自分のパスワードを知っている場合は、いつでも自分のパスワードを復号化できますが、ユーザーが自分のパスワードを忘れると、データベースを使用できなくなります。 Accessデータベースにパスワードを設定する方法 これを行う方法を見てみましょう。 Accessデータベースを使用して暗号化してパスワードで保護する方法 ファイルをクリックします タブ。 次に、[開く]をクリックします 舞台裏の眺めで。

  2. Pythonデバッガー(pdb)

    ソフトウェア開発の専門用語では、「デバッグ」という用語は、プログラム内のエラーを見つけて修正するプロセスに広く使用されています。 Pythonの標準ライブラリには、Pythonプログラムをデバッグするためのユーティリティのセットであるpdbモジュールが含まれています。 デバッグ機能はPdbクラスで定義されています。このモジュールは、内部でbdbモジュールとcmdモジュールを使用します。 pdbモジュールには、非常に便利なコマンドラインインターフェイスがあります。これは、Pythonスクリプトの実行時に–m switchを使用してインポートされます。 python –m pdb