Como definir um resolv.conf por usuário

Como definir um resolv.conf por usuário

Existe uma maneira de especificar um por usuário resolv.conf?

O que encontrei são referências vagas à possibilidade de ter um arquivo host por usuário, mas não estou interessado nisso, na verdade estou interessado em um full resolv.conf, porque quero definir diferentes servidores de nomes.

Se você está perguntando por que o ponto está testandocjdnsservidor(es) de nomes em um ambiente multiusuário no qual não quero afetar outros usuários do sistema.

Seria possível abusar do sistema nsswitch?

Responder1

Os namespaces do sistema de arquivos local são seus amigos, embora exijam permissões de root para serem configurados.

sudo unshare --mount bash -s <<'EOF'
  mount --bind /path/to/your/resolv.conf /etc/resolv.conf
  sudo -u username-to-run-as command-to-run-with-alternate-resolv-conf 
EOF

Se você deseja um script que execute um comando arbitrário com seu resolv.conf atualizado, considere:

#!/bin/bash
## usage: with-custom-resolver /path/to/resolv.conf cmd arg1 arg2 ...
## ...note that this requires root.

script=""
add_cmd() {
  local cmd_str
  printf -v cmd_str '%q ' "$@"
  script+="$cmd_str"$'\n'
}

resolv_conf=$1; shift

[[ $EUID = 0 ]] || { echo "Must be run as root" >&2; exit 1; }
[[ -e $resolv_conf ]] || { echo "No file found at: $resolv_conf" >&2; exit 1; }

add_cmd mount --bind "$resolv_conf" /etc/resolv.conf
add_cmd exec "$@"
unshare --mount sh -e -c "$script"

Assim, isso poderia ser usado como:

with-custom-resolver your-resolv.conf sudo -u someuser some-command arg1

Responder2

Resposta simples - NÃO....

No entanto, se você configurar uma máquina virtual diferente para cada usuário, poderá ter a chance de fazer o que deseja.

Parece um pouco inútil, no entanto.

Responder3

Para testar um servidor DNS, não é necessário alterar a configuração do resolvedor. Você só precisa alterar o servidor DNS no hostcomando nslookupou dig.

host www.google.com 8.8.8.8

Você também pode usar um ambiente chroot ou Linux Containers (LXC) para ter um arquivo resolv.conf diferente.

Responder4

Talvez eu consiga resolver issoadicionando um serviço ao NSS.

informação relacionada