AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 781280
Accepted
gcb
gcb
Asked: 2024-08-03 00:14:37 +0800 CST2024-08-03 00:14:37 +0800 CST 2024-08-03 00:14:37 +0800 CST

O que pode estar fazendo com que ls ignore LS_COLORS para diretórios setgid (sg, g+s)?

  • 772

Tentando mostrar o setgid em uma cor diferente e falhando.

tentei com o mínimo: LS_COLORS="sg:41;41" ls -la --color=automas ainda obtive cores de diretório regulares para um chmod g+sdiretó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.

l não está mostrando cor para g+s

o mesmo com a árvore só para ter certeza de que isso não é algo isolado parals árvore não mostrando cor para g+s

nos testes acima eu sutambém uso, porque ambos sue sgsã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>.

ls
  • 2 2 respostas
  • 97 Views

2 respostas

  • Voted
  1. Best Answer
    Gilles 'SO- stop being evil'
    2024-08-03T05:10:37+08:002024-08-03T05:10:37+08:00

    Isso não tem nada a ver com o bash: o lscomando decide como formata a saída. GNU ls obtém suas configurações de cores da LS_COLORSvariável, que deve ser definida pelo dircolorscomando. A saída de dircolors -pé a coisa mais próxima da documentação do dircolors.

    # Below are the color init strings for the basic file types.
    …
    #FILE 00 # regular file: use no color at all
    …
    DIR 01;34 # directory
    …
    SETUID 37;41 # file that is setuid (u+s)
    SETGID 30;43 # file that is setgid (g+s)
    CAPABILITY 30;41 # file with capability
    STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
    OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
    STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
    # This is for files with execute permission:
    EXEC 01;32
    

    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.

    • 4
  2. Pádraig Brady
    2024-08-03T05:53:39+08:002024-08-03T05:53:39+08:00
    $ dircolors -p | grep GID
    SETGID 30;43 # file that is setgid (g+s)
    

    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

    • 3

relate perguntas

  • Verifique o espaço em disco no Ubuntu (com ls)

  • zsh: "ls -S" não está funcionando na pasta Utilitários

  • Como converter datas de arquivo para um formato específico ao usar 'ls'

  • é canalizado ls o mesmo que ls -1?

  • Como usar a saída de ls para abrir o último arquivo modificado?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve