Man page - sgetspent(3)

Packages contains this manual

Available languages:

en fr ja ru

Manual

GETSPNAM

名 前
書 åŧ
čĒŦ 明
ãƒĒ エ ãƒŗ ト ナ ãƒŗ ト į‰ˆ
構 造 äŊ“
čŋ” り 値
エ ナ ãƒŧ
フ ã‚Ą イ ãƒĢ
åąž 性
æē– 拠
é–ĸ 逪 項 į›Ž
こ ぎ 文 書 ãĢ つ い ãĻ

名 前

getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf - shadow パ ゚ ワ ãƒŧ ド フ ã‚Ą イ ãƒĢ ぎ エ ãƒŗ ト ãƒĒ ãƒŧ を 取 åž— す る

書 åŧ

/* 一 čˆŦ įš„ ãĒ shadow パ ゚ ワ ãƒŧ ド フ ã‚Ą イ ãƒĢ API */
#include <shadow.h>

struct spwd *getspnam(const char * name );

struct spwd *getspent(void);

void setspent(void);

void endspent(void);

struct spwd *fgetspent(FILE * stream );

struct spwd *sgetspent(const char * s );

int putspent(const struct spwd * p , FILE * stream );

int lckpwdf(void);

int ulckpwdf(void);

/* GNU ãĢ よ る æ‹Ą åŧĩ */
#include <shadow.h>

int getspent_r(struct spwd * spbuf ,
char *
buf , size_t buflen , struct spwd ** spbufp );

int getspnam_r(const char * name , struct spwd * spbuf ,
char *
buf , size_t buflen , struct spwd ** spbufp );

int fgetspent_r(FILE * stream , struct spwd * spbuf ,
char *
buf , size_t buflen , struct spwd ** spbufp );

int sgetspent_r(const char * s , struct spwd * spbuf ,
char *
buf , size_t buflen , struct spwd ** spbufp );

glibc 向 け ぎ 抟 čƒŊ 検 æŸģ マ ク ロ ぎ čρ äģļ ( feature_test_macros (7) 参 į…§ ):

getspent_r (), getspnam_r (), fgetspent_r (), sgetspent_r ():
glibc 2.19 äģĨ 降 :
_DEFAULT_SOURCE
glibc 2.19 äģĨ 前 :
_BSD_SOURCE || _SVID_SOURCE

čĒŦ 明

昔 は 暗 åˇ 化 さ れ た パ ゚ ワ ãƒŧ ド を パ ゚ ワ ãƒŧ ド フ ã‚Ą イ ãƒĢ ãĢ čĻ‹ え る よ う ãĢ å…Ŧ 開 し ãĻ お い ãĻ も 厉 全 だ と 考 え ら れ ãĻ い た 。 Julianne Frances Haugh は shadow パ ゚ ワ ãƒŧ ド ゚ イ ãƒŧ ト を 原 čŖ… し た 。 こ れ は 暗 åˇ 化 さ れ た パ ゚ ワ ãƒŧ ド を 、 root ぎ ãŋ が čĒ­ む こ と が で き る shadow パ ゚ ワ ãƒŧ ド デ ãƒŧ ã‚ŋ ベ ãƒŧ ゚ (例 え ば 、 ロ ãƒŧ ã‚Ģ ãƒĢ ぎ shadow パ ゚ ワ ãƒŧ ド フ ã‚Ą イ ãƒĢ /etc/shadow , NIS, LDAP) ãĢ äŋ 持 す る 。

äģĨ 下 で čĒŦ 明 す る é–ĸ 数 は 、 äŧ įĩą įš„ ãĒ パ ゚ ワ ãƒŧ ド デ ãƒŧ ã‚ŋ ベ ãƒŧ ゚ ãĢ 寞 す る é–ĸ 数 ãĢ äŧŧ ãĻ い る (例 え ば getpwnam (3) や getpwent (3) を 参 į…§ )。

getspnam () é–ĸ 数 は 、 ãƒĻ ãƒŧ ã‚ļ ãƒŧ 名 name ãĢ マ ッ チ す る shadow パ ゚ ワ ãƒŧ ド デ ãƒŧ ã‚ŋ ベ ãƒŧ ゚ ぎ エ ãƒŗ ト ãƒĒ ãƒŧ を čρ į´  毎 ãĢ 分 č§Ŗ し 、 各 čρ į´  を æ ŧ į´ し た 構 造 äŊ“ へ ぎ ポ イ ãƒŗ ã‚ŋ ãƒŧ を čŋ” す 。

getspent () é–ĸ 数 は shadow パ ゚ ワ ãƒŧ ド デ ãƒŧ ã‚ŋ ベ ãƒŧ ゚ ãĢ お け る æŦĄ ぎ エ ãƒŗ ト ãƒĒ ãƒŧ へ ぎ ポ イ ãƒŗ ã‚ŋ ãƒŧ を čŋ” す 。 å…Ĩ 力 ゚ ト ãƒĒ ãƒŧ ム ãĢ お け る äŊ įŊŽ ã¯ 、 setspent () で 初 期 化 さ れ る 。 čĒ­ ãŋ čžŧ ãŋ が įĩ‚ わ ãŖ た 垌 ãĢ 、 endspent () を å‘ŧ ãŗ å‡ē す と 、 ãƒĒ ã‚Ŋ ãƒŧ ゚ を č§Ŗ 攞 で き る 。

fgetspent () é–ĸ 数 は getspent () ãĢ äŧŧ ãĻ い る が 、 setspent () で 暗 éģ™ ãŽ う ãĄ ãĢ ã‚Ē ãƒŧ プ ãƒŗ さ れ る ゚ ト ãƒĒ ãƒŧ ム で は ãĒ く 、 与 え ら れ た ゚ ト ãƒĒ ãƒŧ ム を äŊŋ う 。

sgetspent () é–ĸ 数 は 与 え ら れ た 文 字 列 s を č§Ŗ 析 し struct spwd ãĢ æ ŧ į´ す る 。

putspent () é–ĸ 数 は 与 え ら れ た struct spwd *p ぎ 内 厚 を shadow パ ゚ ワ ãƒŧ ド フ ã‚Ą イ ãƒĢ åŊĸ åŧ ぎ テ キ ゚ ト 行 で stream ãĢ 書 き å‡ē す 。 įŠē 文 字 列 と し ãĻ 、 値 が NULL ぎ 文 字 列 エ ãƒŗ ト ãƒĒ ãƒŧ と 値 が -1 ぎ 数 値 エ ãƒŗ ト ãƒĒ ãƒŧ が 書 き å‡ē さ れ る 。

lckpwdf () é–ĸ 数 は 、 shadow パ ゚ ワ ãƒŧ ド デ ãƒŧ ã‚ŋ ベ ãƒŧ ゚ を 多 重 同 時 ã‚ĸ ク ã‚ģ ゚ か ら 厈 る た め ぎ も ぎ で あ る 。 こ ぎ é–ĸ 数 は ロ ッ ク ぎ į˛ åž— を čŠĻ ãŋ 、 成 功 し た å ´ 合 は 0 を čŋ” す 。 å¤ą 敗 し た å ´ 合 (15 į§’ äģĨ 内 ãĢ ロ ッ ク が 取 åž— で き ãĒ か ãŖ た å ´ 合 ) は -1 を čŋ” す 。 ulckpwdf () é–ĸ 数 は ロ ッ ク を 再 ãŗ č§Ŗ 攞 す る 。 shadow パ ゚ ワ ãƒŧ ド フ ã‚Ą イ ãƒĢ へ ぎ į›´ æŽĨ ã‚ĸ ク ã‚ģ ゚ か ら äŋ č­ˇ す る 手 æŽĩ が ãĒ い į‚š ãĢ æŗ¨ 意 す る こ と 。 lckpwdf () を äŊŋ う プ ロ グ ナ ム だ け が ロ ッ ク を 通 įŸĨ で き る 。

こ れ ら ぎ é–ĸ 数 は ã‚Ē ãƒĒ ジ ナ ãƒĢ ぎ shadow API を 構 成 し ãĻ い た é–ĸ 数 で あ り 、 い ろ い ろ ãĒ ã‚ˇ ゚ テ ム で åēƒ ã 刊 ᔍ 可 čƒŊ で あ る 。

ãƒĒ エ ãƒŗ ト ナ ãƒŗ ト į‰ˆ

パ ゚ ワ ãƒŧ ド デ ãƒŧ ã‚ŋ ベ ãƒŧ ゚ ãĢ 寞 す る ãƒĒ エ ãƒŗ ト ナ ãƒŗ ト į‰ˆ と 同 じ よ う ãĢ 、 glibc ãĢ は shadow パ ゚ ワ ãƒŧ ド フ ã‚Ą イ ãƒĢ ãĢ 寞 し ãĻ ãƒĒ エ ãƒŗ ト ナ ãƒŗ ト į‰ˆ が あ る 。 getspnam_r () é–ĸ 数 は getspnam () と äŧŧ ãĻ い る が 、 取 åž— し た shadow パ ゚ ワ ãƒŧ ド 構 造 äŊ“ を spbuf が 指 す 領 域 ãĢ æ ŧ į´ す る 。 shadow パ ゚ ワ ãƒŧ ド 構 造 äŊ“ は 文 字 列 įž¤ へ ぎ ポ イ ãƒŗ ã‚ŋ ãƒŧ を åĢ ãŋ 、 こ れ ら ぎ 文 字 列 įž¤ は ã‚ĩ イ ã‚ē buflen ぎ バ ッ フ ã‚Ą ãƒŧ buf ãĢ æ ŧ į´ さ れ る 。 *spbufp ãĢ は (成 功 し た å ´ 合 は ) įĩ 果 へ ぎ ポ イ ãƒŗ ã‚ŋ ãƒŧ が æ ŧ į´ さ れ 、 (エ ãƒŗ ト ãƒĒ ãƒŧ が čĻ‹ つ か ら ãĒ か ãŖ た å ´ 合 ぞ た は エ ナ ãƒŧ が čĩˇ こ ãŖ た å ´ 合 は ) NULL が æ ŧ į´ さ れ る 。

é–ĸ 数 getspent_r (), fgetspent_r (), sgetspent_r () は そ れ ぞ れ ãƒĒ エ ãƒŗ ト ナ ãƒŗ ト で ãĒ い バ ãƒŧ ジ ョ ãƒŗ と 同 様 ぎ 抟 čƒŊ を 持 つ 。

glibc で ãĒ い ã‚ˇ ゚ テ ム ãĢ も こ れ ら と 同 じ 名 前 ぎ é–ĸ 数 が あ る が 、 プ ロ ト ã‚ŋ イ プ が į•° ãĒ る こ と も 多 い 。

構 造 äŊ“

shadow パ ゚ ワ ãƒŧ ド 構 造 äŊ“ は <shadow.h> で äģĨ 下 ぎ よ う ãĢ 厚 įžŠ さ れ ãĻ い る :

struct spwd {
char *sp_namp; /* ロ グ イ ãƒŗ 名 */
char *sp_pwdp; /* 暗 åˇ 化 さ れ た パ ゚ ワ ãƒŧ ド */
long sp_lstchg; /* 最 įĩ‚ 更 新 æ—Ĩ
(1970-01-01 00:00:00 +0000 (UTC)
か ら ぎ æ—Ĩ 数 ) */
long sp_min; /* 変 更 が å‡ē æĨ る よ う ãĢ ãĒ る ぞ で ぎ 最 ៭ æ—Ĩ 数 */
long sp_max; /* 変 更 を し ãĒ く ãĻ も よ い 最 長 æ—Ĩ 数 */
long sp_warn; /* パ ゚ ワ ãƒŧ ド が 期 限 切 れ ãĢ ãĒ る 前 ãĢ
ãƒĻ ãƒŧ ã‚ļ ãƒŧ ãĢ 変 更 ぎ č­Ļ 告 を å‡ē す æ—Ĩ 数 */
long sp_inact; /* パ ゚ ワ ãƒŧ ド が 期 限 切 れ ãĢ ãĒ ãŖ ãĻ か ら
ã‚ĸ ã‚Ģ ã‚Ļ ãƒŗ ト が į„Ą 劚 ãĢ ãĒ る ぞ で ぎ æ—Ĩ 数 */
long sp_expire; /* ã‚ĸ ã‚Ģ ã‚Ļ ãƒŗ ト が į„Ą 劚 ãĢ ãĒ る æ—Ĩ äģ˜
(1970-01-01 00:00:00 +0000 (UTC)
か ら ぎ æ—Ĩ 数 ) */
unsigned long sp_flag; /* äēˆ į´„ フ ã‚Ŗ ãƒŧ ãƒĢ ド */
};

čŋ” り 値

ポ イ ãƒŗ ã‚ŋ ãƒŧ を čŋ” す é–ĸ 数 は 、 こ れ äģĨ 上 エ ãƒŗ ト ãƒĒ ãƒŧ が ãĒ い å ´ 合 や å‡Ļ ᐆ 中 ãĢ エ ナ ãƒŧ が į™ē į”Ÿ し た å ´ 合 NULL を čŋ” す 。 int を čŋ” り 値 と し ãĻ 持 つ é–ĸ 数 は 、 成 功 し た å ´ 合 0 を čŋ” し 、 å¤ą 敗 し た å ´ 合 、 -1 を čŋ” し 、 errno ãĢ エ ナ ãƒŧ ぎ 原 因 を į¤ē す 値 を 設 厚 す る 。

ãƒĒ エ ãƒŗ ト ナ ãƒŗ ト į‰ˆ で ãĒ い é–ĸ 数 で は 、 čŋ” り 値 が 静 įš„ ãĒ 領 域 を 指 し ãĻ お り 、 åŧ• き įļš ã„ ãĻ こ れ ら ぎ é–ĸ 数 を å‘ŧ ãŗ å‡ē し た å ´ 合 ãĢ 上 書 き さ れ る 可 čƒŊ 性 が あ る 。

ãƒĒ エ ãƒŗ ト ナ ãƒŗ ト į‰ˆ ぎ é–ĸ 数 は 、 成 功 し た å ´ 合 ãĢ 0 を čŋ” す 。 エ ナ ãƒŧ ぎ å ´ 合 は 、 エ ナ ãƒŧ į•Ē åˇ が čŋ” さ れ る 。

エ ナ ãƒŧ

EACCES

å‘ŧ ãŗ å‡ē し 元 が shadow パ ゚ ワ ãƒŧ ド フ ã‚Ą イ ãƒĢ ãĢ ã‚ĸ ク ã‚ģ ゚ す る 訹 可 を 持 ãŖ ãĻ い ãĒ い 。

ERANGE

与 え ら れ た バ ッ フ ã‚Ą ãƒŧ が 小 さ す ぎ る 。

フ ã‚Ą イ ãƒĢ

/etc/shadow

ロ ãƒŧ ã‚Ģ ãƒĢ ぎ shadow パ ゚ ワ ãƒŧ ド デ ãƒŧ ã‚ŋ ベ ãƒŧ ゚ フ ã‚Ą イ ãƒĢ

/etc/.pwd.lock

ロ ッ ク フ ã‚Ą イ ãƒĢ

イ ãƒŗ ク ãƒĢ ãƒŧ ド フ ã‚Ą イ ãƒĢ <paths.h> は 厚 数 _PATH_SHADOW を 厚 įžŠ し ãĻ い る 。 こ れ は shadow パ ゚ ワ ãƒŧ ド フ ã‚Ą イ ãƒĢ ぎ パ ゚ 名 で あ る 。

åąž 性

こ ぎ ᝀ で äŊŋ ᔍ さ れ ãĻ い る ᔍ čĒž ぎ čĒŦ 明 ãĢ つ い ãĻ は 、 attributes (7) を 参 į…§ 。

Image grohtml-41785-1.png

In the above table, getspent in race:getspent signifies that if any of the functions setspent (), getspent (), getspent_r (), or endspent () are used in parallel in different threads of a program, then data races could occur.

æē– 拠

shadow パ ゚ ワ ãƒŧ ド デ ãƒŧ ã‚ŋ ベ ãƒŧ ゚ と é–ĸ 逪 API は POSIX.1 ãĢ は 記 čŧ‰ さ れ ãĻ い ãĒ い 。 し か し ãĒ が ら 、 多 く ぎ äģ– ãŽ ã‚ˇ ゚ テ ム で も 同 様 ぎ API が 提 供 さ れ ãĻ い る 。

é–ĸ 逪 項 į›Ž

getgrnam (3), getpwnam (3), getpwnam_r (3), shadow (5)

こ ぎ 文 書 ãĢ つ い ãĻ

こ ぎ man ペ ãƒŧ ジ は Linux man-pages プ ロ ジ ェ ク ト ぎ ãƒĒ ãƒĒ ãƒŧ ゚ 5.10 ぎ 一 部 で あ る 。 プ ロ ジ ェ ク ト ぎ čĒŦ 明 と バ グ å ą 告 ãĢ é–ĸ す る 情 å ą は https://www.kernel.org/doc/man-pages/ ãĢ 書 か れ ãĻ い る 。