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 / user-29867

x-yuri's questions

Martin Hope
x-yuri
Asked: 2024-03-03 02:06:30 +0800 CST

O Chromium não inicia no docker sem `xhost +local:`

  • 5
$ xhost
access control enabled, only authorized clients can connect

xtermfunciona:

$ docker run --rm -it --network host \
  --volume ~/.Xauthority:/root/.Xauthority:ro \
  --env DISPLAY \
  alpine:3.19 sh -euxc 'apk add xterm; exec xterm'

chromiumabre uma janela e parece receber pressionamentos de tecla, mas a janela está vazia ( output ):

$ docker run --rm -it --network host \
  --volume ~/.Xauthority:/root/.Xauthority:ro \
  --env DISPLAY \
  alpine:3.19 sh -euxc 'apk add chromium; exec chromium --no-sandbox'

Se eu permitir conexões locais, xhostele funcionará:

$ xhost +local:

$ xhost
access control enabled, only authorized clients can connect
LOCAL:

$ docker run --rm -it --network host \
  --volume ~/.Xauthority:/root/.Xauthority:ro \
  --env DISPLAY \
  alpine:3.19 sh -euxc 'apk add chromium; exec chromium --no-sandbox'

$ xhost -local:

Pode-se especular aqui que ele inicia processos não-root que não têm acesso /root/.Xauthoritye é por isso que falha. Então, sob qual usuário? Para que eu pudesse fornecer .Xauthoritya todos os interessados. Como faço para depurar isso? Como faço para que isso funcione?

docker
  • 1 respostas
  • 17 Views
Martin Hope
x-yuri
Asked: 2022-01-07 06:17:11 +0800 CST

Manipulação especial de Ctrl-J

  • 2

Quando pressiono Ctrl-V Ctrl-Jem um shell (sob urxvt), ele inicia uma nova linha (posiciona o cursor no início de uma nova linha), em vez de imprimir ^J.

Nele vimimprime ^@.

A mesma situação está no console virtual.

Aparentemente algo pré-processa Ctrl-J. O que é e como posso influenciá-lo?

$ stty -a
speed 38400 baud; rows 26; columns 101; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke -flusho -extproc

$ echo $TERM
rxvt-unicode-256color

$ urxvt --help |&  head -1
rxvt-unicode (urxvt) v9.26 - released: 2021-05-14

UPD que estava configurando tmuxe tal comportamento me fez pensar que bind-key C-j send-keys C-jnão funciona.

terminal terminal-emulator
  • 2 respostas
  • 211 Views
Martin Hope
x-yuri
Asked: 2021-11-10 17:43:44 +0800 CST

Definir uma armadilha para INT não funciona em um subshell

  • 1
$ bash -c "trap \"echo INT\" INT; sleep 3" & pid=$!; sleep 1; kill -INT $pid; wait
[1] 27811
INT
[1]+  Done                    bash -c "trap \"echo INT\" INT; sleep 3"

$ (bash -c "trap \"echo INT\" INT; sleep 3" & pid=$!; sleep 1; kill -INT $pid; wait)

Você pode explicar por que o SIGINTmanipulador não é invocado no segundo caso?

shell subshell
  • 1 respostas
  • 240 Views
Martin Hope
x-yuri
Asked: 2021-10-21 06:24:07 +0800 CST

Quando inherit_errexit não funciona?

  • 3
#!/usr/bin/env bash
set -e
shopt -s inherit_errexit
a=$(cat no-such-file)
echo survived
$ /tmp/a.sh
cat: no-such-file: No such file or directory
#!/usr/bin/env bash
set -e
shopt -s inherit_errexit
echo -n $(cat no-such-file)
echo survived
$ /tmp/a.sh
cat: no-such-file: No such file or directory
survived
#!/usr/bin/env bash
set -e
shopt -s inherit_errexit
f() { :; }
f $(cat no-such-file)
echo survived
$ /tmp/a.sh
cat: no-such-file: No such file or directory
survived

Algum outro caso? Ou alguma generalização?

bash exit-status
  • 1 respostas
  • 479 Views
Martin Hope
x-yuri
Asked: 2019-08-21 23:13:17 +0800 CST

A opção -w do sysctl é realmente necessária ao alterar os parâmetros do kernel?

  • 1

sysctltem este -winterruptor. É realmente necessário? Eu tentei fazer:

sysctl vm.max_map_count=262144

E parece que deu certo.

linux-kernel sysctl
  • 1 respostas
  • 289 Views
Martin Hope
x-yuri
Asked: 2019-03-22 06:24:05 +0800 CST

O que acontece quando um servidor fica sem espaço?

  • 2

E por "se esgota" quero dizer totalmente, incluindo espaço reservado para root. Ainda posso fazer login? Posso gerar processos? Posso excluir um arquivo grande se souber sua localização? Posso findou ncdugrandes arquivos ou diretórios?

linux
  • 1 respostas
  • 634 Views
Martin Hope
x-yuri
Asked: 2019-02-04 13:19:32 +0800 CST

Como uso o ssh-agent como um programa wrapper?

  • 1

Estou tentando iniciar awesomeo gerenciador de janelas como um subprocesso do ssh-agent. Funcionou quando eu usei startx( ssh-agent startx). Mas agora estou tentando fazê-lo funcionar sob o lightdm.

lightdmcomeça /usr/bin/xinitrcsession-helper:

#!/bin/bash
exec $HOME/.xinitrc

~/.xinitrc:

ssh-agent awesome

E o que eu recebo é:

  509     1   lightdm         /usr/bin/lightdm
  526   509     Xorg            /usr/lib/Xorg :0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
  877   509     lightdm         lightdm --session-child 14 21
 1003   877       xinitrcse       /bin/bash /usr/bin/xinitrcsession-helper
 1028  1003         awesome         awesome
 1029  1028           ssh-a           ssh-agent awesome

E set | grep SSHnão retorna nada.

Então eu começo outro xterm( ssh-agent xterm) e funciona:

 1636     1   xterm           xterm
 1638  1636     bash            bash
 1651  1638       vim             vim
 9435  1651         xterm           xterm
 9447  9435           ssh-a           ssh-agent xterm
 9449  9435           bash            bash
10464  9449             ps              ps -eHo pid,ppid,comm,args
10465  9449             les             less

O estranho aqui é que ssh-agenté filho de um programa que ele inicia. Você pode explicar isso?

E como eu corro awesomepara que os programas que eu inicie depois disso possam ver ssh-agent?

UPD Quanto ssh-agenta ser filho do comando que executa. Isso é feito para poder substituir commandpor ssh-agent command. Então, ssh-agentbifurca, e pai execé o command.

UPD Meu mal, eu estava usando xbindkeyspara iniciar xterm, e o primeiro passou a ser iniciado antes ssh-agent. Como em, xbindkeys && ssh-agent awesome. Então, não tinha SSH_*variáveis ​​para passar para xterm. Ou então é a minha explicação mais provável. Ao usar awesomeas facilidades internas do start xterm, as variáveis ​​de ambiente são passadas corretamente.

environment-variables ssh-agent
  • 1 respostas
  • 832 Views
Martin Hope
x-yuri
Asked: 2018-12-28 08:55:51 +0800 CST

Regra NAT de origem para contêineres LXC

  • 0

Acabei de notar que a MASQUERADE iptablesregra adicionada por lxctem ! -dparte:

iptables -t nat -A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE

Meu palpite é que isso -s 10.0.3.0/24 -d 10.0.3.0/24só pode ser observado ao enviar dados de um contêiner para o outro ( ping, ssh, você nomeia). E omitir a ! -dparte só pode afetar o desempenho. Em extensão desconhecida. Estou certo?

iptables lxc
  • 1 respostas
  • 606 Views
Martin Hope
x-yuri
Asked: 2018-11-19 10:08:50 +0800 CST

a expansão aritmética do bash parece ser propensa a ataques de injeção

  • 3

Suponha que você queira que seu script pegue variáveis ​​do ambiente:

#!/usr/bin/env bash
set -eu

if (( ${A-} )); then
    echo true
else
    echo false
fi

A expansão aritmética parece ser mais razoável aqui para lidar com (empty), 0, 1cases, ou então:

if [ "${A-}" ] && [ "${A-}" != 0 ]; then

Mas então,

$ A='1 - 1' ./1.sh
false
$ A='B = 1' ./1.sh
true

Então agora você pode basicamente alterar variáveis, o que geralmente não deseja permitir. O que você sugeriria? Como processar sinalizadores booleanos retirados de variáveis ​​de ambiente?

bash arithmetic
  • 1 respostas
  • 537 Views
Martin Hope
x-yuri
Asked: 2018-10-23 15:22:46 +0800 CST

Como canalizar para menos sem buffer?

  • 1

Estou tentando exibir o progresso e torná-lo utilizável em less:

while true; do echo -n .; sleep 1; done | less

Existe uma maneira de fazê-lo funcionar?

pipe buffer
  • 1 respostas
  • 497 Views
Martin Hope
x-yuri
Asked: 2018-09-11 02:58:35 +0800 CST

Como executar programas com ld-linux.so?

  • 3

O vinculador dinâmico pode ser executado indiretamente executando algum programa vinculado dinamicamente ou objeto compartilhado (nesse caso, nenhuma opção de linha de comando para o vinculador dinâmico pode ser passada e, no caso ELF, o vinculador dinâmico que é armazenado no arquivo .interp seção do programa é executada) ou diretamente executando:

/lib/ld-linux.so.* [OPÇÕES] [PROGRAMA [ARGUMENTOS]]

https://jlk.fjfi.cvut.cz/arch/manpages/man/core/man-pages/ld.so.8.en

Informações semelhantes podem ser encontradas em Program Library HOWTO .

Mas quando eu tento,

$ LD_DEBUG=libs /usr/lib/ld-linux.so.2 ls
     23325: find library=ls [0]; searching
     23325:  search cache=/etc/ld.so.cache
     23325: 
ls: error while loading shared libraries: ls: cannot open shared object file

$ LD_DEBUG=libs ls
     23503: find library=libcap.so.2 [0]; searching
     23503:  search cache=/etc/ld.so.cache
     23503:   trying file=/usr/lib/libcap.so.2
...

O que estou fazendo errado? Existe uma maneira de usar ld-linux.sodiretamente para executar um programa?

linux libraries
  • 1 respostas
  • 7904 Views
Martin Hope
x-yuri
Asked: 2018-08-01 23:14:42 +0800 CST

Como od trata os símbolos após `\x7f`?

  • -2

O comando a seguir passa para odsímbolos de \x00para \xff:

$ seq 0 255 | awk '{printf("%c", $0)}' | od -c

Mas o que eu recebo é:

0000000  \0 001 002 003 004 005 006  \a  \b  \t  \n  \v  \f  \r 016 017
0000020 020 021 022 023 024 025 026 027 030 031 032 033 034 035 036 037
0000040       !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /
0000060   0   1   2   3   4   5   6   7   8   9   :   ;   <   =   >   ?
0000100   @   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O
0000120   P   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _
0000140   `   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o
0000160   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~ 177
0000200 302 200 302 201 302 202 302 203 302 204 302 205 302 206 302 207
0000220 302 210 302 211 302 212 302 213 302 214 302 215 302 216 302 217
0000240 302 220 302 221 302 222 302 223 302 224 302 225 302 226 302 227
0000260 302 230 302 231 302 232 302 233 302 234 302 235 302 236 302 237
0000300 302 240 302 241 302 242 302 243 302 244 302 245 302 246 302 247
0000320 302 250 302 251 302 252 302 253 302 254 302 255 302 256 302 257
0000340 302 260 302 261 302 262 302 263 302 264 302 265 302 266 302 267
0000360 302 270 302 271 302 272 302 273 302 274 302 275 302 276 302 277
0000400 303 200 303 201 303 202 303 203 303 204 303 205 303 206 303 207
0000420 303 210 303 211 303 212 303 213 303 214 303 215 303 216 303 217
0000440 303 220 303 221 303 222 303 223 303 224 303 225 303 226 303 227
0000460 303 230 303 231 303 232 303 233 303 234 303 235 303 236 303 237
0000500 303 240 303 241 303 242 303 243 303 244 303 245 303 246 303 247
0000520 303 250 303 251 303 252 303 253 303 254 303 255 303 256 303 257
0000540 303 260 303 261 303 262 303 263 303 264 303 265 303 266 303 267
0000560 303 270 303 271 303 272 303 273 303 274 303 275 303 276 303 277
0000600

O que há de errado com os personagens depois de \x7f?

od
  • 1 respostas
  • 619 Views
Martin Hope
x-yuri
Asked: 2018-05-29 10:33:42 +0800 CST

Por que não preciso redefinir os atributos de texto com menos?

  • 4

Este script gera 5 linhas com a terceira sendo sublinhada:

#!/usr/bin/env bash
set -eu
bold=$(tput bold)
reset=$(tput sgr0)
underline=$(tput smul)
echo 'line 1
line 2
line 3
line 4
line 5' | awk -v bold="$bold" -v reset="$reset" -v underline="$underline" '
    NR == 3 {print underline $0 reset}
    NR != 3 {print $0}
'

Se eu não redefinir (no script) no final da terceira linha, todas as linhas a seguir serão sublinhadas, incluindo os comandos que digito a seguir (no shell). Até eu correr reset. Com less( ./my-script.sh | less -R) não apenas reset(no script) não é necessário (a terceira linha fica sublinhada), mas também produz um símbolo extra em tmux( ^O, TERM=screen-256color):

line 1
line 2
line 3^O
line 4
line 5

Mas nenhum símbolo no console simples ( TERM=xterm-256color).

O que exatamente e por que isso acontece? Existe uma maneira de fazer o script funcionar em todos esses casos?

$ ./my-script.sh
$ ./my-script.sh | grep line --color=never
$ ./my-script.sh | less -R

Por exemplo, para fazer o seguinte script funcionar melhor.

terminal escape-characters
  • 1 respostas
  • 348 Views
Martin Hope
x-yuri
Asked: 2017-12-07 03:48:52 +0800 CST

Por que remover o npm significa remover o nodejs também no CentOS?

  • 0

Estou tentando remover npm(repositório EPEL), mas yumquer que eu remova nodejstambém. É a nodejsdependência npmde. Não o contrário. nodejspode viver sem npmmuito bem. Estou esquecendo de algo?

yum centos
  • 1 respostas
  • 3668 Views
Martin Hope
x-yuri
Asked: 2017-12-06 05:51:01 +0800 CST

Por que `journalctl --list-boots` não corresponde ao relatório `uptime` e `who -b`?

  • 3

Aqui está um script de teste que usei:

last_reboot=$(last reboot | grep 'still running' | awk '{for (i=5; i<=NF; i++) printf $i FS}' | awk '{for (i=1; i<=NF - 2; i++) printf $i FS}')
if [ "$last_reboot" ]; then
    date -d "$last_reboot" '+last reboot: %Y-%m-%d'
fi

days=$(uptime | awk '{print $3}')
hours=$(uptime | awk '{print $5}' | sed -E 's/,$//')
h=$(echo "$hours" | cut -d: -f 1)
m=$(echo "$hours" | cut -d: -f 2)
date -d "- $days days - $h hours - $m minutes" '+uptime: %Y-%m-%d'

who -b | awk '{print "who: " $3}'

journalctl --list-boots | awk '$1 == "0" {print "journalctl: " $4}'

Localmente, todas as quatro datas coincidem.

Eu executei em cerca de 10 servidores. last rebootnão relata nada (provavelmente, porque wtmpé girado por logrotate). uptimee who -bcombinar. E journalctlnão. O que exatamente journalctl --list-bootsrelata? Por que não pode corresponder ao relatório de outras ferramentas?

systemd boot
  • 1 respostas
  • 6276 Views

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