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-112611

rudib's questions

Martin Hope
rudib
Asked: 2025-01-09 21:08:25 +0800 CST

FUSE em podman sem raízes e sem privilégios

  • 5

Pergunta

Adicionar CAP_SYS_ADMINainda é a única maneira de fazer o fuse funcionar dentro de um contêiner sem raiz (com sobreposição nativa ou fuse-overlayfs/outros métodos)?


Exemplos

Podman em podman

Este exemplo de https://www.redhat.com/en/blog/podman-inside-container

podman run --user podman --security-opt label=disable --device /dev/fuse -ti quay.io/podman/stable podman run -ti docker.io/busybox echo hello

funciona para mim sem problemas. Mas me faz supor que está usando fusermountdentro do contêiner ou que é possível usá-lo, o que não funciona quando se usa a mesma configuração.

Além do mais, parece não montar nada:

podman run --user podman --security-opt label=disable --device /dev/fuse -ti quay.io/podman/stable
# running commands in container
cat /proc/mounts > /home/podman/before
podman run -d docker.io/busybox sleep 100
cat /proc/mounts > /home/podman/during
diff /home/podman/before /home/podman/during
# (no difference)

Parece que omitir /dev/fusetambém funciona (testado com sobreposição nativa):

podman run --user podman --security-opt label=disable -ti quay.io/podman/stable podman run -ti docker.io/busybox echo hello

Ligações

Apenas adicionando bindfsà imagem

FROM quay.io/podman/stable

RUN dnf -y install bindfs

E executando um contêiner

podman run --user podman --security-opt label=disable --device /dev/fuse -ti built_image_from_above:latest
# inside the container
cd ~ && mkdir test1 test2
bindfs --no-allow-other test1 test2
fusermount: mount failed: Operation not permitted

Estou assumindo que o comportamento será o mesmo para outras montagens de fusíveis, como sshfs. Isso pode ser um problema de permissão dentro do contêiner ou o host está negando?


Ideias

precisa de privilégio

Essa resposta implica que para usar o fuse, você precisa ter privilégios.

Setuid é mencionado, mas não tenho certeza de como isso é significado. Dentro do continer:

ls -l $(which fusermount3)
-rwsr-xr-x. 1 root root 40800 Jul 17 00:00 /usr/bin/fusermount3

sobreposição sem raiz

Também tentei remover a linha mount_programde storage.confe executar podman system reset, como descrito aqui . Mas não tenho certeza se isso é apenas sobre overlay ou também fuse. Se eu não adicionar /dev/fuse, o dispositivo não estará presente no continer:

Outra desvantagem do fuse-overlayfs é que ele requer acesso a /dev/fuse. Quando as pessoas tentam executar o Podman e o Buildah em um contêiner confinado, retiramos os privilégios CAP_SYS_ADMIN, mesmo quando executados como root. Isso nos força a usar um namespace de usuário para que possamos montar volumes. Para fazer isso funcionar, os usuários precisam adicionar /dev/fuse ao contêiner. Assim que tivermos overlay nativo para o modo sem root (sem CAP_SYS_ADMIN), /dev/fuse não será mais necessário.


Versões

Host: Fedora 41
Podman: 5.3.1
fuse
  • 1 respostas
  • 38 Views
Martin Hope
rudib
Asked: 2020-02-25 03:57:07 +0800 CST

ld não pode encontrar a biblioteca bem na frente dele

  • 1

Estou tentando construir um programa de ferrugem que envolve dieselon postgresqle Fedora 31a compilação falha porque o vinculador não consegue encontrar arquivos libpq. Como é reproduzível com gcc, estou usando gccpara manter a pergunta mais curta.

gcc -L /lib64 -lpq
/usr/bin/ld: cannot find -lpq
ls /lib64 | grep libpq
libpq.so.5
libpq.so.5.11
ldd /lib64/libpq.so.5
        linux-vdso.so.1 (0x00007ffc06ddd000)
        libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x00007f4885ea7000)
        libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007f4885bc7000)
        libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00007f4885b75000)
        libldap_r-2.4.so.2 => /usr/lib64/libldap_r-2.4.so.2 (0x00007f4885b1d000)
        libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007f4885afb000)
        libc.so.6 => /usr/lib64/libc.so.6 (0x00007f4885932000)
        libz.so.1 => /usr/lib64/libz.so.1 (0x00007f4885916000)
        libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007f488590f000)
        libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00007f488581e000)
        libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00007f4885805000)
        libcom_err.so.2 => /usr/lib64/libcom_err.so.2 (0x00007f48857fe000)
        libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00007f48857ec000)
        libkeyutils.so.1 => /usr/lib64/libkeyutils.so.1 (0x00007f48857e3000)
        libresolv.so.2 => /usr/lib64/libresolv.so.2 (0x00007f48857ca000)
        liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x00007f48857b9000)
        libsasl2.so.3 => /usr/lib64/libsasl2.so.3 (0x00007f4885799000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f4885f8c000)
        libselinux.so.1 => /usr/lib64/libselinux.so.1 (0x00007f488576c000)
        libcrypt.so.2 => /usr/lib64/libcrypt.so.2 (0x00007f488572f000)
        libpcre2-8.so.0 => /usr/lib64/libpcre2-8.so.0 (0x00007f488569d000)

libpthread, por exemplo, que também está em lib64, é encontrado:

gcc -L /lib64 -lpthread
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/9/../../../../lib64/crt1.o: in function `_start':

Estou faltando alguma coisa ou isso normalmente deve ser encontrado imediatamente?

libraries gcc
  • 1 respostas
  • 1132 Views
Martin Hope
rudib
Asked: 2019-10-25 02:11:08 +0800 CST

Confiabilidade do loop inotifywait

  • 0

Eu tenho um script bash com um loop assistindo um diretório recursivamente:

while true
do
    if path=`inotifywait -q -r -e create --format %w%f $watchpath`; then
        #modify file
    fi
done

Se não me engano vem com esse problema:

Se muitos arquivos forem criados nesse diretório ou a máquina estiver ocupada com outras tarefas, um arquivo poderá ser criado antes de inotifywaitser acessado novamente - o que significaria que ele seria ignorado.

Existe uma maneira de mitigar isso? Talvez haja uma maneira de "assistir" continuamente e processar um fluxo/feed de arquivos modificados?

bash
  • 2 respostas
  • 1806 Views
Martin Hope
rudib
Asked: 2019-08-20 13:06:23 +0800 CST

Ctrl-Enter, Shift-Enter e Enter são interpretados como a mesma tecla

  • 5

Estou usando o Fedora 30 com o KDE e estou tentando vincular (Zsh) autosuggest-executea Ctrl+ Enterpor conveniência. Estou tentando fazer funcionar em gnome-terminal.

Porém descobri que showkey -asempre retorna ^Mnesses três casos: Enter, Ctrl+ Entere Shift+ Enter.

Eu tentei este método ( Ctrl <Return> : "\033M"em .XCompose), mas não funcionou porque o arquivo XCompose não estava sendo lido. Então decidi instalar ibus, pois não é enviado com a minha instalação do KDE com o dnf groupinstall input-methods.

Correr ìbus-setupme dá este aviso agora:

GTK+ supports to output one char only: "\033M": ! Ctrl <Return> : "\033M"

Infelizmente, todas as combinações de entrada ainda se resumem ^Ma .gnome-terminalxterm

Existe uma maneira de diferenciar essas combinações de teclas com ou sem ibus?

keyboard-shortcuts input-method
  • 2 respostas
  • 3211 Views
Martin Hope
rudib
Asked: 2018-12-15 09:48:41 +0800 CST

Migração do Sendmail: replicando todos os e-mails recebidos para outro servidor de e-mail

  • 1

Estou migrando um servidor de e-mail executando o sendmail 8.14.3para um servidor postfix. O MDAno novo servidor é Dovecot. Para garantir uma transição perfeita, seria melhor se os e-mails recebidos fossem entregues a ambos os servidores simultaneamente.

Eu ouvi sobre as opções SMART_HOSTe nullcientno sendmail, mas não tenho certeza se isso funciona da maneira que eu preciso. O que eu preciso é que todos os e-mails recebidos também sejam entregues no novo servidor, deixando a configuração existente intocada, pois eles também devem ser entregues nas caixas de correio do servidor antigo.

Os e-mails são enviados para um endereço como [email protected]e devem ser entregues para mx1.mydomain.com(antigo) e mx2.mydomain.com(novo). Portanto mx1, deve encaminhar uma cópia para mx2.

Registros MX duplos não são suficientes, pois um servidor só seria contatado quando o outro não estivesse acessível - enquanto ambos deveriam estar recebendo o correio.

Talvez outra opção seria configurar sendmailpara entregar diretamente Dovecotno novo servidor via lmtp? Ou talvez apenas rsyncas caixas de correio nos dois servidores. Mas não tenho certeza se é compatível.

ATUALIZAÇÃO: Não é o mesmo formato: no servidor antigo, existem apenas arquivos antigos para cada caixa de correio, enquanto Dovecotcria uma estrutura cur, new tmpno diretório de correio de cada usuário. No entanto, no final, os arquivos com formato semelhante residem nesses diretórios. A seqüência de speration é diferente. Talvez seja possível traduzir o formato antigo e copiá-lo para o novo servidor periodicamente? Isso interferiria de alguma forma Dovecot? E onde posso colocar as cópias no novo servidor para que Dovecotnão sejam afetadas enquanto ainda as reconheço?

Espero que haja algum tipo de solução para isso.


Indormação do Sistema

Número de caixas de correio: ~100-200

Servidor antigo:

OS: Debian GNU/Linux 6.0
sendmail 8.14.3
mails are delivered to "real"/"passwd" users
Other Serives: apache2, mysql, other miscellaneous

Novo servidor:

OS: Debian GNU/Linux 9
postfix
dovecot
mails are delivered to virtual users/SQL
Other services: apache2, mysql, other miscellaneous

Entrada MX atual para referência:

mydomain.com.    IN      MX      0 mx1.mydomain.com.
mydomain.com.    IN      MX      1 mx2.mydomain.com.
email postfix
  • 1 respostas
  • 556 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