ls leva as configurações de cor da variável de ambiente LS_COLORS . dircolors é apenas uma maneira conveniente de gerar essa variável de ambiente. Para que esta variável de ambiente tenha efeito em todo o sistema, coloque-a no arquivo de inicialização do seu shell.
Para bash , você coloca isso em /etc/profile :
# 'dircolors' prints out 'LS_COLORS='...'; export LS_COLORS', so eval'ing
# $(dircolors) effectively sets the LS_COLORS environment variable.
eval "$(dircolors /etc/DIR_COLORS)"
Para zsh , você pode colocá-lo em /etc/zshrc ou organizar zsh para ler /etc/profile na inicialização. Sua distribuição pode ter zsh fazer isso já. Eu só trouxe isso para apontar que definir dircolors para todos realmente depende do shell que eles usam.
Quanto a onde dircolors obtém suas configurações, quando você não especifica um arquivo, ele usa apenas alguns padrões internos.
Você pode usar os códigos de escape de 256 cores de xterm em seu arquivo dircolors, mas esteja ciente de que eles só funcionarão para terminais xterm compatíveis. Eles não funcionarão no console de texto do Linux, por exemplo.
O formato para 256 códigos de escape de cor é 38;5;colorN para cores de primeiro plano e 48;5;colorN para cores de fundo. Então, por exemplo:
.mp3 38;5;160 # Set fg color to color 160
.flac 48;5;240 # Set bg color to color 240
.ogg 38;5;160;48;5;240 # Set fg color 160 *and* bg color 240.
.wav 01;04;05;38;5;160;48;5;240 # Pure madness: make bold (01), underlined (04), blink (05), fg color 160, and bg color 240!