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 | ユーザーコマンドインタープリター |
>>> 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'
-
UnixとLinux:違いとそれが重要な理由
Linuxは最近どこにでもあります。究極の証拠としては、Windows以外の何物でもありません。 Linux 2用のWindowsサブシステムのリリースに伴い、MicrosoftはオペレーティングシステムとともにLinuxカーネルを出荷しています。それほど昔のことではありませんが、それはエイプリルフールの冗談のように思えたでしょう。 Linuxはインターネットの大部分のバックボーンを提供するかもしれませんが、それは何もないところから作成されたものではありません。 Linuxの前にはUnixがあり、新しいオペレーティングシステムは、1970年代、さらには1960年代に生まれたアイデアに現在人気
-
Linuxでrootパスワードをリセットする方法
Linuxでは、通常のユーザーとスーパーユーザーはパスワード認証を介してサービスにアクセスできます。通常のユーザーが自分のパスワードを思い出せない場合、スーパーユーザーは端末から直接通常のユーザーのパスワードをリセットできます。ただし、スーパーユーザー(またはrootユーザー)がパスワードを紛失した場合はどうなりますか?ログイン画面を起動する前に、紛失したパスワードを回復する必要があります。これにより、Linuxホストに物理的にアクセスできる悪意のあるユーザーが完全な所有権を取得できるようになります。この記事では、2つの異なる方法を使用してLinuxで紛失したrootパスワードを回復する方法に