1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
.\" -*- nroff -*-
.\" Copyright (C), 1994, Graeme W. Wilford (Wilf).
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein. The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" Fri Jul 29th 12:56:44 BST 1994 Wilf. <G.Wilford@ee.surrey.ac.uk>
.\" Changes inspired by patch from Richard Kettlewell
.\" <richard@greenend.org.uk>, aeb 970616.
.\"
.TH SETUID 2 "29/07/1994" "Linux 1.1.36" "Linux Programmer's Manual"
.SH NOME
setuid \- selecionar a identidade do usurio
.SH SINOPSE
.B #include <sys/types.h>
.br
.B #include <unistd.h>
.sp
.BI "int setuid(uid_t " uid )
.SH DESCRIO
.B setuid
seleciona a ID efetiva de usurio do processo atual.
Se a ID efetiva do usurio do processo solicitante root,
as IDs efetivas e guardas sero tambm selecionadas.
.PP
No Linux,
.B setuid
implementado como a verso POSIX com a caracterstica _POSIX_SAVED_IDS.
Isto permite um programa setuid (exceto root) para deixar todos deste
privilrios de usurio, para alguns trabalhos desprivilegiados, e ento reusa a ID de
usurio efetiva original em um modo seguro.
.PP
Se o usurio o superusurio ou o programa setuid root, cuidados especiais devem ser
tomados. A funo
.B setuid
verefica a uid efetiva do solicitante e se ele o superusurio,
todo processo com a ID do usurio sero selecionadas para
.IR uid .
Deposi disto ter ocorrido, impossvel para o programa recuperar os privilgios de
superusurio.
.PP
Assim, um programa setuid root desejando, temporariamente, deixa os privilgios de
superusurio, assume a identidade de um usurio sem ser o superusurio, e ento recupera
os privilgios de superusurio mas tarde sem poder usar
.BR setuid .
Voc pode completar esta com a chamada (BSD, e no a POSIX)
.BR seteuid .
.SH "VALORES RETORNADOS"
Em caso de sucesso, zero retornado. Caso contrrio, \-1 retornado, e
.I errno
selecionado apropriadamente.
.SH ERROS
.TP
.B EPERM
O usurio no o superusurio, e
.I uid
no casa a ID de usurio efetiva ou guardada do processo solicitante.
.SH "DE ACORDO COM"
SVr4, SVID, POSIX.1. No totalmente compatvel com a chamada BSD 4.4, a qual
seleciona todas as IDs de usurio real, guardada, e efetiva. SVr4 documenta uma
condio de erro adicional EINVAL.
.SH "ADVERTNCIA ESPEFICA PARA O LINUX"
O Linux tem o conceito de ID de usurio do sistema de arquivos, normalmente igual a
ID efetiva de usurio. A chamada
.B setuid
tambm seleciona a ID de usurio do sistema de arquivos do processo corrente.
Veja
.BR setfsuid (2).
.PP
Se
.I uid
diferente de velhas uid efetivas, o processo ir
ser probido de sadas core dumps.
.SH "VEJA TAMBM"
.BR getuid (2),
.BR setreuid (2),
.BR seteuid (2),
.BR setfsuid (2)
.SH TRADUZIDO POR LDP-BR em 21/08/2000.
\&\fR\&\f(CWAndr L. Fassone Canova <lonelywolf@blv.com.br> (traduo)\fR
\&\fR\&\f(CWxxxxxxxxxxxxxxxxxxxxxxxxx <xxx@xxxxxx.xxx.xx> (reviso)\fR
|