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

Unix / Linuxパスワードデータベース(pwd)へのアクセス


Pythonの標準ライブラリのpwdモジュールは、Unix/Linuxオペレーティングシステムのユーザーアカウントのパスワードデータベースへのアクセスを提供します。このパスワードデータベースのエントリは、タプルのようなオブジェクトとして処理されます。タプルの構造は、CPythonAPIの次のpasswd構造pwd.hファイルに準拠しています

インデックス 属性 意味
0 pw_name ログイン名
1 pw_passwd オプションの暗号化されたパスワード
2 pw_uid 数値ユーザーID
3 pw_gid 数値グループID
4 pw_gecos ユーザー名またはコメントフィールド
5 pw_dir ユーザーのホームディレクトリ
6 pw_shell ユーザーコマンドインタープリター
pwdモジュールは次の関数を定義します-

>>> import pwd
>>> dir(pwd)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'getpwall', 'getpwnam', 'getpwuid', 'struct_passwd']

getpwnam() −この関数は、指定されたユーザー名に対応するパスワードデータベースのレコードを返します

>>> pwd.getpwnam('root')
pwd.struct_passwd(pw_name s= 'root', pw_passwd = 'x', pw_uid = 0, pw_gid = 0, pw_gecos = 'root', pw_dir = '/root', pw_shell = '/bin/bash')

getpwuid() −この関数は、指定されたUIDに対応するパスワードデータベースのレコードを返します

>>> pwd.getpwuid(0)
pwd.struct_passwd(pw_name = 'root', pw_passwd = 'x', pw_uid = 0, pw_gid = 0, pw_gecos = 'root', pw_dir = '/root', pw_shell = '/bin/bash')

getpwall() −この関数は、タプルのリストを返します。各タプルには、各ユーザーのpasswd構造情報が含まれています。構造内のuidおよびgidアイテムは整数です。渡されたパラメータに対応するエントリが見つからない場合、KeyError例外が発生します。

>>> pwd.getpwnam('hello')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'getpwnam(): name not found: hello'

  1. UnixとLinux:違いとそれが重要な理由

    Linuxは最近どこにでもあります。究極の証拠としては、Windows以外の何物でもありません。 Linux 2用のWindowsサブシステムのリリースに伴い、MicrosoftはオペレーティングシステムとともにLinuxカーネルを出荷しています。それほど昔のことではありませんが、それはエイプリルフールの冗談のように思えたでしょう。 Linuxはインターネットの大部分のバックボーンを提供するかもしれませんが、それは何もないところから作成されたものではありません。 Linuxの前にはUnixがあり、新しいオペレーティングシステムは、1970年代、さらには1960年代に生まれたアイデアに現在人気

  2. Linuxでrootパスワードをリセットする方法

    Linuxでは、通常のユーザーとスーパーユーザーはパスワード認証を介してサービスにアクセスできます。通常のユーザーが自分のパスワードを思い出せない場合、スーパーユーザーは端末から直接通常のユーザーのパスワードをリセットできます。ただし、スーパーユーザー(またはrootユーザー)がパスワードを紛失した場合はどうなりますか?ログイン画面を起動する前に、紛失したパスワードを回復する必要があります。これにより、Linuxホストに物理的にアクセスできる悪意のあるユーザーが完全な所有権を取得できるようになります。この記事では、2つの異なる方法を使用してLinuxで紛失したrootパスワードを回復する方法に