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
Yakog
Asked: 2025-01-17 08:01:24 +0800 CST

Quais são os passos desde o momento em que você inicia o terminal até o momento em que o shell começa a escutar a entrada do teclado?

  • 5

Quais são exatamente os passos desde o momento em que inicio o pseudoterminal (CTRL+ALT+T) até o momento em que o shell começa a escutar a entrada do teclado?

Eu sei que isso acontece basicamente da seguinte maneira: o processo do terminal chama dev/pts/ptmx, então o lado escravo é criado (por exemplo /dev/pts/0) e então o processo do terminal se bifurca (eu acho?), configura uma sessão e executa o shell.

No entanto, estou curioso para saber exatamente como isso funciona.

O que mais me confunde nesse procedimento é o seguinte:

  1. Achei que meu emulador de terminal (pseudo-terminal) é, xterm-256colorjá que é isso que eu recebo quando digito echo $TERM. Então, xtermchamaria ptmx. No entanto, quando verifico o PPID do shell (bash), na verdade é /usr/libexec/gnome-terminal-server. Então, estou confuso, qual é a diferença entre esses dois? xtermPrimeiro bifurca/exec /usr/libexec/gnome-terminal-servere depois chama ptmxe depois bifurca/exec o shell, ou o quê?
  2. Eu pensei que a sessão fosse algo exclusivamente vinculado ao terminal. Ou seja, cada terminal tem apenas uma sessão e pronto. No entanto, quando eu investiguei mais a fundo, descobri que é "coisa do kernel" e que cada processo tem uma sessão, incluindo /usr/libexec/gnome-terminal-server. Por que ele então cria uma nova sessão para o bash e não usa apenas a do bash, /usr/libexec/gnome-terminal-serverjá que isso é, na verdade, um terminal?
  3. Como ele /usr/libexec/gnome-terminal-serversabe qual shell iniciar/executar (no meu caso bash)? Ele lê de algum lugar, posso mudar isso?

Estou curioso para saber exatamente como essas etapas funcionam.

Obrigado

bash
  • 1 respostas
  • 67 Views
Martin Hope
tresf
Asked: 2025-01-17 02:10:33 +0800 CST

Calcular deslocamento de bytes para unquashfs

  • 7

Estou tentando calcular o -ovalor para extrair um .AppImagearquivo usando unsquashfsarquiteturas/SOs estrangeiros, mas usando objdumpem vez de readelfpara tornar a solução mais compatível com SOs como o macOS.

unsquashfs

Usage:

-o BYTES, -offset BYTES
              skip BYTES at start of FILESYSTEM.  Optionally a suffix of K, M or G can be given to specify Kbytes, Mbytes or Gbytes respectively (default 0
              bytes).

Estou seguindo a orientação desta solução , que usa readelfpara calcular o -ovalor de deslocamento. Isso funciona muito bem no Ubuntu, mas não funciona no macOS devido à indisponibilidade geral de readelf.

No entanto, eu gostaria de usar objdumpif possible. Eu encontrei algumas perguntas que explicam como encontrar o ponto de entrada/deslocamento de um executável binário, mas não importa quais valores eu tente, não consigo encontrar uma maneira de obter o valor correto para unsquashfs. Estou convertendo valores hexadecimais para decimais, mas nada de objdumpcorresponde aos readelfvalores abaixo, mesmo usando a equação do Employed Russian ehdr->e_entry - phdr->p_vaddr + phdr->p_offset. .

  • https://stackoverflow.com/a/71367851
  • https://stackoverflow.com/a/57841768
  • https://stackoverflow.com/a/16019798

Por exemplo, veja o AppImage do Audacity:

https://github.com/audacity/audacity/releases/download/Audacity-3.7.1/audacity-linux-3.7.1-x64-22.04.AppImage
  • Chamar readelf -h audacity-linux-3.7.1-x64-22.04.AppImageme dá alguns valores úteis, como Start of section headers, Size of section headers, Number of section headers.
  • Em seguida, usando a lógica de Martin Vyskočil $START_OF_SECTION + $SECTION_SIZE * $SECTION_NO , posso obter um valor correto de 191680 + 64 * 32, que é 193728.
  • O comando a seguir é bem-sucedido (no macOS e no Ubuntu):
    unsquashfs -o 193728 audacity-linux-3.7.1-x64-22.04.AppImage squashfs-root
    

... mas como posso calcular esse valor de deslocamento com objdumpem vez de readelf?

bash
  • 1 respostas
  • 129 Views
Martin Hope
ay0ks
Asked: 2025-01-17 00:34:29 +0800 CST

Como faço para remover a borda branca da janela do XTerm?

  • 5

Não consegui encontrar nenhuma resposta para isso. na verdade é um preenchimento entre a borda preta e o conteúdo do terminal; é a borda preta. Não consegui encontrar um recurso para a branca, eu construí o XTerm a partir da fonte e poderia ser de já que a borda é 3D-ish se você olhar de perto?Problema em si XTerm*internalBorderXTerm*borderWidth--enable-Xaw3d

EDIT : Eu o reconstruí completamente, ./configuresem nenhuma bandeira, e a borda desapareceu. Acho que tentarei depurar qual deles o habilita e então darei uma resposta para isso. A fronteira desapareceu

linux
  • 1 respostas
  • 28 Views
Martin Hope
Kishan
Asked: 2025-01-16 13:05:10 +0800 CST

Como usar aspas em variáveis ​​no Bash [duplicado]

  • 6
Esta pergunta já tem respostas aqui :
Como podemos executar um comando armazenado em uma variável? (6 respostas)
Fechado há 4 dias .

Preciso atribuir um comando a uma variável e executá-lo com a variável no bash do Linux. O comando executa bem na linha de comando, mas não na variável por causa de várias aspas. Espero que a barra invertida deva ser usada para várias aspas para evitar o erro. Por favor, ajude com o formato correto.

Código:

parm="cat file|awk '$1>0 && $1="abc" {print f $0} {f=$0 ORS}'"
eval "$parm"

Conteúdo:

abc
123
efg
456

Erro:

awk: cmd. line:1: >0 && =abc {print f bash} {f=bash ORS}
awk: cmd. line:1: ^ syntax error

Desde já, obrigado!

bash
  • 1 respostas
  • 34 Views
Martin Hope
elbarna
Asked: 2025-01-16 10:18:49 +0800 CST

Como definir corretamente o envelhecimento de uma senha usando o krb5?

  • 7

Tenho um servidor Solaris, ele usa ldap para autenticação de usuário e kerberos para senha. O usuário pode alterar sua senha, só tenho problemas com envelhecimento de senha, por exemplo:

passwd -r ldap -n 12 giovanni
Enter giovanni's password: 
Permission denied

Este é o pam.conf para passwd

passwd  auth sufficient         pam_passwd_auth.so.1
passwd  auth required           pam_dhkeys.so.1
passwd  auth sufficient         pam_krb5.so.1
passwd  auth required           pam_unix_cred.so.1
passwd  auth required           pam_unix_auth.so.1

Eu sei que no Kerberos é possível usar políticas, mas e se eu quiser definir o envelhecimento da senha para o usuário? Eu tive que definir uma política somente para esse usuário? Não tem como usar o comando passwd?

solaris
  • 1 respostas
  • 77 Views
Martin Hope
Manuel Jordan
Asked: 2025-01-16 06:39:58 +0800 CST

O Debian 12 com o adaptador de rede sem fio BCM4313 802.11bgn é muito lento, mesmo com o firmware-b43-installer

  • 5

Para um laptop HP Pavilion g4-1387la foi instalado o Debian 12 Desktop

As conexões Ethernet e Wi-Fi são possíveis.

Mas quando somente o WIFI é usado (sem cabo ethernet conectado) existe o problema de que a velocidade da internet é muito lenta. Eu coloquei as mesmas configurações de conexão WIFI de acordo com outros laptops na mesma LAN, todos eles baseados em outras distribuições Linux. Claro que o ipv4 é único

A placa sem fio é a seguinte (avise-me se precisar de mais dados - indique-me o comando a ser executado para compartilhar as informações):

lspci -vq | grep -i wireless
02:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4313 802.11bgn Wireless Network Adapter (rev 01)
Subsystem: Hewlett-Packard Company BCM4313 802.11bgn Wireless Network Adapter

Eu tive um problema semelhante sobre uma conexão WIFI através do PeppermintOS baseado no Debian de acordo com:

  • https://sourceforge.net/p/peppermintos/pepos/net/thread/b3d502f094

A seguir a figura principal para melhor entendimento:

insira a descrição da imagem aqui

Observe a instalação dos 2 pacotes seguintes (entre outros):

  • firmware-b43-instalador
  • firmware-b43legacy-instalador

Agora, para o Debian existe o seguinte conjunto de pacotes:

insira a descrição da imagem aqui

Depois de instalar os pacotes firmware-b43-installerand firmware-b43legacy-installere mais, como mostrado na Figura anterior, na mesma máquina quando o pingcomando é executado para outro PC na mesma LAN, ele é rápido como se o mesmo comando fosse executado em outro PC na mesma LAN, mas infelizmente quando é aberto qualquer navegador da Web, ele pode funcionar rápido apenas por alguns segundos , mas aleatoriamente fica lento. É muito estranho.

Como resolver essa situação?

Só por precaução, na figura mostrada sobre o Debian foi utilizado Ethernet e o WIFI está desabilitado pelo modo avião

debian
  • 1 respostas
  • 25 Views
Martin Hope
1toneboy
Asked: 2025-01-16 05:48:07 +0800 CST

Passando arquivos para o convidado do Windows

  • 5

Eu sei que essa é uma pergunta que já foi feita muitas vezes antes, e deveria ser simples. Acho que estou perto, mas devo estar fazendo algo errado.

Esta é a primeira vez que uso o QEMU e estou realmente com dificuldades. Estou usando o virt manager para hospedar o Windows 7 e estou tentando obter arquivos de e para o MX Linux. Primeiro, tentei baixar algo do github na VM do Windows para que ele pudesse reconhecer arquivos do Linux (pode ter sido winfsp ou outra coisa, não tenho meu histórico de pesquisa).

Então me deparei com meu primeiro obstáculo:

O Windows só tem o Internet Explorer instalado, e eu mal consigo visualizar páginas, não consegui baixar o Chrome, Chromium, Firefox ou Brave na VM. Tentei carregar arquivos na VM usando um pendrive, mas também não consegui. Desisti de tentar baixar qualquer coisa da Internet na VM convidada. Decidi que, em vez de passar os arquivos do Linux para o Windows, tentaria passar os arquivos do Windows no Linux para o Windows convidado.

Então finalmente eu estava um pouco incompleto mas eu criei uma partição NTFS então exFAT 8mb na minha unidade nvme usando fdisk e então mkfs.ntsf então quando isso não funcionou mkfs.exfat sem sucesso também. Eu não entendi muito bem o que o 'nome da tag' (como "compartilhado") significa, isso se torna o nome da unidade na VM do Windows? Meu método bruto foi sudo mount -t virtiofs shared /dev/nvme0n1p4então no gerenciador virt eu adicionei um hardware > sistema de arquivos: Eu tentei Driver = mount, mode eu tentei alguns como squich e passthrough, para o caminho de origem eu tentei "/dev/nvme0n1p4" e eu também tentei "/media/1toneboy/352D-156E/test folder" e para o caminho de destino eu chamei de "compartilhado"

Mas quando fui iniciar a máquina virtual, ela disse (desculpe, não estou em casa, não tenho as palavras exatas) erro: tipo de arquivo inválido, superbloco... permissão negada

Há algo que eu esteja fazendo obviamente errado ao passar uma partição NTFS ou exfat para a VM? Existe uma maneira mais simples de transferir o arquivo?

Muito obrigado!

partition
  • 1 respostas
  • 26 Views
Martin Hope
symcbean
Asked: 2025-01-16 00:58:07 +0800 CST

Encaminhamento de agente ssh - o que está acontecendo nos bastidores?

  • 5

Quando pergunto ao Google como o encaminhamento de agentes ssh funciona, ele me dá muitos links para lixo otimizado para SEO explicando como provisionar o ssh-agent. NÃO é isso que estou perguntando.

Atualmente, tenho um problema em que os trabalhos iniciados em uma sessão de tela no lado mais distante de uma conexão VPN falham porque não conseguem se conectar via ssh depois que a VPN falha.

Normalmente, esses trabalhos dependem do encaminhamento de agente do cliente de origem para conectar. Tenho suspeitas sobre o que está errado aqui, mas um melhor entendimento de todo o encaminhamento de agente ajudaria aqui.

Quando eu conecto do host0 para o hosta, o ssh-agent no host0 fornece minha chave privada para o cliente ssh no host0. No hosta, vejo SSH_AUTH_SOCK preenchido referenciando um socket local. Se, no hosta, eu então ssh hostb, o cliente ssh de alguma forma se conecta ao ssh-agent no host0. Presumivelmente, isso está usando um canal alternativo na conexão ssh host0-hosta.

O que está acontecendo em $SSH_AUTH_SOCK no hosta?

(fuser $SSH_AUTH_SOCK sugere que nada está aberto)

No caso da minha sessão de tela, se a sessão SSH que iniciou a sessão de tela tiver terminado e eu iniciar uma nova sessão SSH do host0 para o hosta, as solicitações de chave da sessão de tela serão enviadas pela nova conexão?

ssh
  • 2 respostas
  • 48 Views
Martin Hope
InfaredDelta
Asked: 2025-01-16 00:37:49 +0800 CST

Meu disco tem 244,5 GB de 258 GB cheios e não sei o que está ocupando todo esse espaço

  • 6

Recentemente, resolvi um loop de login na minha máquina Linux Mint causado pelo meu drive estar cheio. Limpei com sucesso 31,2 GB de dados executando comandos de limpeza padrão e removendo todos os meus aplicativos grandes, como o Blender, temporariamente.

Aqui está o relatório do analisador de disco:

/ 187.2GB
home 99.4GB
timeshift 67.5GB
usr 9.2GB
var 6.8GB
lib 1.4GB
opt 368.6MB
boot 326.3MB
sbin 19.1MB
etc 24.3MB
bin 16.7MB
tmp 622.6kB
lost+found 16.4kB
media 16.4kB
mnt 4.1 kB
lib64 4.1kB
cdrom 4.1kB
root 4.1kB
srv 4.1kB

Obviamente home e timeshift estão ocupando todo esse espaço. Como posso consertar isso?

disk-usage
  • 2 respostas
  • 71 Views
Martin Hope
peti27
Asked: 2025-01-16 00:20:57 +0800 CST

Como selecionar uma string delimitada por dois padrões de string diferentes

  • 4

Estou tendo uma saída semelhante ao arquivo (nome do arquivo qualquer.com) abaixo...

[...]~ # tmsh list sys file ssl-cert whatever.com_2024
sys file ssl-cert whatever.com_2024 {
    certificate-key-size 2048
    checksum SHA1:2520:ab40df7776dbbccb62345560511f2205d
    create-time 2024-08-12:19:34:07
    created-by x.y
    expiration-date 1754956799
    expiration-string "Aug 11 23:59:59 2025 GMT"
    fingerprint SHA256/D8:57:8E:8E:4A:1A:C3:3C:1B:6F:32:59:A7:36:66:92:6C
    issuer "CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1,O=DigiCert Inc,C=US"
    key-type rsa-public
    last-update-time 2024-08-12:19:34:07
    mode 33188
    revision 1
    serial-number 0a:1d:ca:c7:09:7b:49:59:b2
    size 2520
    source-path /var/run/key_mgmt/RvGubB/ssl.crt/whatever.com_2024
    subject "CN=whatever.com,O=XYZ,L=Toronto,ST=Ontario,C=CA"
    subject-alternative-name "DNS:whatever.com"
    updated-by x.y
    version 3

Estou tentando gerar uma saída de comando com base nas informações acima na linha 17 (começando com o assunto)

cat whatever.com | awk 'BEGIN  {F=" "; FS = "\n"; RS = ""; OFS = "\n"} { print "openssl req -new -nodes -sha256 -newkey rsa:2048 -out "substr($1,RSTART+19,length($1)-25)"_2025.csr -keyout "substr($1,RSTART+19,length($1)-25)"_2025.key -subj "/"substr($17,RSTART+14,length($17)-14)"\""}'

A saída está parecendo boa

openssl req -new -nodes -sha256 -newkey rsa:2048 -out whatever.com_2025.csr -keyout whatever.com_2025.key -subj "/CN=whatever.com,O=XYZ,L=Toronto,ST=Ontario,C=CA"

No entanto, ele está usando uma substring da linha 1 que pode ser diferente da linha 17, então eu gostaria de obter o nome do arquivo em vez de usar substr($1,RSTART+19,length($1)-24) para ser gerado com base na string do formulário $17 entre "CN=" e ",O=".

Também seria possível modificar a saída para ficar assim se a linha 18 contivesse a string "DNS"...

openssl req -new -nodes -sha256 -newkey rsa:2048 -out whatever.com_2025.csr -keyout whatever.com_2025.key -subj "/CN=whatever.com,O=XYZ,L=Toronto,ST=Ontario,C=CA" -addext "subjectAltName = DNS:whatever.com"

Obrigado por todas as respostas rápidas. Os nomes de arquivo devem ser gerados dinamicamente a partir do arquivo. O exemplo incluso é apenas uma pequena seção da saída maior. A configuração BEGIN está lá para criar essas seções que, nesse ponto, podem ser manipuladas individualmente por linha.

Lidando com balanceadores de carga F5. Eles são baseados em Linux, mas não são exatamente construídos como servidores normais, o que torna alguns dos scripts desafiadores.

Eu encontrei uma solução usando split() mas agora tenho um problema diferente. Quando eu executo o comando sozinho, parece funcionar

 ~ # cat whatever.com | awk 'BEGIN  {F=" "; FS = "\n"; RS = ""; OFS = "\n"} {split($17,a,/,/); print substr(a[1],RSTART+17)}'
whatever.com

Entretanto, quando adicionado ao script original, ele acrescenta o número "5" na frente.

 ~ # cat whatever.com |  awk 'BEGIN  {F=" "; FS = "\n"; RS = ""; OFS = "\n"} { print "openssl req -new -nodes -sha256 -newkey rsa:2048 -out "split($17,a,/,/); print substr(a[1],RSTART+17)"_2025.csr -keyout "split($17,a,/,/); print substr(a[1],RSTART+17)"_2025.key -subj \"/"substr($17,RSTART+14,length($17)-14)"\""}' 

openssl req -new -nodes -sha256 -newkey rsa:2048 -out 5
whatever.com_2025.csr -keyout 5
whatever.com_2025.key -subj "/CN=whatever.com,O=XYZ,L=Toronto,ST=Ontario,C=CA"
awk
  • 4 respostas
  • 84 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