2007-11-11 05:16:11 +05:30
|
|
|
.\" $Id$
|
2007-10-07 17:14:44 +05:30
|
|
|
.\" Copyright 1989 - 1993, Julianne Frances Haugh
|
|
|
|
.\" All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
|
|
|
|
.\" may be used to endorse or promote products derived from this software
|
|
|
|
.\" without specific prior written permission.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
|
|
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
.\" SUCH DAMAGE.
|
|
|
|
.TH SHADOW 3
|
|
|
|
.SH NAZWA
|
2007-10-07 17:17:11 +05:30
|
|
|
shadow \- procedury zakodowanego pliku haseł
|
|
|
|
.SH SKŁADNIA
|
2007-10-07 17:14:44 +05:30
|
|
|
.B #include <shadow.h>
|
|
|
|
.PP
|
|
|
|
.B struct spwd *getspent();
|
|
|
|
.PP
|
|
|
|
.B struct spwd *getspnam(char
|
|
|
|
.IB *name );
|
|
|
|
.PP
|
|
|
|
.B void setspent();
|
|
|
|
.PP
|
|
|
|
.B void endspent();
|
|
|
|
.PP
|
|
|
|
.B struct spwd *fgetspent(FILE
|
|
|
|
.IB *fp );
|
|
|
|
.PP
|
|
|
|
.B struct spwd *sgetspent(char
|
|
|
|
.IB *cp );
|
|
|
|
.PP
|
|
|
|
.B int putspent(struct spwd
|
|
|
|
.I *p,
|
|
|
|
.B FILE
|
|
|
|
.IB *fp );
|
|
|
|
.PP
|
|
|
|
.B int lckpwdf();
|
|
|
|
.PP
|
|
|
|
.B int ulckpwdf();
|
|
|
|
.SH OPIS
|
|
|
|
.I shadow
|
2007-10-07 17:17:11 +05:30
|
|
|
operuje na zawartości dodatkowego pliku haseł (shadow) \fI/etc/shadow\fR.
|
|
|
|
Plik \fI#include\fR opisuje strukturę
|
2007-10-07 17:14:44 +05:30
|
|
|
.sp
|
|
|
|
struct spwd {
|
|
|
|
.in +.4i
|
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
char *sp_namp; /* nazwa użytkownika (login) */
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
char *sp_pwdp; /* zakodowane hasło */
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
long int sp_lstchg; /* ostatnia zmiana hasła */
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:15:23 +05:30
|
|
|
long int sp_min; /* dni do dozwolonej zmiany */
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
long int sp_max; /* dni przed wymaganą zmianą */
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
long int sp_warn; /* dni ostrzeżenia o wygaśnięciu */
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
long int sp_inact; /* dni przed wyłączeniem konta */
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
long int sp_expire; /* data ważności konta */
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
unsigned long int sp_flag; /* zarezerwowane do przyszłego użytku */
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:16:07 +05:30
|
|
|
.in \-.5i
|
2007-10-07 17:14:44 +05:30
|
|
|
}
|
|
|
|
.PP
|
2007-10-07 17:17:11 +05:30
|
|
|
Znaczenie poszczególnych pól:
|
2007-10-07 17:14:44 +05:30
|
|
|
.sp
|
2007-10-07 17:17:11 +05:30
|
|
|
sp_namp \- wskaźnik do zakończonej przez nul nazwy użytkownika.
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
sp_pwdp \- wskaźnik do zakończonego nul hasła.
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
sp_lstchg \- dni od 1 stycznia 1970; data ostatniej zmiany hasła.
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
sp_min \- dni, przed upływem których hasło nie może być zmienione.
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
sp_max \- dni, po których hasło musi być zmienione.
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
sp_warn \- dni przed datą upływu ważności hasła, od których
|
|
|
|
użytkownik jest ostrzegany od nadchodzącym terminie ważności.
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
sp_inact \- dni po upłynięciu ważności konta, po których konto jest
|
|
|
|
uważane za nieaktywne i wyłączane.
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
|
|
|
sp_expire \- dni od 1 stycznia 1970, data gdy konto zostanie
|
2007-10-07 17:17:11 +05:30
|
|
|
wyłączone.
|
2007-10-07 17:14:44 +05:30
|
|
|
.br
|
2007-10-07 17:17:11 +05:30
|
|
|
sp_flag \- zarezerwowane do przyszłego użytku.
|
2007-10-07 17:14:44 +05:30
|
|
|
.SH OPIS
|
|
|
|
\fBgetspent\fR, \fBgetspname\fR, \fBfgetspent\fR i \fBsgetspent\fR
|
2007-10-07 17:17:11 +05:30
|
|
|
zwracają wskaźnik do \fBstruct spwd\fR.
|
|
|
|
\fBgetspent\fR zwraca następną pozycję w pliku, zaś \fBfgetspent\fR
|
|
|
|
następną pozycję z podanego strumienia. Zakłada się, że strumień
|
2007-10-07 17:14:44 +05:30
|
|
|
ten jest plikiem o poprawnym formacie.
|
2007-10-07 17:17:11 +05:30
|
|
|
\fBsgetspent\fR zwraca wskaźnik do \fBstruct spwd\fR używając jako
|
|
|
|
wejścia dostarczonego łańcucha.
|
|
|
|
\fBgetspnam\fR wyszukuje od bieżącej pozycji w pliku pozycji pasującej
|
2007-10-07 17:14:44 +05:30
|
|
|
do \fBname\fR.
|
|
|
|
.PP
|
2007-10-07 17:17:11 +05:30
|
|
|
\fBsetspent\fR i \fBendspent\fR mogą zostać użyte do odpowiednio,
|
|
|
|
rozpoczęcia i zakończenia dostępu do chronionego pliku haseł (shadow).
|
2007-10-07 17:14:44 +05:30
|
|
|
.PP
|
2007-10-07 17:17:11 +05:30
|
|
|
Do zapewnienia wyłącznego dostępu do pliku \fI/etc/shadow\fR powinny
|
|
|
|
być używane procedury \fBlckpwdf\fR i \fBulckpwdf\fR.
|
|
|
|
\fBlckpwdf\fR przez 15 sekund usiłuje uzyskać blokadę przy pomocy
|
2007-10-07 17:14:44 +05:30
|
|
|
\fBpw_lock\fR.
|
2007-10-07 17:17:11 +05:30
|
|
|
Kontynuuje próbę uzyskania drugiej blokady przy pomocy \fBspw_lock\fR
|
|
|
|
przez czas pozostały z początkowych 15 sekund.
|
|
|
|
Jeżeli po upływie 15 sekund którakolwiek z tych prób zawiedzie,
|
2007-10-07 17:16:07 +05:30
|
|
|
to \fBlckpwdf\fR zwraca \-1.
|
2007-10-07 17:17:11 +05:30
|
|
|
Jeżeli uzyskano obie blokady, to zwracane jest 0.
|
2007-10-07 17:14:44 +05:30
|
|
|
.SH DIAGNOSTYKA
|
2007-10-07 17:17:11 +05:30
|
|
|
Jeżeli nie ma dalszych pozycji lub podczas przetwarzania pojawi się błąd,
|
|
|
|
to procedury zwracają NULL.
|
|
|
|
Procedury zwracające wartość typu \fBint\fR zwracają 0 w przypadku powodzenia
|
|
|
|
a \-1 dla porażki.
|
2007-10-07 17:14:44 +05:30
|
|
|
.SH PRZESTROGI
|
2007-10-07 17:17:11 +05:30
|
|
|
Procedury te mogą być używane wyłącznie przez superużytkownika, gdyż dostęp
|
|
|
|
do dodatkowego, chronionego pliku haseł jest ograniczony.
|
2007-10-07 17:14:44 +05:30
|
|
|
.SH PLIKI
|
2007-10-07 17:17:11 +05:30
|
|
|
.IR /etc/shadow " \- zakodowane hasła użytkowników"
|
|
|
|
.SH ZOBACZ TAKŻE
|
2007-10-07 17:14:44 +05:30
|
|
|
.BR getpwent (3),
|
|
|
|
.BR shadow (5)
|
|
|
|
.SH AUTOR
|
|
|
|
Julianne Frances Haugh (jockgrrl@ix.netcom.com)
|