.\" $Id: shadow.3,v 1.4 2003/01/07 14:32:57 kloczek Exp $ .\" {PTM/WK/1999-09-16} .\" 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 shadow \- procedury zakodowanego pliku haseł .SH SKŁADNIA .B #include .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 operuje na zawartości dodatkowego pliku haseł (shadow) \fI/etc/shadow\fR. Plik \fI#include\fR opisuje strukturę .sp struct spwd { .in +.4i .br char *sp_namp; /* nazwa użytkownika (login) */ .br char *sp_pwdp; /* zakodowane hasło */ .br long int sp_lstchg; /* ostatnia zmiana hasła */ .br long int sp_min; /* dni do dozwolonej zmiany */ .br long int sp_max; /* dni przed wymaganą zmianą */ .br long int sp_warn; /* dni ostrzeżenia o wygaśnięciu */ .br long int sp_inact; /* dni przed wyłączeniem konta */ .br long int sp_expire; /* data ważności konta */ .br unsigned long int sp_flag; /* zarezerwowane do przyszłego użytku */ .br .in -.5i } .PP Znaczenie poszczególnych pól: .sp sp_namp \- wskaźnik do zakończonej przez nul nazwy użytkownika. .br sp_pwdp \- wskaźnik do zakończonego nul hasła. .br sp_lstchg \- dni od 1 stycznia 1970; data ostatniej zmiany hasła. .br sp_min \- dni, przed upływem których hasło nie może być zmienione. .br sp_max \- dni, po których hasło musi być zmienione. .br 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. .br sp_inact \- dni po upłynięciu ważności konta, po których konto jest uważane za nieaktywne i wyłączane. .br sp_expire \- dni od 1 stycznia 1970, data gdy konto zostanie wyłączone. .br sp_flag \- zarezerwowane do przyszłego użytku. .SH OPIS \fBgetspent\fR, \fBgetspname\fR, \fBfgetspent\fR i \fBsgetspent\fR 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ń ten jest plikiem o poprawnym formacie. \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 do \fBname\fR. .PP \fBsetspent\fR i \fBendspent\fR mogą zostać użyte do odpowiednio, rozpoczęcia i zakończenia dostępu do chronionego pliku haseł (shadow). .PP 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 \fBpw_lock\fR. 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, to \fBlckpwdf\fR zwraca -1. Jeżeli uzyskano obie blokady, to zwracane jest 0. .SH DIAGNOSTYKA 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. .SH PRZESTROGI Procedury te mogą być używane wyłącznie przez superużytkownika, gdyż dostęp do dodatkowego, chronionego pliku haseł jest ograniczony. .SH PLIKI .IR /etc/shadow " - zakodowane hasła użytkowników" .SH ZOBACZ TAKŻE .BR getpwent (3), .BR shadow (5) .SH AUTOR Julianne Frances Haugh (jockgrrl@ix.netcom.com)