\section{login}
\index{login}
\subsubsection{NOME }
login - acesso ao sistema  \subsubsection{SINOPSE }
\textbf{login [ }nome\textbf{ ]}  

\textbf{login -p}  

\textbf{login 
-h }nome da máquina  

\textbf{login -f }nome  \subsubsection{DESCRIÇÃO }
\textbf{login} é usado quando se obtém 
acesso ao sistema. Ele pode ser usado para alterar de um para outro usuário 
a qualquer tempo (muitos shells modernos têm suporte a esta funcionalidade 
pré construída). 

 Caso nenhum argumento seja passado ele solicita o nome 
do usuário. 

 Caso o usuário  \textit{não}  seja o superusuário e se o \textit{/etc/nologin} 
existir, o conteúdo deste arquivo será listado na tela e o login será 
terminado. Isso é tipicamente usado para prevenir acessos quando o sistema 
está sendo desligado. 

 Caso restrições especiais de acesso sejam especificadas 
para o usuário em  \textit{/etc/usertty}, estas devem ser atendidas ou a tentativa 
de acesso será negada e um registro será incluído no  \textbf{syslog .} Veja a seção 
"Restrições Especiais de Acesso". 

 Caso o usuário seja o superusuário, 
então o acesso deve ocorrer em um terminal listado no  \textit{/etc/securetty}. 
Falhas serão listadas através do \textbf{syslog .} 

 Após a checagem destas condições, 
a senha será solicitada e checada (caso uma senha seja exigida para este 
usuário). Dez tentativas serão permitidas antes que \textbf{login} morra, porém 
após as primeiras três, a resposta começa a ficar bastante lenta. Falhas 
de acesso são reportadas através do  \textbf{syslog .} Esta facilidade é usada ainda 
para reportar acessos do superusuário bem sucedidos. 

 Caso o arquivo  \textit{.hushlogin} 
exista, então um acesso sem mensagens é executado (isso desabilita a checagem 
de emails e a apresentação da mensagem do último acesso e a mensagem do 
dia). De outra forma, caso  \textit{/var/log/lastlog} exista, o último acesso é 
listado (e o acesso atual é registrado). 

 Tarefas administrativas aleatórias, 
como a configuração de UID e GID do terminal são executadas. A variável 
de ambiente TERM é preservada, caso exista (outras variáveis de ambiente 
são preservadas se a opção \textbf{-p} é usada).  Então as variáveis de ambiente 
 HOME, PATH, SHELL, TERM, MAIL, e LOGNAME são configuradas. PATH padrões 
como \textit{/usr/local/bin:/bin:/usr/bin:.} para usuários normais, e  \textit{/sbin:/bin:/usr/sbin:/usr/bin} 
para o root. Por fim, se não é um acesso "quieto", a mensagem do dia é 
listada e um arquivo com o nome do usuário em \textit{/var/spool/mail} será checado, 
e uma mensagem será apresentada caso o arquivo tenha um tamanho diferente 
de zeros. 

 Então o interpretador de comandos do usuário é iniciado. Caso 
nenhum interpretador tenha sido especificado para o usuário no  \textbf{/etc/passwd}, 
então \textbf{/bin/sh} será usado. Caso não haja nenhum diretório especificado no 
\textit{/etc/passwd}, então o \textit{/} é usado (o diretório pessoal é checado para o arquivo 
 \textit{.hushlogin,} descrito acima).  \subsubsection{OPÇÕES }
\begin{dispitems}
\item [\textbf{-p}  ] Usado por \textbf{\textsf{getty}(8)} para dizer ao 
\textbf{login} não destruir o ambiente. 
\item [\textbf{-f}  ] Usado para evitar uma segunda autenticação 
de acesso. Isso  \textbf{não} funciona para o superusuário, e não parece funcionar 
muito bem sob Linux. 
\item [\textbf{-h}  ] Usado por outros servidores (por exemplo \textbf{\textsf{telnetd}(8)}) 
para passar o nome para o servidor remoto para \textbf{acessos} que podem ser colocados 
em utmp e wtmp.  Somente o superusuário pode usar esta opção. 
\end{dispitems}


  \subsubsection{RESTRIÇÕES 
ESPECIAIS DE ACESSO }
O arquivo \textit{/etc/securetty} lista os nomes dos ttys onde 
o superusuário tem permissão de acesso. Um nome de um dispositivo terminal 
sem o prefixo /dev/ deve ser especificado em cada linha. Caso o arquivo 
não exista, o superusuário não poderá acessar o sistema em qualquer terminal. 


O arquivo \textit{/etc/usertty} especifica restrições de acessos adicionais para 
usuários específicos. Caso este arquivo não exista, nenhuma restrição adicional 
será aplicada. O arquivo consiste de uma seqüência de seções , com três 
tipos possíveis: CLASSES, GRUPOS e USUÁRIOS. Uma seção de CLASSES define 
classes de padrões de tty e nomes de máquinas. Uma seção GRUPO define ttys 
e nomes de máquinas permitidas em grupos e uma seção de USUÁRIOS define 
ttys e nomes de máquinas para usuários. 

Cada linha neste arquivo não pode 
ser maior que 255 caracteres. Comentários começam com o caracter \# e se 
estendem até o final da linha. 

\subsubsection{Seção CLASSES}Uma seção de CLASSE começa 
com a palavra CLASSES no início da linha em maiúsculas. Cada linha seguinte 
até o início de uma nova seção ou o fim do arquivo consistem de seqüências 
de palavras separadas por tabulações ou espaços. Cada linha define uma 
classe de ttys e nomes de máquinas. 

A palavra no início da linha torna-se 
uma definição de um nome coletivo para os ttys e nomes de máquinas especificados 
no restante da linha. O nome coletivo pode ser usado em quaisquer seções 
subseqüentes da seção GRUPOS ou USUÁRIOS. Nenhuma classe pode ocorrer como 
uma parte da definição de outra classe para evitar problemas com classes 
recursivas. 

Um exemplo da CLASSES: 

 CLASSES 

 classe1		tty1 tty2 

 classe2		tty3 
@.dominio.com.br 

  

Isso define as classes  \textit{classe1} e \textit{classe2} e seus correspondentes 
lados direitos. 



  \subsubsection{Seção GRUPOS }Uma seção GRUPOS define os ttys e máquinas 
autorizados em uma base de grupos. Caso o usuário seja membro de um grupo 
Unix de acordo com o  \textit{/etc/passwd} e \textit{/etc/group} e tal grupo seja mencionado 
na seção  \textit{/etc/usertty} então o usuário obterá os mesmos acessos que o 
seu grupo. 

Uma seção de GRUPOS inicia com a palavra GROUPS em maiúsculas 
no início da linha, e cada linha subseqüente é uma seqüência de palavras 
separadas por espaços ou tabulações. A primeira palavra na linha é o nome 
do grupo e o restante da linha especifica os ttys e nomes de máquinas 
onde os membros do grupo têm o acesso permitido. Estas especificações podem 
envolver o uso das classes definidas nas prévias seções CLASSES. 

Exemplo. 


 GROUPS 

 sys		tty1 @.dominio.edu.br 

 stud		classe1 tty4 

  

Este exemplo especifica 
que os membros do grupo  \textit{sys} podem acessar o sistema no tty1 e a partir 
das máquinas do domínio dominio.edu.br. Usuários do grupo \textit{stud} podem acessar 
o sistema a partir de máquinas/ttys definidos na classe1 ou a partir da 
tty4. 



  \subsubsection{Seção USUÁRIOS }Uma seção USUÁRIOS começa com a palavra USERS em 
maiúsculas no início da linha, e cada linha subseqüente é uma seqüência 
de palavras separadas por espaços ou tabulações. A primeira palavra na 
linha é o nome do usuário e o restante da linha especifica as ttys e nomes 
de máquinas onde os membros do grupo tem o acesso permitido. Estas especificações 
podem envolver o uso das classes definidas nas prévias seções CLASSES. 
Caso nenhum cabeçalho seja especificado no início do arquivo, a primeira 
seção padroniza a seção USERS. 

Um exemplo da seção USERS: 

 USERS 

 cata		tty1 
@130.225.16.0/255.255.255.0 

 fabi		tty3 classe2 

  

Isso permite que o usuário cata 
somente acesse o sistema a partir do terminal tty1 e a partir dos endereços 
IP na faixa de 130.225.16.0 - 130.225.16.255, e o usuário fabi tem permissão 
de acesso a partir de tty3 e tudo o mais que estiver especificado em classe2. 


Haverá uma linha na seção USUÁRIOS começando com um nome de usuário com 
*. Esta é a regra padrão e será aplicada a qualquer usuário que não se 
enquadre em outra linha. 

Caso um usuário se enquadre tanto em  USERS e 
GROUPS, então o usuário terá permissões de acesso iguais a união de ttys 
e máquinas mencionados nestas especificações. 

  \subsubsection{Origens }Os padrões de tty 
e nome da máquina usados na especificação das classes, grupo e usuários 
são chamados origens. Uma origem pode conter os seguintes formatos: \begin{dispitems}
\item [o ] O 
nome de um dispositivo tty sem o prefixo /dev/, por exemplo tty1 ou ttyS0. 

\end{dispitems}


\begin{dispitems}
\item [o ] O padrão @nome\_da\_máquina\_local, significando que o usuário tem permissão 
de executar telnet/rlogin de uma máquina local para a mesma máquina. Isso 
permite ao usuário executar por exemplo: xterm -e /bin/login. 
\end{dispitems}


\begin{dispitems}
\item [o ] Um sufixo 
de nome de domínio tal como @.algum.dom.br, significando que o usuário tem 
permissão de executar telnet/rlogin de qualquer máquina do domínio de 
sufixo  \.algum.dom.br 
\end{dispitems}


\begin{dispitems}
\item [o ] Uma faixa de endereços Ipv4, escritos no formato @x.x.x.x/y.y.y.y 
onde x.x.x.x é o endereço IP na notação decimal, quádrupla, separada por 
., e y.y.y.y é uma máscara de bits com a mesma notação especificando quais 
bits do endereço devem ser comparados com o endereço IP da máquina remota. 
Por exemplo @130.225.16.0/255.255.254.0 significa que o usuário pode executar 
rlogin/telnet de qualquer máquina cujo IP tenha endereço na faixa 130.225.16.0-130.225.17.255. 

\end{dispitems}


Quaisquer das origens acima podem ter um prefixo com uma especificação de 
tempos como por exemplo: 

timespec    ::= '[' $<$dia-ou-hora$>$ [':' $<$ dia-ou-hora $>$]* 
']' 

 day         ::= 'mon' $|$ 'tue' $|$ 'wed' $|$ 'thu' $|$ 'fri' $|$ 'sat' $|$ 'sun' 

 hour        ::= 
'0' $|$ '1' $|$ ... $|$ '23' 

 hourspec    ::= $<$hora$>$ $|$ $<$hora$>$ '-' $<$hora$>$ 

 day-or-hour ::= $<$dia$>$ $|$ $<$hora\_esper$>$ 


 

Por exemplo, a origem [mon:tue:wed:thu:fri:8-17]tty3 significa que o acesso 
é permitido de Segunda a Sexta-feira entre 8:00 e 17:59  no tty3.  Isso 
também mostra uma faixa de horário a-b que inclui todos os momentos entre 
a:00 e b:59.  Uma especificação única de hora (como 10) significa o tempo 
decorrido entre 10:00 e 10:59. 

Nenhuma especificação de prefixo de tempo 
para um tty ou máquina significa que o acesso daquela origem é permitida 
a qualquer tempo. Caso seja informado um prefixo de tempo esteja seguro 
em especificar um conjunto de dias e uma ou mais faixas de horas. Uma especificação 
não pode incluir qualquer espaço em branco. 

Caso nenhuma regra padrão seja 
informada então usuários que não coincidam com qualquer linha \textit{/etc/usertty} 
têm permissão de acesso de qualquer local no comportamento padrão. 

 \subsubsection{ARQUIVOS 
}
\textit{/var/run/utmp} \textit{/var/log/wtmp} \textit{/var/log/lastlog} \textit{/usr/spool/mail/*} \textit{/etc/motd} 
\textit{/etc/passwd} \textit{/etc/nologin} \textit{/etc/usertty} \textit{.hushlogin}  \subsubsection{VEJA TAMBÉM }
\textbf{\textsf{init}(8)}, 
\textbf{\textsf{getty}(8)}, \textbf{\textsf{mail}(1)}, \textbf{\textsf{passwd}(1)}, \textbf{\textsf{passwd}(5)}, \textbf{\textsf{environ}(7)}, \textbf{\textsf{shutdown}(8)}  \subsubsection{BUGS 
}


 A opção não documentada de BSD \textbf{-r} não é suportada. Isso pode ser requerido 
por alguns programas \textbf{\textsf{rlogind}(8)\textbf{}.}  \subsubsection{AUTOR }
Derivado do login BSD 5.40 (5/9/89) 
por Michael Glad (glad@daimi.dk) do  HP-UX  

Portado  para o Linux 0.12: Peter 
Orbaek (poe@daimi.aau.dk)  
