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

Dylan L's questions

Martin Hope
Dylan L
Asked: 2022-10-29 09:31:20 +0800 CST

apt quer instalar uma versão inexistente do docker.io

  • 5

Estou tendo um problema no Debian 11 totalmente atualizado (bullseye) e esgotei meu conhecimento sobre solução de problemas sobre o assunto. Atualmente, estou executando 3 PCs, todos com configurações quase idênticas gerenciadas pelo Ansible. Um, e apenas um, desses três sistemas está lançando um erro ao tentar apt install docker.ioatravés do Ansible (como root) ou manualmente (por exemplo sudo apt install docker.io):

~ » sudo apt install docker.io
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  linux-image-5.10.0-15-amd64
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
  cgroupfs-mount containerd libintl-perl libintl-xs-perl libmodule-find-perl libmodule-scandeps-perl libproc-processtable-perl libsort-naturally-perl libterm-readkey-perl needrestart runc tini
Suggested packages:
  containernetworking-plugins docker-doc aufs-tools btrfs-progs debootstrap rinse rootlesskit xfsprogs zfs-fuse | zfsutils-linux needrestart-session | libnotify-bin iucode-tool
Recommended packages:
  criu
The following NEW packages will be installed:
  cgroupfs-mount containerd docker.io libintl-perl libintl-xs-perl libmodule-find-perl libmodule-scandeps-perl libproc-processtable-perl libsort-naturally-perl libterm-readkey-perl needrestart runc tini
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 40.0 MB/61.4 MB of archives.
After this operation, 270 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Err:1 http://deb.debian.org/debian bullseye/main amd64 runc amd64 1.0.0~rc93+ds1-5+b2
  404  Not Found [IP: 2a04:4e42:a::644 80]
Err:2 http://deb.debian.org/debian bullseye/main amd64 docker.io amd64 20.10.5+dfsg1-1+deb11u1
  404  Not Found [IP: 2a04:4e42:a::644 80]
Err:3 http://deb.debian.org/debian bullseye/main amd64 libintl-perl all 1.26-3
  404  Not Found [IP: 2a04:4e42:a::644 80]
Err:4 http://deb.debian.org/debian bullseye/main amd64 libintl-xs-perl amd64 1.26-3
  404  Not Found [IP: 2a04:4e42:a::644 80]
E: Failed to fetch http://deb.debian.org/debian/pool/main/r/runc/runc_1.0.0%7erc93%2bds1-5%2bb2_amd64.deb  404  Not Found [IP: 2a04:4e42:a::644 80]
E: Failed to fetch http://deb.debian.org/debian/pool/main/d/docker.io/docker.io_20.10.5%2bdfsg1-1%2bdeb11u1_amd64.deb  404  Not Found [IP: 2a04:4e42:a::644 80]
E: Failed to fetch http://deb.debian.org/debian/pool/main/libi/libintl-perl/libintl-perl_1.26-3_all.deb  404  Not Found [IP: 2a04:4e42:a::644 80]
E: Failed to fetch http://deb.debian.org/debian/pool/main/libi/libintl-perl/libintl-xs-perl_1.26-3_amd64.deb  404  Not Found [IP: 2a04:4e42:a::644 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

O que eu tentei

Verifiquei que estou conectado à Internet, posso me conectar a http://deb.debian.org/debian no Firefox na máquina afetada, posso atualizar as informações do pacote do Apt via sudo apt update, e posso atualizar pacotes via sudo apt upgrade.

Editar: sudo apt update retorna a seguinte saída:

~ » sudo apt update
Hit:1 http://deb.debian.org/debian bullseye InRelease
Hit:2 http://security.debian.org/debian-security bullseye-security InRelease                                           
Hit:3 http://deb.debian.org/debian bullseye-updates InRelease                                                                                 
Hit:4 http://deb.debian.org/debian bullseye-backports InRelease                                                                               
Hit:5 https://updates.signal.org/desktop/apt xenial InRelease                                                                                
Hit:6 https://packages.element.io/debian default InRelease                       
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

Esperei pelo menos uma semana para ver se talvez houvesse um problema upstream que pudesse ser corrigido por uma atualização. Nenhuma mudança.

Eu procurei por perguntas semelhantes aqui e li as doze principais ou mais; Não vi ninguém perguntar e resolver um problema semelhante.

Eu tentei cavar em versões disponíveis via apt. A execução apt show docker.io --all-versionsem todas as três máquinas produz:

On working machine "M": 20.10.5+dfsg1-1+deb11u2
On working machine "Z": 20.10.5+dfsg1-1+deb11u2
On broken machine "T":  20.10.5+dfsg1-1+deb11u1

Já tentei instalar manualmente a versão que as máquinas M e Z possuem:

~ » sudo apt install docker.io=20.10.5+dfsg1-1+deb11u2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Version '20.10.5+dfsg1-1+deb11u2' for 'docker.io' was not found

Já tentei usar --fix-missing. Saída completa:

~ » sudo apt install docker.io --fix-missing
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  linux-image-5.10.0-15-amd64
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
  cgroupfs-mount containerd libintl-perl libintl-xs-perl libmodule-find-perl
  libmodule-scandeps-perl libproc-processtable-perl libsort-naturally-perl libterm-readkey-perl
  needrestart runc tini
Suggested packages:
  containernetworking-plugins docker-doc aufs-tools btrfs-progs debootstrap rinse rootlesskit
  xfsprogs zfs-fuse | zfsutils-linux needrestart-session | libnotify-bin iucode-tool
Recommended packages:
  criu
The following NEW packages will be installed:
  cgroupfs-mount containerd docker.io libintl-perl libintl-xs-perl libmodule-find-perl
  libmodule-scandeps-perl libproc-processtable-perl libsort-naturally-perl libterm-readkey-perl
  needrestart runc tini
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 40.0 MB/61.4 MB of archives.
After this operation, 270 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Err:1 http://deb.debian.org/debian bullseye/main amd64 runc amd64 1.0.0~rc93+ds1-5+b2
  404  Not Found [IP: 2a04:4e42:a::644 80]
Err:2 http://deb.debian.org/debian bullseye/main amd64 docker.io amd64 20.10.5+dfsg1-1+deb11u1
  404  Not Found [IP: 2a04:4e42:a::644 80]
Err:3 http://deb.debian.org/debian bullseye/main amd64 libintl-perl all 1.26-3
  404  Not Found [IP: 2a04:4e42:a::644 80]
Err:4 http://deb.debian.org/debian bullseye/main amd64 libintl-xs-perl amd64 1.26-3
  404  Not Found [IP: 2a04:4e42:a::644 80]
Selecting previously unselected package cgroupfs-mount.
(Reading database ... 199957 files and directories currently installed.)
Preparing to unpack .../0-cgroupfs-mount_1.4_all.deb ...
Unpacking cgroupfs-mount (1.4) ...
Selecting previously unselected package containerd.
Preparing to unpack .../1-containerd_1.4.13~ds1-1~deb11u2_amd64.deb ...
Unpacking containerd (1.4.13~ds1-1~deb11u2) ...
Selecting previously unselected package libmodule-find-perl.
Preparing to unpack .../2-libmodule-find-perl_0.15-1_all.deb ...
Unpacking libmodule-find-perl (0.15-1) ...
Selecting previously unselected package libmodule-scandeps-perl.
Preparing to unpack .../3-libmodule-scandeps-perl_1.30-1_all.deb ...
Unpacking libmodule-scandeps-perl (1.30-1) ...
Selecting previously unselected package libproc-processtable-perl.
Preparing to unpack .../4-libproc-processtable-perl_0.59-2+b1_amd64.deb ...
Unpacking libproc-processtable-perl (0.59-2+b1) ...
Selecting previously unselected package libsort-naturally-perl.
Preparing to unpack .../5-libsort-naturally-perl_1.03-2_all.deb ...
Unpacking libsort-naturally-perl (1.03-2) ...
Selecting previously unselected package libterm-readkey-perl.
Preparing to unpack .../6-libterm-readkey-perl_2.38-1+b2_amd64.deb ...
Unpacking libterm-readkey-perl (2.38-1+b2) ...
Selecting previously unselected package tini.
Preparing to unpack .../7-tini_0.19.0-1_amd64.deb ...
Unpacking tini (0.19.0-1) ...
Setting up libmodule-find-perl (0.15-1) ...
Setting up tini (0.19.0-1) ...
Setting up libproc-processtable-perl (0.59-2+b1) ...
Setting up cgroupfs-mount (1.4) ...
Setting up libterm-readkey-perl (2.38-1+b2) ...
dpkg: dependency problems prevent configuration of containerd:
 containerd depends on runc (>= 0.1.0~); however:
  Package runc is not installed.

dpkg: error processing package containerd (--configure):
 dependency problems - leaving unconfigured
Setting up libsort-naturally-perl (1.03-2) ...
Setting up libmodule-scandeps-perl (1.30-1) ...
Processing triggers for man-db (2.9.4-2) ...
Errors were encountered while processing:
 containerd
E: Failed to fetch http://deb.debian.org/debian/pool/main/r/runc/runc_1.0.0%7erc93%2bds1-5%2bb2_amd64.deb  404  Not Found [IP: 2a04:4e42:a::644 80]
E: Failed to fetch http://deb.debian.org/debian/pool/main/d/docker.io/docker.io_20.10.5%2bdfsg1-1%2bdeb11u1_amd64.deb  404  Not Found [IP: 2a04:4e42:a::644 80]
E: Failed to fetch http://deb.debian.org/debian/pool/main/libi/libintl-perl/libintl-perl_1.26-3_all.deb  404  Not Found [IP: 2a04:4e42:a::644 80]
E: Failed to fetch http://deb.debian.org/debian/pool/main/libi/libintl-perl/libintl-xs-perl_1.26-3_amd64.deb  404  Not Found [IP: 2a04:4e42:a::644 80]
E: Sub-process /usr/bin/dpkg returned an error code (1)

(O sistema é então deixado em um estado quebrado, com o Apt sugerindo que eu execute apt --fix-broken install. Isso falha, devido aos mesmos problemas. Para restaurar o sistema, tenho que executar apt remove containerde apt autoremovepara uma boa medida.)

Eu abri https://deb.debian.org/debian/pool/main/d/docker.io/ no Firefox e observei que a versão 20.10.5+dfsg1-1+deb11u1 não tem arquivos .deb. Ainda assim, não sei por que esse sistema em particular não instala +deb11u2.

Com base nesta resposta , eu executei apt-cache policy:

# Working machine M
~ » apt-cache policy docker.io
docker.io:
  Installed: 20.10.5+dfsg1-1+deb11u2
  Candidate: 20.10.5+dfsg1-1+deb11u2
  Version table:
 *** 20.10.5+dfsg1-1+deb11u2 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages
        100 /var/lib/dpkg/status

# Working machine Z
~ » apt-cache policy docker.io
docker.io:
  Installed: 20.10.5+dfsg1-1+deb11u2
  Candidate: 20.10.5+dfsg1-1+deb11u2
  Version table:
 *** 20.10.5+dfsg1-1+deb11u2 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages
        100 /var/lib/dpkg/status

# Broken machine T
~ » apt-cache policy docker.io
docker.io:
  Installed: (none)
  Candidate: 20.10.5+dfsg1-1+deb11u1
  Version table:
     20.10.5+dfsg1-1+deb11u1 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages

Isso não parece responder à pergunta, então examinei as versões disponíveis em apt-cache madison:

# Working machine M
~ » apt-cache madison docker.io
 docker.io | 20.10.5+dfsg1-1+deb11u2 | http://deb.debian.org/debian bullseye/main amd64 Packages
 docker.io | 20.10.5+dfsg1-1 | http://deb.debian.org/debian bullseye/main Sources
 docker.io | 20.10.5+dfsg1-1+deb11u1 | http://deb.debian.org/debian bullseye/main Sources
 docker.io | 20.10.5+dfsg1-1+deb11u2 | http://deb.debian.org/debian bullseye/main Sources
 docker.io | 20.10.5+dfsg1-1+deb11u2 | http://deb.debian.org/debian bullseye-backports/main Sources

# Working machine Z
~ » apt-cache madison docker.io
 docker.io | 20.10.5+dfsg1-1+deb11u2 | http://deb.debian.org/debian bullseye/main amd64 Packages
 docker.io | 20.10.5+dfsg1-1 | http://deb.debian.org/debian bullseye/main Sources
 docker.io | 20.10.5+dfsg1-1+deb11u1 | http://deb.debian.org/debian bullseye/main Sources
 docker.io | 20.10.5+dfsg1-1+deb11u2 | http://deb.debian.org/debian bullseye/main Sources
 docker.io | 20.10.5+dfsg1-1+deb11u2 | http://deb.debian.org/debian bullseye-backports/main Sources

# Broken machine T
~ » apt-cache madison docker.io
 docker.io | 20.10.5+dfsg1-1+deb11u1 | http://deb.debian.org/debian bullseye/main amd64 Packages
 docker.io | 20.10.5+dfsg1-1 | http://deb.debian.org/debian bullseye/main Sources
 docker.io | 20.10.5+dfsg1-1+deb11u1 | http://deb.debian.org/debian bullseye/main Sources
 docker.io | 20.10.5+dfsg1-1+deb11u2 | http://deb.debian.org/debian bullseye-backports/main Sources

As diferenças que estou notando na saída do madison são (a) a máquina T tem +deb11u1 em vez de +deb11u2 na linha Packages e (b) a máquina T não tem uma linha +deb11u2 Sources. Ainda não vejo por que o Apt está procurando uma versão ausente ou não oferece nenhuma das outras versões disponíveis no mesmo repositório.

Eu executei apt-cache showpkg docker.ionas máquinas T e Z e comparei as saídas cuidadosamente usando diff. Máquina quebrada T mostra:

~ » apt-cache showpkg docker.io
Package: docker.io
Versions: 
20.10.5+dfsg1-1+deb11u1 (/var/lib/apt/lists/deb.debian.org_debian_dists_bullseye_main_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/deb.debian.org_debian_dists_bullseye_main_binary-amd64_Packages
                  MD5: 05dc9eba68f3bf418e6a0cf29d555878
 Description Language: en
                 File: /var/lib/apt/lists/deb.debian.org_debian_dists_bullseye_main_i18n_Translation-en
                  MD5: 05dc9eba68f3bf418e6a0cf29d555878


Reverse Depends: 
  runc,docker.io 1.13.1~ds1-2
  docker-compose,docker.io 1.9.0
  lava-dispatcher,docker.io
  lava,docker.io
  containerd,docker.io 1.12
  whalebuilder,docker.io
  toil,docker.io
  subuser,docker.io
  docker-compose,docker.io 1.9.0
  ruby-docker-api,docker.io
  python3-testinfra,docker.io
  piuparts,docker.io
  packer,docker.io
  libnss-docker,docker.io
  lava-dispatcher,docker.io
  lava,docker.io
  due,docker.io
  containerd,docker.io 1.12
  docker-clean,docker.io
  docker-clean,docker.io
  debocker,docker.io
  datalad-container,docker.io
  cwltool,docker.io
  amazon-ecr-credential-helper,docker.io
  charliecloud-builders,docker.io
  amazon-ecr-credential-helper,docker.io
Dependencies: 
20.10.5+dfsg1-1+deb11u1 - init-system-helpers (2 1.54~) libc6 (2 2.4) libdevmapper1.02.1 (2 2:1.02.97) libsystemd0 (0 (null)) adduser (0 (null)) containerd (2 1.4~) iptables (0 (null)) lsb-base (0 (null)) runc (2 1.0.0~rc8~) tini (0 (null)) docker-ce (0 (null)) docker-ce-cli (0 (null)) docker-ce-rootless-extras (0 (null)) apparmor (0 (null)) ca-certificates (0 (null)) cgroupfs-mount (0 (null)) git (0 (null)) needrestart (2 3.1~) xz-utils (0 (null)) docker-doc (0 (null)) aufs-tools (0 (null)) btrfs-progs (0 (null)) debootstrap (0 (null)) e2fsprogs (0 (null)) rinse (0 (null)) rootlesskit (0 (null)) xfsprogs (0 (null)) zfs-fuse (16 (null)) zfsutils-linux (0 (null)) 
Provides: 
20.10.5+dfsg1-1+deb11u1 - 
Reverse Provides: 

Eu não postarei a saída da máquina Z aqui por questões de brevidade, mas a única diferença é que ela mostra +deb11u2 em vez de +deb11u1 em todos os 3 lugares. Também não vejo explicações nesta saída, AFAICT.

Esse é o limite do meu conhecimento de solução de problemas. O que está acontecendo e como faço para corrigir isso? Muito obrigado!

debian
  • 1 respostas
  • 41 Views
Martin Hope
Dylan L
Asked: 2022-01-27 21:34:55 +0800 CST

Permissão NFS negada com sec=krb5p

  • 2

Estou configurando o NFSv4.2 com MIT Kerberos ( sec=krb5p) em duas VMs Hyper-V executando o Debian 11 (Bullseye). Quando uso autenticação baseada em máquina ( sec=sys), tudo funciona bem. Com o Kerberos ( sec=krb5p), consigo montar o compartilhamento no cliente, mas vejo Permission deniedquando tento acessar o compartilhamento. Documentei tudo isso em detalhes abaixo, incluindo todas as informações de configuração relevantes que me vieram à mente. Estou um pouco fora da minha profundidade. O que estou perdendo ou fazendo errado?

NFS trabalha comsec=sys

/etc/exports no servidor:

/exports/ned 192.168.1.0/24(sec=sys,rw,no_subtree_check)

/etc/fstab no cliente:

test-debian-server:/exports/ned /imports/ned nfs sec=sys 0 0

Testando o compartilhamento:

ned@test-debian-desktop:/imports$ su - -c "nfsstat -m"
Password:
/imports/ned from test-debian-server:/exports/ned
 Flags: rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.63,local_lock=none,addr=192.168.1.62

ned@test-debian-desktop:/imports$ id
uid=2001(ned) gid=2001(ned) groups=2001(ned)
ned@test-debian-desktop:/imports$ ls -l
total 4
drwxr-xr-x 2 ned ned 4096 Jan 26 17:57 ned
ned@test-debian-desktop:/imports$ cd ned
ned@test-debian-desktop:/imports/ned$ ls
ned@test-debian-desktop:/imports/ned$ touch test.txt
ned@test-debian-desktop:/imports/ned$ ls
test.txt

Verificando test.txt no servidor:

ned@test-debian-server:/exports$ id
uid=2001(ned) gid=2001(ned) groups=2001(ned)
ned@test-debian-server:/exports$ ls -l
total 4
drwxr-xr-x 2 ned ned 4096 Jan 26 19:11 ned
ned@test-debian-server:/exports$ ls -l ned
total 0
-rw-r--r-- 1 ned ned 0 Jan 26 19:11 test.txt

Permissão negada comsec=krb5p

Configuração do servidor

/etc/hosts:

127.0.0.1       localhost
127.0.1.1       test-debian-server.test test-debian-server
192.168.1.63    test-debian-desktop
192.168.1.62    test-debian-server

/etc/default/nfs-kernel-server:

RPCNFSDCOUNT=8
RPCNFSDPRIORITY=0
RPCMOUNTDOPTS="--manage-gids"
NEED_SVCGSSD=""
RPCSVCGSSDOPTS=""

/etc/default/nfs-common:

NEED_STATD=
STATDOPTS=
NEED_IDMAPD=
NEED_GSSD=

/etc/exports:

/exports/ned 192.168.1.0/24(sec=krb5p,rw,no_subtree_check)

/etc/krb5.conf (bastante abreviado):

[libdefaults]
        default_realm = TEST

        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true

[realms]
        TEST = {
                kdc = test-debian-server
                admin_server = test-debian-server
        }

Principais Kerberos:

root@test-debian-server:~# kadmin.local listprincs
K/M@TEST
host/test-debian-desktop@TEST
host/test-debian-server@TEST
kadmin/admin@TEST
kadmin/changepw@TEST
kadmin/test-debian-server@TEST
kiprop/test-debian-server@TEST
krbtgt/TEST@TEST
nfs/test-debian-desktop@TEST
nfs/test-debian-server@TEST

Tecla do Kerberos:

root@test-debian-server:~# klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   2 nfs/test-debian-server@TEST (aes256-cts-hmac-sha1-96)
   2 nfs/test-debian-server@TEST (aes128-cts-hmac-sha1-96)
   2 host/test-debian-server@TEST (aes256-cts-hmac-sha1-96)
   2 host/test-debian-server@TEST (aes128-cts-hmac-sha1-96)

Domínio efetivo do NFS:

root@test-debian-server:~# nfsidmap -d
test

Permissões nas exportações:

root@test-debian-server:~# ls -ld /exports /exports/*
drwxr-xr-x 3 root root 4096 Jan 26 17:58 /exports
drwxr-xr-x 2 ned  ned  4096 Jan 26 19:11 /exports/ned

Configuração do cliente

/etc/hosts:

127.0.0.1       localhost
127.0.1.1       test-debian-desktop.test        test-debian-desktop
192.168.1.63    test-debian-desktop
192.168.1.62    test-debian-server

/etc/default/nfs-common: igual ao server.

/etc/fstab:

test-debian-server:/exports/ned /imports/ned nfs sec=krb5p 0 0

/etc/krb5.conf: igual ao servidor.

Tecla do Kerberos:

root@test-debian-desktop:~# klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   3 nfs/test-debian-desktop@TEST (aes256-cts-hmac-sha1-96)
   3 nfs/test-debian-desktop@TEST (aes128-cts-hmac-sha1-96)
   2 host/test-debian-desktop@TEST (aes256-cts-hmac-sha1-96)
   2 host/test-debian-desktop@TEST (aes128-cts-hmac-sha1-96)

Domínio efetivo do NFS:

root@test-debian-desktop:~# nfsidmap -d
test

Permissões nas importações (após desmontar o compartilhamento):

root@test-debian-desktop:~# umount /imports/ned
root@test-debian-desktop:~# ls -ld /imports /imports/*
drwxr-xr-x 3 root root 4096 Jan 26 19:08 /imports
drwxr-xr-x 2 root root 4096 Jan 26 17:02 /imports/ned

(Observação: obtenho o mesmo resultado quando chown ned:ned /imports/ned. Acho que root:rootestá correto, para evitar nedgravar acidentalmente no disco local se a montagem falhar?)

Permissão negada

Após reiniciar o servidor e o cliente:

ned@test-debian-desktop:/imports$ su -c "nfsstat -m"
Password:
/imports/ned from test-debian-server:/exports/ned
 Flags: rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=krb5p,clientaddr=192.168.1.63,local_lock=none,addr=192.168.1.62

ned@test-debian-desktop:/imports$ ls -l
total 4
drwxr-xr-x 2 ned ned 4096 Jan 26 19:11 ned
ned@test-debian-desktop:/imports$ cd ned
bash: cd: ned: Permission denied
ned@test-debian-desktop:/imports$

Às vezes ned, pode listar o compartilhamento ls -linicialmente, mas não pode cdentrar nele, como na sessão acima; um minuto depois, se nedtentar ls -l, eles verão Permission deniede pontos de interrogação para os nedatributos da pasta. Quando isso acontece, posso fazer o seguinte:

ned@test-debian-desktop:/imports$ ls -l
ls: cannot access 'ned': Permission denied
total 0
d????????? ? ? ? ?            ? ned
ned@test-debian-desktop:/imports$ su -c "ls -l /imports"
Password:
total 4
drwxr-xr-x 2 ned ned 4096 Jan 26 19:11 ned
ned@test-debian-desktop:/imports$ ls -l
total 4
drwxr-xr-x 2 ned ned 4096 Jan 26 19:11 ned
ned@test-debian-desktop:/imports$

Isso parece ser devido à expiração do cache de atributo: se eu desabilitar o cache de atributo noacem /etc/fstab no cliente e remontá-lo, nedverá de forma confiável Permission deniede pontos de interrogação ao chamar ls -l.

O que eu tentei

Tanto no cliente quanto no servidor, eu tenho:

  • Definir Verbosity = 4em/etc/idmapd.conf
  • Usado rpcdebugpara definir todos os sinalizadores para nfs,nfsd , nlmerpc
  • Vasculhou o diário do systemd em busca de informações relevantes (depois de reinicializar e tentar acessar o compartilhamento).

Verifiquei systemctl statusse as seguintes unidades estãoactive , e li as entradas de diário recentes listadas para cada uma (e não encontrei indicadores óbvios do que está errado):

  • Servidor:
    • krb5-admin-servidor
    • krb5-kdc
    • nfs-kernel-server
    • nfs-idmapd
    • nfs-mountd
    • servidor nfs
    • rpc-svcgssd
    • rpc-gssd
  • Cliente:
    • rpc-gssd
    • imports-ned.mount

Tanto quanto posso dizer, o Kerberos está autenticando corretamente.

Li todas as páginas de manual relevantes e manuais on-line que posso encontrar e todas as perguntas no StackExchange que pareciam estar relacionadas, e não consegui corrigir o problema ou fazer com que o cliente ou o servidor gerasse uma mensagem de erro para me informar por que a permissão está sendo negada.

Editado para adicionar host/test-debian-desktope host/test-debian-serverprincipais e chaves Kerberos de acordo com Unix Application Servers - MIT Kerberos Documentation

O que estava faltando

A resposta escolhida faz um bom trabalho ao explicar o motivo pelo qual minha configuração não estava funcionando. Caso alguém esteja na mesma situação, aqui estão os detalhes do que estava faltando - e leia a resposta abaixo para saber o porquê.

O Kerberos autentica usuários individuais (o que, por algum motivo, pensei que não). Portanto, para nedse conectar, o Kerberos deve ter um ned@TESTprincipal e o usuário do Linux nedno PC cliente deve kinitobter um Ticket-Granting Ticket (TGT) para esse principal. Então tudo funciona lindamente. Para automatizar mais ou menos isso, fiz o seguinte:

/etc/krb5/user/<uid>/client.keytab: contém chaves para nede só é legível por ned! Eu usei 0600permissões, com proprietário e grupo tanto como ned.

Com este keytab, posso simplesmente invocar kinit -kipara fazer login sem precisar digitar uma senha. A maneira rápida e suja de automatizar isso foi adicioná-lo a ~/.gnomerc, ~/.bashrc ~/.zshrc (já que eu uso Gnome, Bash e Zsh).

Além disso, como implemento essas configurações via Ansible e tenho alguns sistemas que compartilham dotfiles, mas não precisam de acesso NFS, fiquei um pouco mais sofisticado com Bash e Zsh, executando apenas kinitse ele e o keytab do cliente estiverem presentes:

~/.bashrc:

# Grab or renew a Kerberos ticket.
if type -t kinit >/dev/null && [[ -r /etc/krb/user/$(id -u)/client.keytab ]]
then
  kinit -ki
fi

~/.zshrc:

# Grab or renew a Kerberos ticket.
if type kinit >/dev/null && [[ -r /etc/krb/user/$(id -u)/client.keytab ]]
then
  kinit -ki
fi
linux debian
  • 1 respostas
  • 710 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