OneFS: Aktualizace jádra Linuxu na NFS způsobuje selhání volání "access"

Summary: Aktualizace kódu NFS (Network File System) v linuxovém jádře změnila chování volání "access", která kontrolují oprávnění "WRITE" pro konkrétní sady oprávnění OneFS. Tato změna přivádí chování linuxového systému NFS a SMB (Server Message Block) do vzájemného souladu, takže tato kontrola je konzistentní bez ohledu na to, jaký protokol používáte. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Po aktualizaci linuxového jádra nyní selhávají kontroly přístupu, které byly dříve úspěšné, v adresářích, ve kterých přistupující uživatel nemá oprávnění "delete_child" k adresáři zapojenému do jeho pracovního postupu. To lze ověřit pomocí nástroje Linux test pomocí příkazu -w příznak u stejného adresáře; U starých verzí jádra je návratový kód z tohoto příkazu 0 kdežto v novějších jádrech je 1.

To má vliv na klienty Red Hat a Centos, kteří přecházejí z verze 7 na novější verze.

 

Cause

Tato změna chování byla zavedena v hlavním jádře Linuxu v4.13-rc2Tento hypertextový odkaz vás zavede na webové stránky mimo společnost Dell Technologies. během refaktoringu kódu ovladače NFS. Zdá se však, že kontrola byla přítomna od hlavního jádra v3.7-rc1Tento hypertextový odkaz vás zavede na webové stránky mimo společnost Dell Technologies. a nebyla správně volána.

Po důkladném přezkoumání se domníváme, že jak chování nového linuxového jádra, tak naše chování je správné. Operační systém Linux test příkaz a access Systémová volání jsou založena na standardu POSIX, který konceptualizuje pouze:

  • ČÍST
  • PSÁT
  • PROVÉST

vzhledem k tomu, že podle rfc1813#section-3.3.4Tento hypertextový odkaz vás zavede na webové stránky mimo společnost Dell Technologies. a rfc7530#section-16.1Tento hypertextový odkaz vás zavede na webové stránky mimo společnost Dell Technologies.; NFS umožňuje podrobnější oprávnění, a proto konceptualizuje:

  • ČÍST
  • UPRAVIT
  • PŘIPOJIT
  • DELETE
  • PROVÉST

S oprávněním DELETE definovaným jako to, zda klient může Delete an existing directory entry. To se přímo mapuje na delete_child v systému OneFS a mělo by být odepřeno za okolností, kdy klient toto oprávnění nemá. Také si všimněte; Oprávnění POSIX a NFS se přesně neshodují. POSIX WRITE zahrnuje všechny koncepty v samostatných oprávněních NFS MODIFY, APPEND a DELETE. Takže když se POSIX nástroj pokusí zkontrolovat oprávnění "WRITE", linuxové jádro překládá tento požadavek na "WRITE" na "MODIFY and APPEND and DELETE"

A konečně, novější chování je více v souladu s ostatními ovladači systému souborů Linux, které také podporují tuto sadu oprávnění. Například testování proti souboru SMB se stejnou sadou oprávnění také vrátí chybu při kontrole POSIX WRITE pomocí test pomocí příkazu -w vlajka.
 

# Old kernel
ancons@ubuntu:~$ uname -r
4.13.0-041300rc1-generic
ancons@ubuntu:~$ sudo mount -o vers=4,proto=tcp 10.20.0.181:/ifs /mnt/nfs
ancons@ubuntu:~$ sudo mount -o user=admin,pass=a //10.20.0.181/ifs /mnt/smb
ancons@ubuntu:~$ test -w /mnt/nfs/posix; echo "$?"
0
ancons@ubuntu:~$ test -w /mnt/smb/posix; echo "$?"
1

# New kernel
ancons@ubuntu:~$ uname -r
4.14.0-041400rc4-generic
ancons@ubuntu:~$ sudo mount -o vers=4,proto=tcp 10.20.0.181:/ifs /mnt/nfs
ancons@ubuntu:~$ sudo mount -o user=admin,pass=a //10.20.0.181/ifs /mnt/smb
ancons@ubuntu:~$ test -w /mnt/nfs/posix; echo "$?"
1
ancons@ubuntu:~$ test -w /mnt/smb/posix; echo "$?"
1

 

Resolution

Chování systému OneFS i systému Linux je za těchto okolností správné, jelikož pracovní postupy ovlivněné tímto problémem musí poskytovat delete_child Oprávnění pro ovlivněné uživatele a skupiny. Pokud například adresář poskytuje úplný přístup svému vlastníkovi, uživateli a skupině, ale odebere delete_child z oprávnění Everyone mohou buď přidat toto oprávnění pro Everyone, nebo mohou přidat další položku Access Control (ACE) pro uživatele nebo skupinu, u které dochází k problémům, do seznamu Access Control (ACL) přímo.

# ACL that only allows root to delete child items
p980-1-1# ls -led /ifs/posix-delete_child
drwxrwxrwx +   2 root  wheel  0 Jun 18 14:20 /ifs/posix-delete_child
 OWNER: user:root
 GROUP: group:wheel
 0: user:root allow dir_gen_read,dir_gen_write,dir_gen_execute,std_write_dac,delete_child
 1: group:wheel allow dir_gen_read,dir_gen_write,dir_gen_execute,delete_child
 2: everyone allow dir_gen_read,dir_gen_write,dir_gen_execute

# ACL that allows a specific additional group to delete child items
p980-1-1# ls -led /ifs/posix-delete_child
drwxrwxrwx +   2 root  wheel  0 Jun 18 14:20 /ifs/posix-delete_child
 OWNER: user:root
 GROUP: group:wheel
 0: group:admin allow dir_gen_read,dir_gen_write,dir_gen_execute,delete_child
 1: user:root allow dir_gen_read,dir_gen_write,dir_gen_execute,std_write_dac,delete_child
 2: group:wheel allow dir_gen_read,dir_gen_write,dir_gen_execute,delete_child
 3: everyone allow dir_gen_read,dir_gen_write,dir_gen_execute

# ACL that allows everyone to delete child items
p980-1-1# ls -led /ifs/posix-delete_child
drwxrwxrwx +   2 root  wheel  0 Jun 18 14:20 /ifs/posix-delete_child
 OWNER: user:root
 GROUP: group:wheel
 0: user:root allow dir_gen_read,dir_gen_write,dir_gen_execute,std_write_dac,delete_child
 1: group:wheel allow dir_gen_read,dir_gen_write,dir_gen_execute,delete_child
 2: everyone allow dir_gen_read,dir_gen_write,dir_gen_execute,delete_child

Je také možné aktualizovat jádro Linuxu, aby se chování vrátilo. To vyžaduje sestavení linuxového jádra ze zdrojových kódů po aktualizaci fs/nfs/dir.c Chcete-li odebrat NFS4_ACCESS_DELETE požadavek ze strany NFS_MAY_WRITE makro.

Před:

#define NFS_MAY_WRITE (NFS4_ACCESS_MODIFY | \
		NFS4_ACCESS_EXTEND | \
		NFS4_ACCESS_DELETE)

Po:

#define NFS_MAY_WRITE (NFS4_ACCESS_MODIFY | \
		NFS4_ACCESS_EXTEND)

 

Affected Products

PowerScale OneFS
Article Properties
Article Number: 000226868
Article Type: Solution
Last Modified: 16 July 2024
Version:  1
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.