Tentando mostrar o setgid em uma cor diferente e falhando.
tentei com o mínimo:
LS_COLORS="sg:41;41" ls -la --color=auto
mas ainda obtive cores de diretório regulares para um chmod g+s
diretório setgid ().
Então tentei com dircolors
, primeiro produzi o "template" com dircolors -p > ~/.dircolors
, editei apenas a linha setgid eeval $(dircolors -b ~/.dircolors)
# ~/.dircolors
…
SETGID 30;44 # file that is setgid (g+s)
…
produz:
env | grep LS_
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;44:ca=00:tw=30;42:ow=30;44;01:st=30;44;01:ex=01;32:*.7z=01;31:*.ace=01;31:*.alz=01;31:*.apk=01;31:*.arc=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cab=01;31:*.cpio=01;31:*.crate=01;31:*.deb=01;31:*.drpm=01;31:*.dwm=01;31:*.dz=01;31:*.ear=01;31:*.egg=01;31:*.esd=01;31:*.gz=01;31:*.jar=01;31:*.lha=01;31:*.lrz=01;31:*.lz=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.lzo=01;31:*.pyz=01;31:*.rar=01;31:*.rpm=01;31:*.rz=01;31:*.sar=01;31:*.swm=01;31:*.t7z=01;31:*.tar=01;31:*.taz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tgz=01;31:*.tlz=01;31:*.txz=01;31:*.tz=01;31:*.tzo=01;31:*.tzst=01;31:*.udeb=01;31:*.war=01;31:*.whl=01;31:*.wim=01;31:*.xz=01;31:*.z=01;31:*.zip=01;31:*.zoo=01;31:*.zst=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:
tentei cores mais óbvias 41;41
(vermelho sobre vermelho), mas nada.
Funciona bem para arquivos , mas não para diretórios .
Aqui estão algumas capturas de tela. D1
é um diretório com setgid.
o mesmo com a árvore só para ter certeza de que isso não é algo isolado parals
nos testes acima eu su
também uso, porque ambos su
e sg
são extensões gnu bash não disponíveis em outros shells.
$ bash --version
GNU bash, version 5.2.26(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
$ ls --version
ls (GNU coreutils) 9.5
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
Isso não tem nada a ver com o bash: o
ls
comando decide como formata a saída. GNU ls obtém suas configurações de cores daLS_COLORS
variável, que deve ser definida pelodircolors
comando. A saída dedircolors -p
é a coisa mais próxima da documentação dodircolors
.Nas linhas citadas acima, “arquivo” significa um arquivo normal. Diretórios e outros arquivos não regulares são coloridos de acordo com seu tipo, não de acordo com suas permissões ou nome, exceto para diretórios fixos/outros graváveis, conforme especificado.
Não há configuração para diretórios setgid ou para diretórios com listas de controle de acesso peculiares.
Provavelmente deveríamos melhorar essa descrição para "arquivo normal".
As cores das notas podem ficar confusas e fora do padrão rapidamente à medida que as várias combinações de atributos de arquivo se combinam. Prefiro apenas destacar as partes apropriadas da listagem de formato longo padrão ls, com um script wrapper, que já destaca o SETGID para todos os tipos de arquivo. Ver:
https://www.pixelbeat.org/scripts/l