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 / 问题

All perguntas(unix)

Martin Hope
jsx97
Asked: 2024-11-06 20:19:04 +0800 CST

Aspas em nomes de arquivo. Eles podem mexer com aspas em código shell?

  • 4

Até onde eu sei, um nome de arquivo seguro e portátil pode consistir em aA-zZ 0-9 hífen e sublinhado apenas. Ao mesmo tempo, se nos afastarmos das práticas seguras de nomeação de arquivos, podemos usar caracteres como ! ? $ % " ' /e assim por diante.

Minha pergunta é sobre aspas, isto é, "e '. Elas não são mais perigosas do que, por exemplo, $ou /? Por exemplo, se um nome de arquivo contém espaços e precisamos copiar tal arquivo, colocaríamos seu nome entre aspas:

cp "file with spaces" folder_without_spaces

E por isso eu me questiono: as aspas em um nome de arquivo não podem atrapalhar as aspas no código shell às vezes?

Por exemplo, você tem

aaa aaa ccc.txt
aaa "xxx" ccc.txt

e então você usa

for f in *.txt; do mv "$f" backup_dir; done

e então "Bam!" - algo quebrou. Nada está quebrado, na verdade, neste exemplo em particular (pelo menos no Zsh), mas espero que você tenha entendido o que eu quero dizer.

zsh
  • 1 respostas
  • 41 Views
Martin Hope
tehnutz
Asked: 2024-11-06 17:24:37 +0800 CST

qual nó retorna o caminho para o nó, mas não se eu executar em su - user -s /bin/bash -c 'which node'

  • 5

Quando executo which nodeo comando funciona, mas se eu executo su - username -s /bin/bash -c 'which node'ele retorna vazio. Eu tentei de tudo sob o sol e não consigo fazer funcionar.

Eu até tenteisu - username -s /bin/bash -c 'source ~/.bashrc ; which node'

root@vps-151c25b9:~# which node
/root/.nvm/versions/node/v20.18.0/bin/node
root@vps-151c25b9:~# su - username -s /bin/bash -c 'which node'
root@vps-151c25b9:~#
root@vps-151c25b9:~# su - username -s /bin/bash
username@vps-151c25b9:~$ which node
/home/username/.nvm/versions/node/v20.18.0/bin/node
username@vps-151c25b9:~$

O que estou fazendo errado? Por que o node não aparece quando executado com su ?

Editar: Acabei de perceber que quando corro

su - username -s /bin/bash -c "echo $PATH"

Eu pego o caminho de root, não do usuário username. Embora roottambém tenha nvm& nodee ele também não encontra isso.

Edição 2: Tentei usar aspas simples para que não expandisse $PATHe obtive o caminho correto, incluindo o diretório nvm:

su username -c 'echo $PATH'

mas quando eu tento

su username -c 'source ~/.bashrc ; which node'

ainda está vazio.

Edição 3: Eu tentei

su username -c '. ~/.profile ; which which'

(risos) e ele retornou /usr/bin/which, então o comando funciona, só não para o node.

Resposta: Eu executei o seguinte e funcionou! Eu tive que carregar o NVM manualmente.

root@vps-151c25b9:~# su - username -c 'export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" ; [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" ; which node'
/home/username/.nvm/versions/node/v20.18.0/bin/node

Obrigado a todos pela ajuda :)

bash
  • 1 respostas
  • 39 Views
Martin Hope
Daniel
Asked: 2024-11-06 11:51:58 +0800 CST

Passando um contexto de partição LUKS desbloqueado do GRUB para o Linux?

  • 5

Pergunta

No GRUB, é possível usar o cryptomountcomando para montar uma partição LUKS.

Existe uma maneira de passar esta partição descriptografada para o Linux de forma que ela apareça como uma /dev/mapper/xxxentrada do mapeador de dispositivos ( ) sem precisar executar cryptsetup luksOpen?

Se não for possível com o GRUB, existem outros bootloaders que suportam isso?

Notas

Algumas distribuições suportam parâmetros cryptdevice/cryptkey , porém isso não parece ser um parâmetro padrão do kernel Linux (e não é suportado pela distribuição que eu uso).

Há também o dm-mod.createparâmetro kernel, mas parece que ele só suporta senhas em texto simples (visíveis em /proc/cmdline) ou usa uma entrada de chaveiro Linux.

Ambos os métodos precisariam descriptografar a partição novamente para que o Linux a montasse, certo? Ou então por que eles precisariam da chave?

encryption
  • 1 respostas
  • 6 Views
Martin Hope
F.X.
Asked: 2024-11-06 03:24:34 +0800 CST

A VRAM suportada por RAM de uma iGPU é contabilizada nas estatísticas regulares de memória do Linux?

  • 6

GPUs integradas (iGPUs) usam a RAM do sistema para armazenar VRAM da GPU. Como saber o uso de VRAM da iGPU? explica o uso de ferramentas específicas da GPU para monitorar a quantidade de VRAM, mas estou interessado em saber se a quantidade correspondente de uso de RAM aparece para iGPUs (e não apareceria para GPUs discretas porque é armazenada em uma VRAM física separada da memória principal).

Por exemplo, se meu processo alocasse um pedaço de 512 MB de VRAM:

  • As estatísticas de memória padrão do Linux (como as mostradas pelo htopou freeque não mostram nada sobre GPUs, pelo que sei) mostram isso como parte da quantidade de RAM alocada pelos processos?

  • Ou isso é contabilizado globalmente em algum outro lugar no uso de RAM do sistema?

  • Ou ele efetivamente "desaparece" do sistema, o que significa que a quantidade total de RAM utilizável (relatada por free) seria variável?

linux
  • 1 respostas
  • 23 Views
Martin Hope
jarno
Asked: 2024-11-06 02:13:07 +0800 CST

Quando o apt instala os pacotes manualmente?

  • 6

Quando faço downgrade de pacotes usando comando, sudo apt install <pkg>/<target-release> <pkg>/<target-release> ...ele parece manter o estado automático/manual dos pacotes. Normalmente, quando digo explicitamente aos pacotes para instalar, ele faz com que os pacotes sejam instalados manualmente. Qual é a lógica?

debian
  • 1 respostas
  • 34 Views
Martin Hope
Ronnie
Asked: 2024-11-06 01:28:27 +0800 CST

Em uma lista de caminhos de arquivo em um arquivo RTF, conte e classifique a saída com base no número de ocorrências de cada nome de arquivo

  • 6

Tenho um arquivo RTF que contém uma lista de caminhos de arquivos PDF. Como

Category1:
./Folder1/Folder2/1.pdf:18
./Folder3/2.pdf:18
./Folder5/4.pdf:10

Category2:
./Folder3/2.pdf:18
./Folder5/4.pdf:10

Category3:
./Folder1/Folder2/1.pdf:18
./Folder5/4.pdf:10

Category4:
./Folder6/7.pdf:10
./Folder5/4.pdf:10
./Folder3/2.pdf:18

SideNote: O número num depois de *.pdf:num pode ser ignorado. O caminho completo da pasta também pode ser ignorado. A entidade de interesse é apenas o nome do arquivo.pdf

Gostaria de ter uma saída classificada com relação aos nomes de PDF e seu número de ocorrências

A saída estaria no formato (nome do arquivo: número de vezes que o arquivo apareceu no rtf), como:

4.pdf :  4
2.pdf :  3

Nota 2: Qualquer arquivo mencionado menos de 3 vezes pode ser ignorado.

text-processing
  • 4 respostas
  • 65 Views
Martin Hope
npr_se
Asked: 2024-11-06 00:12:33 +0800 CST

Várias VLANs, uma rede. Ou: Várias VLANs, mesma rede

  • 5

Sou um provedor. Estou sem IP4s. Não há mais alocações de IP4 disponíveis.
No entanto, estou usando 4 IPs por 1 cliente porque os switches de rede de fibra estão usando VLANs para rotear para os clientes.

Como posso, por exemplo, dar a 127 VLANs diferentes, cada uma com um IP exclusivo de /25, de modo que cada uma seja roteada para lá?

Digamos que meu IP seja 3.8.3.1/25. Como aloco 3.8.3.2 para vlan 3001, 3.8.3.3 para vlan 3002, ... 3.8.3.127 para vlan 3127?

  • Requisito 1: Esses IPs precisam ser capazes de se comunicar entre si.
  • Requisito 2: DHCP
  • Requisito 3: Deve ser compatível com modelagem de tráfego.
linux
  • 1 respostas
  • 35 Views
Martin Hope
metablaster
Asked: 2024-11-05 03:38:06 +0800 CST

Os pacotes build-deps precisam permanecer instalados ou podemos removê-los?

  • 5

Geralmente sigo o SimpleBackportCreation para criar backports personalizados para vários pacotes que não existem no branch estável.

Um dos passos é instalar build-depscom sudo mk-build-deps --install --removecomando.

A questão é: depois que o backport estiver instalado, preciso manter build-depsos pacotes instalados ou é seguro excluí-los depois que o backport personalizado estiver instalado?

Quero principalmente economizar espaço, mas o motivo secundário é que atualizar um backport pode desinstalar/atualizar build-depsuma versão anterior, mas a compilação para a nova versão do backport pode falhar, então estou pensando se, nesse caso, build-depsos pacotes removidos afetarão o backport antigo criado inicialmente e já instalado.


Resumindo, posso purgar *-build-deps?

debian
  • 1 respostas
  • 20 Views
Martin Hope
Avram
Asked: 2024-11-05 02:15:56 +0800 CST

Faça com que bootpd e bootpc se comuniquem com sucesso

  • 9

O bootpc e o bootpd atuais do Debian (do bootp ) não parecem realmente funcionar juntos no ambiente do kernel Linux de hoje. Parece haver um problema 🐔/🥚; bootpdenvia as respostas como pacotes UDP unicast para o endereço IP ainda não configurado. O kernel do cliente então os descarta sem entregar ao bootpcsoquete do cliente, porque esse endereço IP não é (ainda) um endereço local válido no host.

Como isso funcionou?

  • Existe algum parâmetro do kernel ou outra modificação que pode fazer com que o kernel envie esses pacotes ao bootpcprocesso?
  • Existe uma configuração bootpdque fará com que ele use todos os endereços IP de destino 1 ou 0 em vez do endereço IP unicast do cliente ainda não configurado?

Temos um cliente em potencial com uma grande infraestrutura bootp não-DHCP. Suporte bootp old-school é um dos requisitos deles.

Detalhes do problema

  • bootpdenvia seus pacotes de resposta como pacotes unicast para o endereço MAC do cliente bootpc, usando um valor de endereço IP de destino do endereço que também está na carga útil, informando ao cliente para se configurar.
  • O kernel então descarta esses pacotes, em vez de entregá-los ao bootpcprocesso que os solicitou.
  • bootpcabriu corretamente um soquete de escuta para 0.0.0.0:68 0.0.0.0:*(veja a saída netstat abaixo)
  • Verifiquei essa análise de várias maneiras:
    • Eu corri tcpdumpe posso ver as respostas chegando ao NIC
    • Eu executei dropwatche vi os pacotes sendo descartados com o motivo IPINADDRERROR, que basicamente significa "endereço IP inválido"
    • Posso enganar bootpdpara usar 0.0.0.0 como o endereço IP de destino omitindo uma atribuição de IP real; quando faço isso, bootpcobtenho as respostas e as processa. No entanto, isso não ajuda porque o cliente não obtém um endereço IP
    • Eu tentei adicionar o endereço IP à interface enquanto bootpcela faz requisições. Depois que eu adiciono, a próxima resposta chega ao processo.
  • Eu também tentei a bootpc --serverbcastopção. Isso falha por um motivo similar:
    • bootpdenvia as respostas para o endereço de transmissão da sub-rede (por exemplo, 10.0.43.255)
    • Como o endereço IP e a máscara de sub-rede ainda não estão configurados em uma interface, o kernel não tem motivos para considerar isso um endereço válido para si mesmo.
  • Aqui está nossa bootptabconfiguração atual:
.vs-default:\
  :sm=255.255.254.0:\
  :gw=10.0.42.1:\
  :ds=10.0.42.1:\
  :hn:
client-ad02-vs:\
  ht=1:\
  ha=0xea4a1fad0002:\
  ip=10.0.42.31:\
  tc=.vs-default:

Saída do Netstat mostrando bootpc's listening socket:

$ sudo netstat -unlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
udp        0      0 0.0.0.0:68              0.0.0.0:*                           2295/bootpc         

Solução alternativa para o Hacky

Eu inventei uma solução alternativa que parece hackeada. Em particular, acho que ela aproveita um comportamento não intencional, talvez não possamos contar com ela para funcionar no futuro:

  • o módulo iptables conntrack tem uma correspondência ctstatecom um valor de DNAT.
  • Isso pode ser usado para aceitar pacotes que tenham um endereço IP de destino não reconhecido
  • Não creio que a intenção seja corresponder a IPs de horário de verão arbitrários:
    • Ele só pode ser usado com pacotes que foram NAT'd pelo kernel do mesmo host
    • Acredito que seu propósito seja corresponder a pacotes que tiveram seus endereços reescritos (o que não estamos fazendo), mas é uma implementação "barata" que ignora a tabela de mapeamento NAT em vez de verificar se há uma entrada que corresponde a esse pacote específico.
    • Estou preocupado que isso seja removido ou reescrito para ser menos promíscuo no futuro
    • Para que isso funcione, preciso mapear a porta desses pacotes para a porta DST existente, apenas para obter dados de estado da conexão NAT no pacote. Caso contrário, --ctstate DNATnão se aplica ao pacote.

Histórico/Due Diligence

  • Nosso ambiente de testes usa o Debian 12 no Linux 6.1.0.
  • Nossos hosts de teste são de imagens de VM prontas para uso do UTM Debian 12
  • bootpdtem muito poucas opções de cli, nenhuma das quais envolve respostas, portas ou endereços. A página do manual não menciona "broadcast" ou "unicast", e referências a "address" ou "destination" são poucas e não relevantes.
  • Nosso produto atual é o Debian 12 em um kernel Linux 5.19.9 personalizado (e se comporta da mesma maneira)
  • A conectividade IP está funcionando totalmente entre o cliente e o servidor do ambiente de teste
  • bootpcse recusa a enviar solicitações, a menos que o seguinte seja verdadeiro:
    • Não há nenhum endereço IP roteável na interface (169.254/16 é permitido, embora eu tenha tentado sem ele)
    • Há uma rota padrão 0/0 apontando para a interface onde o servidor bootp é esperado
      • Caso contrário, diznetwork unreachable
      • Nota: especificar --dev <iface>na bootpclinha de comando não ajuda com isso
  • Ainda estou trabalhando na avaliação de bootptabopções de configuração para ver se há alguma que afete isso. Não encontrei uma boa referência para elas, a bootptabpágina man do man é muito concisa sobre elas.

Solução alternativa

Consegui fazer isso funcionar com uma iptablessolução menos complicada: adicionei uma regra NAT que corresponde à porta UDP 68 (bootpc) e mapeia o endereço IP de destino para 255.255.255.255 (e mantém a mesma porta UDP).

Isso funciona, mas considero isso hacky. Claramente não é assim que o protocolo deve funcionar, então eu preferiria uma solução "real", se possível.

networking
  • 1 respostas
  • 47 Views
Martin Hope
Jacques R
Asked: 2024-11-04 21:50:47 +0800 CST

Arquivo desconhecido chamado 1

  • 6

Eu regularmente tenho um arquivo criado sem querer. Ele não é rastreado pelo git no meu projeto. Ele é chamado apenas de 1 e contém apenastrue

O que devo verificar para saber o que faz com que esse arquivo seja criado?

ksh
  • 1 respostas
  • 223 Views
Prev
Próximo

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