Os utilizadores de computadores cliente podem utilizar o utilitário chmod para definir os bits de modo de ficheiro setuid (definir identificador de utilizador na execução), setgid (definir identificador de grupo na execução) e bits de modo de ficheiro permanentes em ficheiros ou directórios armazenados numa partição de sistema de ficheiros NTFS e partilhados no Servidor para NFS. Quando o ficheiro ou directório é acedido subsequentemente por um cliente baseado em UNIX, será aplicada a semântica padrão para esses bits. Por exemplo, um ficheiro executável que tenha o bit setuid definido será executado sob o ID de utilizador (UID) do proprietário do ficheiro, e não sob o UID do utilizador que está a executar o ficheiro.

Normalmente, quando o bit setuid ou setgid é definido num ficheiro, o proprietário ou grupo do ficheiro é alterado para o proprietário ou ID de grupo (GID) em que o ficheiro será executado. A menos que um utilizador tenha o direito de restaurar ficheiros ou directórios, a segurança do Windows permite a um utilizador assumir a posse de um ficheiro (se a permissão do ficheiro o permitir), mas não transferir a posse para um segundo utilizador. Consequentemente, para utilizar chown ou chgrp para alterar o proprietário ou grupo de um ficheiro para outro utilizador ou grupo, tem de ter o privilégio que permite restaurar ficheiros e directórios. Por predefinição, este privilégio é atribuído aos membros dos grupos Administradores e Operadores de Cópia de Segurança, embora possa ser atribuído a outros grupos ou a utilizadores individuais. Além disso, a conta do utilizador a executar chown ou chgrp e o utilizador ou grupo para o qual a está a ser transferida a posse têm de ser correctamente mapeados através a Pesquisa do Active Directory ou Mapeamento de Nomes de Utilizador.

Alguns servidores NFS (Network File System) baseados em UNIX aplicam interpretações especiais ou restrições para os bits setuid, setgid e bits permanentes. Algumas versões de UNIX, por exemplo, forçam o bloqueio obrigatório num directório com o bit setgid definido mas sem permissões de execução. O Servidor para NFS não implementa interpretações especiais ou restrições na utilização destes bits.

Problema de segurança

Os comportamentos dos bits setuid e setgid de UNIX normais apresentam um problema de segurança conhecido no UNIX. Um intruso pode explorar o comportamento dos bits setuid e setgid substituindo um ficheiro executável por um cavalo de Tróia e executando, em seguida, o ficheiro executável. O ficheiro executável é executado com os direitos do proprietário, em vez de ser executado como o intruso.

Para impedir este problema de segurança já conhecido, por predefinição, os bits setuid e setgid são desactivados e não afectarão as definições de UID ou GID se o ficheiro ou directório tiver as seguintes características:

  • Um ou ambos os bits que se seguem estão definidos: setgid ou setuid.

  • O ficheiro ou directório permite escrita no grupo, execução do grupo, escrita global ou execução global.

Alguns clientes poderão considerar esta medida de segurança problemática por ser diferente do comportamento normal de UNIX, embora o comportamento normal dos bits setuid e setgid de UNIX não seja especificado como parte do protocolo NFS.

Alterar o comportamento dos bits setuid e setgid

Utilize o procedimento seguinte para alterar o comportamento dos bits setuid e setgid:

Para alterar o comportamento dos bits setuid e setgid
  1. Abra o Editor de Registo.

  2. Defina a seguinte chave de registo:

    HKEY_Local_Machine\System\CurrentControlSet\Services\NfsSvr\Parameters\SafeSetUidGidBits = (DWORD)

    • Um valor de 1 faz com que os bits setuid e setgid tenham um comportamento mais seguro.

    • Um valor de 0 causa o comportamento padrão de UNIX.


Sumário