O serviço syslog, que grava mensagens de log criadas pelo kernel e por outros serviços em vários arquivos de log, no console e / ou em outros destinos, é executado sob sua própria conta de usuário especial. O mesmo acontece com muitos outros serviços. Isso é para implementar o princípio do menor privilégio :
Para minimizar o possível impacto de um serviço comprometido ou com defeito (por exemplo, um serviço que possui um bug que por sua vez é explorado por um invasor, ou um serviço que possui um bug que causa é fazer coisas indesejadas aleatórias ou um serviço que foi deliberadamente projetado por um desenvolvedor maligno para fazer coisas ruins), você deseja que cada serviço tenha acesso apenas ao que precisa para sua operação e nada mais.
Em qualquer sistema operacional unix (que inclui todas as distribuições GNU / Linux, como o Ubuntu), você pode atribuir privilégios mais facilmente (que é principalmente o direito de ler e / ou gravar de / em determinados arquivos ou coisas semelhantes a arquivos, como nós do dispositivo) com base em usuários e grupos. Existem outras possibilidades, mas elas costumam ser mais entediantes e propensas a erros, ou funcionam apenas em contextos específicos.
Portanto, o serviço syslog é executado na conta de usuário syslog. Se agora, por exemplo, um invasor pode fazer com que o serviço syslog faça o que eles mandam, em vez do que deveria, o serviço syslog ainda está restrito (imposto pelo kernel com base na conta do usuário, não imposto pelo syslog próprio software, que seria inútil porque está comprometido) para gravar apenas nos arquivos de log (os únicos arquivos aos quais o usuário do syslog tem acesso de gravação). Assim, o invasor não pode usar o serviço syslog comprometido para, por exemplo, alterar o conteúdo de um site ou banco de dados hospedado no mesmo computador, porque os arquivos relevantes são configurados para serem graváveis apenas por um conjunto específico de outro usuário (humano ou sistema ) contas, não pela conta do usuário syslog.
Para causar mais danos do que apenas excluir / modificar os arquivos de log e ler os arquivos "públicos" (com permissão de "leitura" para todos), o invasor precisará primeiro explorar adicionalmente um segundo bug, no kernel ou em algum software instalado para executar com privilégios diferentes do usuário que o chamou ( setuid ) e, assim, obter privilégios adicionais ( escalonamento de privilégios ).
O
users
comando que você usou, de acordo com
sua página de manual , mostra apenas os usuários que estão
conectados no momento . Como o usuário syslog é um
usuário do sistema , ele nunca efetuará login, portanto nunca aparecerá nesta lista. Você pode procurar no arquivo
/etc/passwd
ou usar qualquer um dos outros métodos descritos
aqui para obter uma lista de
todos os usuários (humanos e do sistema) em seu sistema.