mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
[PR #5943/53f72973 backport][stable-5] zfs_delegate_admin: fix: zfs allow cannot parse unknown uid/gid (#6085)
zfs_delegate_admin: fix: zfs allow cannot parse unknown uid/gid (#5943)
When setting allow permissions for particular users or groups
there will be circumstances when that user is not known to the
host system.
In that case the output of `zfs allow <pool/dataset>`
looks similar to this:
$ sudo zfs allow tank/test
---- Permissions on tank/test ---------------------------------------
Local+Descendent permissions:
user (unknown: 1002) hold
user zfsuser receive
The fix in this commit removes ' (unknown: '+')' from the output
leaving only the uid/gid.
This allows the current parser to continue even if the uid/gid
is not known.
This situation occurs most often when moving a zpool from one system
to another that may not have the same users/groups. Simply adding
permissions to a user/group and then deleting the user/group
from the system will cause this situation to occur.
(cherry picked from commit 53f729730b
)
Co-authored-by: Phil Kauffman <philip@kauffman.me>
This commit is contained in:
parent
d96600d4de
commit
5da6dc7d72
2 changed files with 5 additions and 0 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- zfs_delegate_admin - zfs allow output can now be parsed when uids/gids are not known to the host system (https://github.com/ansible-collections/community.general/pull/5943).
|
|
@ -177,6 +177,9 @@ class ZfsDelegateAdmin(object):
|
||||||
scope = linemap.get(line, scope)
|
scope = linemap.get(line, scope)
|
||||||
if not scope:
|
if not scope:
|
||||||
continue
|
continue
|
||||||
|
if ' (unknown: ' in line:
|
||||||
|
line = line.replace('(unknown: ', '', 1)
|
||||||
|
line = line.replace(')', '', 1)
|
||||||
try:
|
try:
|
||||||
if line.startswith('\tuser ') or line.startswith('\tgroup '):
|
if line.startswith('\tuser ') or line.startswith('\tgroup '):
|
||||||
ent_type, ent, cur_perms = line.split()
|
ent_type, ent, cur_perms = line.split()
|
||||||
|
|
Loading…
Reference in a new issue