Seu exemplo não mostra o bit adesivo , mostra setgid (pegajoso é chmod +t
, você tem chmod g+s
.)
Tem certeza de que precisa disso? Parece errado para mim.
Setgid em um diretório significa que os arquivos criados nesse diretório terão o grupo do diretório, não o grupo primário do usuário , isso é bastante útil.
Mas o setgid em um arquivo normal e não executável não faz nada útil.
Sugiro remover o setgid de todos os arquivos (mas deixá-lo nos diretórios) assim:
find . -type f -exec chmod g-s {} \;
Ou você pode forçar um conjunto de permissões conhecidas em arquivos e diretórios usando:
find . \( -type d -exec chmod g=rwsx {} \; \) -o \( -type f -exec chmod g=rw {} \; \)
Da próxima vez, em vez de usar chmod -R g+s
ou find -exec chmod g+s {} \;
, faça o seguinte:
find . -type d -exec chmod g+s {} \;
para que isso afete apenas os diretórios.
Antecedentes
ls
colore os arquivos setgid porque, se o arquivo também for executável, ele será executado com permissões extras.
Acho que a ideia é que o realce amarelo e preto seja feito para que você olhe cuidadosamente para eles, para garantir que eles sejam os esperados, e não para um novo arquivo que foi instalado por um usuário mal-intencionado ou um rootkit ou algo.
Executar
find /usr -perm -2000
para ver alguns exemplos de programas que usam essas permissões.
No meu sistema, ele lista
/usr/bin/wall
/usr/bin/chage
/usr/bin/expiry
...
Por exemplo, o r-s
on /usr/bin/wall
$ ls -l /usr/bin/wall
-rwxr-sr-x 1 root tty 9888 2008-04-29 11:57 /usr/bin/wall
significa que o programa wall
pode gravar a saída no tty de qualquer usuário, mesmo que não esteja sendo executado como root.
Se depois de tudo isso, você realmente quiser mudar as cores, tente algo assim:
LS_COLORS=${LS_COLORS/sg=30;43:/sg=00:}
Onde você coloca depende da sua configuração, mas no final de ~ / .zshrc deve fazê-lo.
Por algum motivo, a remoção da entrada sg
(setgid) faz com que ela use as cores padrão, em vez de nenhuma cor especial.