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
ron
Asked: 2024-06-24 09:24:51 +0800 CST

Maneira correta de escrever código C que injeta mensagens em/var/log/messages?

  • 23

No Linux, RHEL-8.10 ou posterior, se for importante, eu gostaria de escrever algum código C que receba vários parâmetros e, sob uma determinada condição, emita um system("init 0")para desligar o sistema. Antes de emitir o desligamento, gostaria de lançar uma mensagem de uma linha nesse /var/log/messagessistema informando que o sistema foi desligado pelo código de Ron para que eu tenha um registro de quando isso aconteceu.

Como você escreve corretamente /var/log/messages?

Obviamente eu posso fazer um fopen("/var/log/messages, "a")e um simples, fprintfmas isso parece um pouco complicado.

logs
  • 1 respostas
  • 2636 Views
Martin Hope
Stéphane Chazelas
Asked: 2023-10-29 23:20:48 +0800 CST

Por que unbuffer -p altera sua entrada?

  • 23
$ seq 10 | unbuffer -p od -vtc
0000000   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n

Para onde foi 9e 10foi?

$ printf '\r' | unbuffer -p od -An -w1 -vtc
  \n

Por que foi \ralterado para \n?

$ : | unbuffer -p printf '\n' | od -An -w1 -vtc
  \r
  \n
$ unbuffer -p printf '\n' | od -An -w1 -vtc
  \r
      \n

O que é isso?

$ printf foo | unbuffer -p cat
$

Por que nenhuma saída (e um atraso de um segundo)?

$ printf '\1\2\3foo bar\n'  | unbuffer -p od -An -w1 -vtc
$

Por que não há saída?

$ (printf '\23'; seq 10000) | unbuffer -p cat

Por que ele trava sem saída?

$ unbuffer -p sleep 10

Por que não consigo ver o que digito (e por que é descartado mesmo sleepsem ter lido)?

Aliás, também:

$ echo test | unbuffer -p grep foo && echo found foo
found foo

Como foi grepencontrado foo, mas não imprimiu as linhas que o contêm?

$ unbuffer -p ls /x 2> /dev/null
ls: cannot access '/x': No such file or directory

Por que o erro não foi para /dev/null?

Veja também Unbuffer convertendo todos os caracteres em sino?

$ echo ${(l[10000][foo])} | unbuffer -p cat | wc -c
4095

Isso é com:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux trixie/sid
Release:        n/a
Codename:       trixie
$ uname -rsm
Linux 6.5.0-3-amd64 x86_64
$ expect -c 'puts "expect [package require Expect] tcl [info patchlevel]"'
expect 5.45.4 tcl 8.6.13
$ /proc/self/exe --version
zsh 5.9 (x86_64-debian-linux-gnu)

O mesmo no Ubuntu 22.04 ou no FreeBSD 12.4-RELEASE-p5 (exceto que os odcomandos precisam ser adaptados lá, e eu recebo 2321 (todos os caracteres BEL lá) em vez de 4095 acima).

expect
  • 1 respostas
  • 1252 Views
Martin Hope
user149408
Asked: 2022-04-04 05:29:21 +0800 CST

Adicionar encaminhamento de porta a uma sessão SSH em execução

  • 23

O cliente OpenSSH tem uma opção de linha de comando para encaminhamento de porta, usada assim:

ssh -L localport:server:serverport user@host

que se conectará hostcomo user, e ao mesmo tempo redirecionará localporto cliente para serverporton server(que pode ser hostou qualquer coisa alcançável pela hostrede).

Agora suponha que eu tenha SSHed para hostfazer apenas

ssh user@host

e no meio da sessão percebo que esqueci de encaminhar a porta. Infelizmente, estou no meio de algo, então não quero apenas sair e restabelecer a conexão SSH com o encaminhamento de porta.

Existe uma maneira de adicionar encaminhamento de porta a uma sessão SSH em execução?

openssh port-forwarding
  • 2 respostas
  • 2242 Views
Martin Hope
MetaFight
Asked: 2022-03-30 08:17:51 +0800 CST

O Linux sempre separou o espaço do usuário e do kernel?

  • 23

Eu estava pensando em minha introdução à programação recentemente e me lembrei de escrever um programa C++ que deliberadamente lia e gravava em endereços de memória aleatoriamente. Fiz isso para ver o que aconteceria.

Para minha surpresa, no meu PC com Windows 98, meu programa criava alguns efeitos colaterais muito estranhos. Ocasionalmente, alternava as configurações do sistema operacional ou criava falhas gráficas. Na maioria das vezes, não faria nada ou apenas travaria todo o sistema.

Mais tarde, descobri que isso acontecia porque o Windows 98 não restringia o que um processo de usuário tinha acesso. Eu podia ler e escrever na RAM usada por outros processos e até mesmo pelo sistema operacional.

É meu entendimento que isso mudou com o Windows NT (embora eu ache que demorou um pouco para acertar). Agora o Windows impede que você vasculhe na RAM que não pertence ao seu processo.

Lembro-me vagamente de executar meu programa em um sistema Linux mais tarde e não obter tantos resultados interessantes. Se bem entendi, isso se deve, pelo menos em parte, à separação do espaço do usuário e do kernel.

Então, minha pergunta é:

Houve uma época em que o Linux não separava o espaço do usuário e do kernel? Em outras palavras, houve um momento em que meu programa desonesto poderia ter causado estragos semelhantes em um sistema Linux?

security linux-kernel
  • 3 respostas
  • 4563 Views
Martin Hope
400 the Cat
Asked: 2022-02-21 06:44:31 +0800 CST

root não pode gravar no arquivo que é de propriedade do usuário regular

  • 23

Eu crio um arquivo como usuário regular testuser:

$ cat > /tmp/zz

o arquivo é de propriedade desse usuário (como esperado):

$ ls -lA /tmp/zz 
-rw------- 1 testuser testuser 0 Feb 20 15:32 zz

Agora, quando tento truncá-lo como root, recebo permissão negada:

# truncate --size=0 /tmp/zz
truncate: cannot open '/tmp/zz' for writing: Permission denied

Quando tento com strace, vejo o seguinte:

openat(AT_FDCWD, "/tmp/zz", O_WRONLY|O_CREAT|O_NONBLOCK, 0666) = -1 EACCES (Permission denied)
write(2, "truncate: ", 10truncate: )              = 10
write(2, "cannot open '/tmp/zz' for writin"..., 33cannot open '/tmp/zz' for writing) = 33
...
write(2, ": Permission denied", 19: Permission denied)     = 19
write(2, "\n", 1

Por que o root não tem permissão para gravar nesse arquivo? Root pode deletar o arquivo, mas não escrever.

shell permissions
  • 1 respostas
  • 3152 Views
Martin Hope
Dave
Asked: 2018-05-09 07:24:41 +0800 CST

Como descubro por que meu serviço systemctl não foi iniciado no CentOS 7?

  • 24

Estou usando o CentOS 7. Como descubro por que um serviço está falhando ao iniciar? Eu criei este serviço

[rails@server ~]$ sudo cat /usr/lib/systemd/system/nodejs.service
[Unit]
Description=nodejs server

[Service]
User=rails
Group=rails
ExecStart=/home/rails/NodeJSserver/start.sh
ExecStop=/home/rails/NodeJSserver/stop.sh

[Install]
WantedBy=multi-user.target

O arquivo aponta para isso

[rails@server ~]$ cat /home/rails/NodeJSserver/start.sh
#!/bin/bash

forever start /home/rails/NodeJSserver/server.js

Eu posso executar este arquivo muito bem por si só. Mas quando tento executá-lo como parte do serviço, percebo que meu servidor nodeJS não foi iniciado. Mesmo quando verifico "sudo systemctl --state=failed", não vejo nenhum erro ...

[rails@server ~]$ sudo systemctl enable NodeJSserver
[rails@server ~]$ sudo systemctl start NodeJSserver
[rails@server ~]$
[rails@server ~]$
[rails@server ~]$ forever list
info:    No forever processes running
[rails@server ~]$
[rails@server ~]$
[rails@server ~]$ sudo systemctl --state=failed
  UNIT                           LOAD   ACTIVE SUB    DESCRIPTION
● nginx.service                  loaded failed failed The nginx HTTP and reverse proxy server
● systemd-sysctl.service         loaded failed failed Apply Kernel Variables
● systemd-vconsole-setup.service loaded failed failed Setup Virtual Console

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

3 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

Como descubro por que meu serviço falhou ao iniciar?

centos boot
  • 1 respostas
  • 98494 Views
Martin Hope
piegames
Asked: 2018-02-22 04:03:57 +0800 CST

Como as tarefas podem "recusar-se a congelar" na suspensão?

  • 24

Ontem, ao fechar meu laptop, ele não entrou imediatamente no modo de espera. De acordo com os logs, estava tentando, mas uma tarefa se recusou a congelar:

Freezing of tasks failed after 20.005 seconds (1 tasks refusing to freeze, wq_busy=0):

Isso continuou por algumas horas até que o sistema realmente suspendesse. O syslogestava cheio de mensagens como nesta pergunta , porque systemdestava tentando de novo e de novo.

Como isso pode acontecer? Por que o agendador não pode simplesmente parar de agendar esse aplicativo? e então é efetivamente congelado? Eu li que existem vários STOPcomandos, um deles pedindo gentilmente e outro forçando o congelamento. Por que systemdnão usou isso ou por que isso não funcionou aqui?

debian kill
  • 1 respostas
  • 7638 Views
Martin Hope
user82160
Asked: 2018-02-14 07:54:28 +0800 CST

Comando para forçar o braço do disco rígido a se mover para uma posição específica no prato

  • 24

Que comando * nix faria com que o braço do disco rígido alternasse rapidamente entre o centro e a borda do prato?

Em teoria, logo deve causar uma falha mecânica. É para uma experiência com discos rígidos antigos.

linux hard-disk
  • 2 respostas
  • 2145 Views
Martin Hope
theonlygusti
Asked: 2018-01-14 17:22:11 +0800 CST

terminologia da linha de comando: como são chamadas essas partes de um comando?

  • 24

Na linha de comando, costumo usar comandos "simples" como

mv foo/bar baz/bar

mas não sei como chamar todas as partes disso:

┌1┐ ┌──2───┐
git checkout master
│   └──────3──────┘
└───────4─────────┘

Eu (acho que) sei que 1 é um comando e 2 é um argumento, e provavelmente chamaria 3 de uma lista de argumentos (está correto?).

No entanto, não sei como chamar 4 .

Como os "comandos" mais complexos são rotulados?

find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}

Eu apreciaria uma resposta que detalhasse o que chamar de 1,2,3,4 e como chamar cada parte, por exemplo, deste "comando" acima.

Seria ótimo aprender também sobre outras coisas únicas/surpreendentes que não incluí aqui.

command-line command
  • 2 respostas
  • 5217 Views
Martin Hope
Alexander Mills
Asked: 2017-11-28 15:13:05 +0800 CST

Qualquer comando em meu terminal que saia com código diferente de zero fecha minha janela de terminal

  • 24

No começo isso foi um pouco engraçado, como jogar "Bash Roulette" ... mas agora está ficando velho lol

Qualquer comando em meu terminal que saia com código diferente de zero fecha minha janela de terminal

Disseram-me que talvez eu tenha set -edefinido algum script bash em algum lugar que meu terminal fornece.

Eu verifiquei .bash_profile/ .bashrc/ .profilee não parece que set -eestá lá.

Haveria outros culpados óbvios?

bash shell-script
  • 2 respostas
  • 2221 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