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 / server / Perguntas / 1166050
Accepted
McLayn
McLayn
Asked: 2024-10-03 03:05:57 +0800 CST2024-10-03 03:05:57 +0800 CST 2024-10-03 03:05:57 +0800 CST

Podman kube rootless quadlet com mapeamento de usuário

  • 772

Estou tentando executar um podmanquadlet definido por um arquivo YML do kubernetes. Quero que ele seja executado sem root em systemdum webusuário no host: systemctl --user status pod-web.

Dentro do container, o processo PHP está rodando sob o 33:33usuário. Quero que o /home/web/datadiretório no host seja de propriedade do webusuário, mas ao mesmo tempo seja legível e gravável pelo 33:33usuário dentro do container, onde ele é montado em /var/www/html.

Nos comentários, você pode ver algumas coisas que tentei. Infelizmente, não entendo os namespaces de usuário e subuid/subgid o suficiente para conseguir fazer funcionar com a documentação e o Copilot continua alucinando, então qualquer ajuda de pessoas reais será apreciada.

Meu problema é semelhante a este , mas quero usar um podman kubequadlet definido em um arquivo YML.


Ambiente:

  • AlmaLinux release 9.4 (Seafoam Ocelot)
  • podman version 4.9.4-rhel
  • systemd 252 (252-32.el9_4.7)
  • SELinux habilitou a aplicação
  • chown -R web:web /home/web
  • usermod --add-subuids 100000-165535 --add-subgids 100000-165535 web

/home/web/pod-web.yml:

apiVersion: v1
kind: Pod
metadata:
  name: pod-web
#  annotations:
#    io.podman.annotations.userns: "keep-id"
spec:
  containers:
  - name: pod-web
    image: docker.io/library/php:8.3-apache
#    securityContext:
#      runAsUser: 33
#      runAsGroup: 33
#      supplementalGroups: [65536]
#    ports:
#    - containerPort: 80
#      hostPort: 8000
    volumeMounts:
    - mountPath: /var/www/html
      name: web-data
  volumes:
  - name: web-data
    hostPath:
      path: /home/web/data
  restartPolicy: Always

Com runAsUser: 33o container estava logando:

(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80

Com runAsUser: 0o contêiner parece funcionar, mas é uma prática ruim, pois concede muitos privilégios, se entendi corretamente.


/home/web/.config/containers/systemd/pod-web.kube:

[Unit]
Description=Podman Quadlet: %p

[Service]
# ExecStartPre=/usr/bin/podman unshare -- /bin/bash -c 'chown -R 33:33 /home/web/data'

[Kube]
Yaml=/home/web/%p.yml
LogDriver=journald
#UserNS=keep-id:uid=33,gid=33
#UserNS=auto

[Install]
WantedBy=multi-user.target default.target
kubernetes
  • 1 1 respostas
  • 94 Views

1 respostas

  • Voted
  1. Best Answer
    McLayn
    2024-10-18T03:42:14+08:002024-10-18T03:42:14+08:00

    Foi isso que funcionou no final:

    • chown -R web:web /home/web
    • usermod --add-subuids 100000-165535 --add-subgids 100000-165535 web

    /home/web/pod-web.yml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-web
    spec:
      containers:
      - name: pod-web
        image: docker.io/library/php:8.3-apache
    #    ports:
    #    - containerPort: 80
    #      hostPort: 8000
        volumeMounts:
        - mountPath: /var/www/html
          name: web-data
        securityContext:
          runAsUser: 33
          runAsGroup: 33
          capabilities:
            add: ["NET_BIND_SERVICE"]
      volumes:
      - name: web-data
        hostPath:
          path: /home/web/data
      restartPolicy: Always
    

    /home/web/.config/containers/systemd/pod-web.kube:

    [Unit]
    Description=Podman Quadlet: %p
    
    [Service]
    
    [Kube]
    Yaml=/home/web/%p.yml
    LogDriver=journald
    UserNS=keep-id:uid=33,gid=33
    #GlobalArgs=--log-level=debug
    
    [Install]
    WantedBy=multi-user.target default.target
    
    • %pserá substituído por pod-webdo nome do arquivo

    Particularmente, (13)Permission denied: AH00072: make_sock: could not bind to addressfoi resolvido comsecurityContext:capabilities:add:["NET_BIND_SERVICE"]

    • 1

relate perguntas

  • Containerd falhou ao iniciar após Nvidia Config

  • Como posso modificar o configmap CoreDNS antes de inicializar o cluster usando o kubeadm?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 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