From c94fe5ed1843613351b54adf6074a98c1784499c Mon Sep 17 00:00:00 2001 From: "Yury V. Zaytsev" Date: Thu, 29 Aug 2024 20:34:12 +0200 Subject: [PATCH] extfs: use numeric (0/0) root user uid/gid in helpers instead of root/root Non-Linux systems don't always name the user and group with uid/gid of 0 "root". On macOS group "wheel" has gid of 0 and group "root" doesn't exist. On FreeBSD there is a user with gid of 0 named "toor". This causes user/group id lookups in mc to fail and instead return the uid/gid of the current user. Signed-off-by: Yury V. Zaytsev --- src/vfs/extfs/helpers/apt+.in | 32 ++++++++++++++++---------------- src/vfs/extfs/helpers/bpp | 4 ++-- src/vfs/extfs/helpers/deb.in | 10 +++++----- src/vfs/extfs/helpers/deba.in | 6 +++--- src/vfs/extfs/helpers/debd.in | 24 ++++++++++++------------ src/vfs/extfs/helpers/dpkg+.in | 28 ++++++++++++++-------------- src/vfs/extfs/helpers/iso9660.in | 2 +- src/vfs/extfs/helpers/rpm | 12 ++++++------ src/vfs/extfs/helpers/rpms+.in | 4 ++-- src/vfs/extfs/helpers/trpm | 12 ++++++------ 10 files changed, 67 insertions(+), 67 deletions(-) diff --git a/src/vfs/extfs/helpers/apt+.in b/src/vfs/extfs/helpers/apt+.in index 60011e675..24ddcf90b 100644 --- a/src/vfs/extfs/helpers/apt+.in +++ b/src/vfs/extfs/helpers/apt+.in @@ -120,23 +120,23 @@ sub list chop($stats = `apt-cache stats 2>/dev/null`); chop($config = `apt-config dump 2>&1`); $sz = length($check); - print "-r--r--r-- 1 root root $sz $DATE CHECK\n"; + print "-r--r--r-- 1 0 0 $sz $DATE CHECK\n"; $sz = length($available); - print "-r--r--r-- 1 root root $sz $DATE AVAILABLE\n"; + print "-r--r--r-- 1 0 0 $sz $DATE AVAILABLE\n"; $sz = length($stats); - print "-r--r--r-- 1 root root $sz $DATE STATS\n"; + print "-r--r--r-- 1 0 0 $sz $DATE STATS\n"; $sz = length($config); - print "-r--r--r-- 1 root root $sz $DATE CONFIG\n"; + print "-r--r--r-- 1 0 0 $sz $DATE CONFIG\n"; $sz = length($pressupdate); - print "-r-xr--r-- 1 root root $sz $DATE UPDATE\n"; + print "-r-xr--r-- 1 0 0 $sz $DATE UPDATE\n"; $sz = length($pressupgrade); - print "-r-xr--r-- 1 root root $sz $DATE UPGRADE\n"; - print "-r-xr--r-- 1 root root $sz $DATE DIST-UPGRADE\n"; + print "-r-xr--r-- 1 0 0 $sz $DATE UPGRADE\n"; + print "-r-xr--r-- 1 0 0 $sz $DATE DIST-UPGRADE\n"; ls("/etc/apt/sources.list","sources.list"); ls('/etc/apt/apt.conf','apt.conf') if (-f '/etc/apt/apt.conf'); - print "drwxr-xr-x 1 root root 0 $DATE all\n"; + print "drwxr-xr-x 1 0 0 0 $DATE all\n"; if ( open(PIPEIN, "find /var/cache/apt/archives -type f |") ) { while() { @@ -179,18 +179,18 @@ sub list my $sub = $dn; while( $sub =~ s!^(.*)/[^/]*$!$1! ) { unless( $sects{$sub} ) { - print "drwxr-xr-x 1 root root 0 $DATE $sub/\n"; + print "drwxr-xr-x 1 0 0 0 $DATE $sub/\n"; $sects{$sub} = 1; } } - print "drwxr-xr-x 1 root root 0 $DATE $dn/\n"; + print "drwxr-xr-x 1 0 0 0 $DATE $dn/\n"; $sects{$dn} = 1; } $sz = $debd{$pkg}{'status'} =~ /config-files/ ? 0 : $debd{$pkg}{'installed-size'} * 1024; @stat = stat("/var/lib/dpkg/info/".$debd{$pkg}{package}.".list"); $bt = bt($stat[9]); - print "-rw-r--r-- 1 root root $sz $bt $dn/$fn.debd\n"; - print "lrwxrwxrwx 1 root root $sz $bt all/$fn.debd -> ../$dn/$fn.debd\n"; + print "-rw-r--r-- 1 0 0 $sz $bt $dn/$fn.debd\n"; + print "lrwxrwxrwx 1 0 0 $sz $bt all/$fn.debd -> ../$dn/$fn.debd\n"; } open STAT, "apt-cache dumpavail |" @@ -219,16 +219,16 @@ sub list my $sub = $dn; while( $sub =~ s!^(.*)/[^/]*$!$1! ) { unless( $sects{$sub} ) { - print "drwxr-xr-x 1 root root 0 $DATE $sub/\n"; + print "drwxr-xr-x 1 0 0 0 $DATE $sub/\n"; $sects{$sub} = 1; } } - print "drwxr-xr-x 1 root root 0 $DATE $dn/\n"; + print "drwxr-xr-x 1 0 0 0 $DATE $dn/\n"; $sects{$dn} = 1; } $sz = $deba{$pkg}{'status'} =~ /config-files/ ? 0 : $deba{$pkg}{'installed-size'} * 1024; - print "-rw-r--r-- 1 root root $sz $DATE $dn/$fn.deba\n"; - print "lrwxrwxrwx 1 root root $sz $DATE all/$fn.deba -> ../$dn/$fn.deba\n"; + print "-rw-r--r-- 1 0 0 $sz $DATE $dn/$fn.deba\n"; + print "lrwxrwxrwx 1 0 0 $sz $DATE all/$fn.deba -> ../$dn/$fn.deba\n"; } } diff --git a/src/vfs/extfs/helpers/bpp b/src/vfs/extfs/helpers/bpp index f71fe7e79..d8197adb4 100755 --- a/src/vfs/extfs/helpers/bpp +++ b/src/vfs/extfs/helpers/bpp @@ -14,8 +14,8 @@ export LC_TIME mcbppfs_list () { - FILEPREF="-r--r--r-- 1 root root " - FIEXPREF="-r-xr-xr-x 1 root root " + FILEPREF="-r--r--r-- 1 0 0 " + FIEXPREF="-r-xr-xr-x 1 0 0 " DATE=`date +"%b %d %H:%M"` set x `ls -l "$1"` size=$6 diff --git a/src/vfs/extfs/helpers/deb.in b/src/vfs/extfs/helpers/deb.in index abc98aad8..3313ab907 100644 --- a/src/vfs/extfs/helpers/deb.in +++ b/src/vfs/extfs/helpers/deb.in @@ -37,10 +37,10 @@ sub mcdebfs_list chop($info_size=`dpkg -I $qarchivename | wc -c`); $install_size=length($pressinstall); - print "dr-xr-xr-x 1 root root 0 $date CONTENTS\n"; - print "dr-xr-xr-x 1 root root 0 $date DEBIAN\n"; - print "-r--r--r-- 1 root root $info_size $date INFO\n"; - print "-r-xr--r-- 1 root root $install_size $date INSTALL\n"; + print "dr-xr-xr-x 1 0 0 0 $date CONTENTS\n"; + print "dr-xr-xr-x 1 0 0 0 $date DEBIAN\n"; + print "-r--r--r-- 1 0 0 $info_size $date INFO\n"; + print "-r-xr--r-- 1 0 0 $install_size $date INSTALL\n"; if ( open(PIPEIN, "LC_ALL=C dpkg-deb -c $qarchivename |") ) { @@ -117,7 +117,7 @@ sub mcdebfs_list $perm='-r--r--r--'; $name=$_[4]; } - print "$perm 1 root root $size $date DEBIAN/$name\n"; + print "$perm 1 0 0 $size $date DEBIAN/$name\n"; } } } diff --git a/src/vfs/extfs/helpers/deba.in b/src/vfs/extfs/helpers/deba.in index 3d1a55247..600890ff5 100644 --- a/src/vfs/extfs/helpers/deba.in +++ b/src/vfs/extfs/helpers/deba.in @@ -21,14 +21,14 @@ sub list $install_size=length($pressinstall); $upgrade_size=length($pressupgrade); - print "-r--r--r-- 1 root root $info_size $date INFO\n"; + print "-r--r--r-- 1 0 0 $info_size $date INFO\n"; chop($debd = `dpkg -s $qarchive | grep -i ^Version | sed 's/^version: //i'`); chop($deba = `apt-cache show $qarchive | grep -i ^Version | sed 's/^version: //i'`); if( ! $debd ) { - print "-r-xr--r-- 1 root root $install_size $date INSTALL\n"; + print "-r-xr--r-- 1 0 0 $install_size $date INSTALL\n"; } elsif( $debd ne $deba ) { - print "-r-xr--r-- 1 root root $upgrade_size $date UPGRADE\n"; + print "-r-xr--r-- 1 0 0 $upgrade_size $date UPGRADE\n"; } } diff --git a/src/vfs/extfs/helpers/debd.in b/src/vfs/extfs/helpers/debd.in index 858dadd6f..3d471fba4 100644 --- a/src/vfs/extfs/helpers/debd.in +++ b/src/vfs/extfs/helpers/debd.in @@ -120,30 +120,30 @@ sub list $select_size=length($pressselect); $unselect_size=length($pressunselect); - print "dr-xr-xr-x 1 root root 0 $date CONTENTS\n"; - print "dr-xr-xr-x 1 root root 0 $date DEBIAN\n"; - print "-r--r--r-- 1 root root $info_size $date INFO\n"; - print "-r-xr--r-- 1 root root $purge_size $date DPKG-PURGE\n"; + print "dr-xr-xr-x 1 0 0 0 $date CONTENTS\n"; + print "dr-xr-xr-x 1 0 0 0 $date DEBIAN\n"; + print "-r--r--r-- 1 0 0 $info_size $date INFO\n"; + print "-r-xr--r-- 1 0 0 $purge_size $date DPKG-PURGE\n"; chop($status = `dpkg -s $qarchive | grep ^Status`); if( $status =~ /deinstall/ ) { - print "-r-xr--r-- 1 root root $select_size $date DPKG-SELECT\n"; + print "-r-xr--r-- 1 0 0 $select_size $date DPKG-SELECT\n"; } elsif( $status =~ /install/ ) { - print "-r-xr--r-- 1 root root $unselect_size $date DPKG-UNSELECT\n"; + print "-r-xr--r-- 1 0 0 $unselect_size $date DPKG-UNSELECT\n"; } if( $status !~ /config-files/ ) { if ( -x "/usr/bin/dpkg-repack" ) { - print "-r-xr--r-- 1 root root $repack_size $date DPKG-REPACK\n"; + print "-r-xr--r-- 1 0 0 $repack_size $date DPKG-REPACK\n"; } - print "-r-xr--r-- 1 root root $remove_size $date DPKG-REMOVE\n"; + print "-r-xr--r-- 1 0 0 $remove_size $date DPKG-REMOVE\n"; if ( -x "/usr/bin/apt-get" ) { - print "-r-xr--r-- 1 root root $remove_size $date APT-REMOVE\n"; - print "-r-xr--r-- 1 root root $reinstall_size $date APT-REINSTALL\n"; - print "-r-xr--r-- 1 root root $purge_size $date APT-PURGE\n"; + print "-r-xr--r-- 1 0 0 $remove_size $date APT-REMOVE\n"; + print "-r-xr--r-- 1 0 0 $reinstall_size $date APT-REINSTALL\n"; + print "-r-xr--r-- 1 0 0 $purge_size $date APT-PURGE\n"; } } if( -x "/usr/bin/dpkg-reconfigure" && -x "/var/lib/dpkg/info/$archive.config" ) { - print "-r-xr--r-- 1 root root $reconfigure_size $date DPKG-RECONFIGURE\n"; + print "-r-xr--r-- 1 0 0 $reconfigure_size $date DPKG-RECONFIGURE\n"; } diff --git a/src/vfs/extfs/helpers/dpkg+.in b/src/vfs/extfs/helpers/dpkg+.in index 048862ee5..5eadff1ce 100644 --- a/src/vfs/extfs/helpers/dpkg+.in +++ b/src/vfs/extfs/helpers/dpkg+.in @@ -123,27 +123,27 @@ sub list chop($getselections = `dpkg --get-selections 2>/dev/null`); chop($audit = `dpkg --audit 2>/dev/null`); $sz = length($diversions); - print "-r--r--r-- 1 root root $sz $DATE DIVERSIONS\n"; + print "-r--r--r-- 1 0 0 $sz $DATE DIVERSIONS\n"; $sz = length($architecture); - print "-r--r--r-- 1 root root $sz $DATE ARCHITECTURE\n"; + print "-r--r--r-- 1 0 0 $sz $DATE ARCHITECTURE\n"; $sz = length($list); - print "-r--r--r-- 1 root root $sz $DATE LIST\n"; + print "-r--r--r-- 1 0 0 $sz $DATE LIST\n"; $sz = length($getselections); - print "-r--r--r-- 1 root root $sz $DATE GET-SELECTIONS\n"; + print "-r--r--r-- 1 0 0 $sz $DATE GET-SELECTIONS\n"; $sz = length($audit); - print "-r--r--r-- 1 root root $sz $DATE AUDIT\n"; + print "-r--r--r-- 1 0 0 $sz $DATE AUDIT\n"; $sz = length($pressconfigure); - print "-r-xr--r-- 1 root root $sz $DATE CONFIGURE\n"; + print "-r-xr--r-- 1 0 0 $sz $DATE CONFIGURE\n"; $sz = length($pressremove); - print "-r-xr--r-- 1 root root $sz $DATE REMOVE\n"; + print "-r-xr--r-- 1 0 0 $sz $DATE REMOVE\n"; $sz = length($pressclearavail); - print "-r-xr--r-- 1 root root $sz $DATE CLEAR-AVAIL\n"; + print "-r-xr--r-- 1 0 0 $sz $DATE CLEAR-AVAIL\n"; $sz = length($pressforgetoldunavail); - print "-r-xr--r-- 1 root root $sz $DATE FORGET-OLD-UNAVAIL\n"; + print "-r-xr--r-- 1 0 0 $sz $DATE FORGET-OLD-UNAVAIL\n"; ls("/var/lib/dpkg/status","STATUS","-r--r--r--"); # ls("/var/lib/dpkg/available","AVAILABLE","-r--r--r--"); - print "drwxr-xr-x 1 root root 0 $DATE all\n"; + print "drwxr-xr-x 1 0 0 0 $DATE all\n"; open STAT, "/var/lib/dpkg/status" or exit 1; @@ -171,18 +171,18 @@ sub list my $sub = $dn; while( $sub =~ s!^(.*)/[^/]*$!$1! ) { unless( $sects{$sub} ) { - print "drwxr-xr-x 1 root root 0 $DATE $sub/\n"; + print "drwxr-xr-x 1 0 0 0 $DATE $sub/\n"; $sects{$sub} = 1; } } - print "drwxr-xr-x 1 root root 0 $DATE $dn/\n"; + print "drwxr-xr-x 1 0 0 0 $DATE $dn/\n"; $sects{$dn} = 1; } $sz = $debs{$pkg}{'status'} =~ /config-files/ ? 0 : $debs{$pkg}{'installed-size'} * 1024; @stat = stat("/var/lib/dpkg/info/".$debs{$pkg}{package}.".list"); $bt = bt($stat[9]); - print "-rw-r--r-- 1 root root $sz $bt $dn/$fn.debd\n"; - print "lrwxrwxrwx 1 root root $sz $bt all/$fn.debd -> ../$dn/$fn.debd\n"; + print "-rw-r--r-- 1 0 0 $sz $bt $dn/$fn.debd\n"; + print "lrwxrwxrwx 1 0 0 $sz $bt all/$fn.debd -> ../$dn/$fn.debd\n"; } } diff --git a/src/vfs/extfs/helpers/iso9660.in b/src/vfs/extfs/helpers/iso9660.in index 61b0b1357..fd0a83c5f 100644 --- a/src/vfs/extfs/helpers/iso9660.in +++ b/src/vfs/extfs/helpers/iso9660.in @@ -217,7 +217,7 @@ BEGIN { attr=substr($0, 1, length($0)-length(name)) # strip inodes and extra dir entries; fix perms sub(irx, "", name) - sub("^---------- 0 0 0", "-r--r--r-- 1 root root", attr) + sub("^---------- 0 0 0", "-r--r--r-- 1 0 0 ", attr) sub(" $", "", name) # for Joliet UCS level 3 if (SEMICOLON == "YES") sub(";1$", "", name); diff --git a/src/vfs/extfs/helpers/rpm b/src/vfs/extfs/helpers/rpm index 8fa918869..47b2e6e73 100755 --- a/src/vfs/extfs/helpers/rpm +++ b/src/vfs/extfs/helpers/rpm @@ -74,7 +74,7 @@ SED="sed" param=$1; shift rpm_filename=$1; shift -FILEPREF="-r--r--r-- 1 root root " +FILEPREF="-r--r--r-- 1 0 0 " mcrpmfs_getDesription() { @@ -135,7 +135,7 @@ mcrpmfs_list_fastRPM () echo "$FILEPREF 0 $DATE INFO/VENDOR" echo "$FILEPREF 0 $DATE INFO/DESCRIPTION" echo "$FILEPREF 0 $DATE INFO/SUMMARY" - echo "dr-xr-xr-x 1 root root 0 $DATE INFO/SCRIPTS" + echo "dr-xr-xr-x 1 0 0 0 $DATE INFO/SCRIPTS" echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PRETRANS" echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTTRANS" echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREIN" @@ -220,17 +220,17 @@ mcrpmfs_list () HEADERSIZE=`printf '%s\n' "$DESC" | wc -c` # 'echo' can't be used for arbitrary data (see commit message). printf '%s %s %s HEADER\n' "${FILEPREF}" "${HEADERSIZE}" "${DATE}" - echo "-r-xr-xr-x 1 root root 0 $DATE INSTALL" + echo "-r-xr-xr-x 1 0 0 0 $DATE INSTALL" case "${rpm_filename}" in *.src.rpm) - echo "-r-xr-xr-x 1 root root 0 $DATE REBUILD" + echo "-r-xr-xr-x 1 0 0 0 $DATE REBUILD" ;; *) - echo "-r-xr-xr-x 1 root root 0 $DATE UPGRADE" + echo "-r-xr-xr-x 1 0 0 0 $DATE UPGRADE" ;; esac - echo "dr-xr-xr-x 3 root root 0 $DATE INFO" + echo "dr-xr-xr-x 3 0 0 0 $DATE INFO" if [ `mcrpmfs_getRawOneTag "%{EPOCH}"` = "(none)" ]; then echo "$FILEPREF 0 $DATE INFO/NAME-VERSION-RELEASE" else diff --git a/src/vfs/extfs/helpers/rpms+.in b/src/vfs/extfs/helpers/rpms+.in index 9a8e7de8b..e55835474 100644 --- a/src/vfs/extfs/helpers/rpms+.in +++ b/src/vfs/extfs/helpers/rpms+.in @@ -46,9 +46,9 @@ sub list } } for $i (sort keys %files) { - print "dr-xr-xr-x 1 root root 0 $DATE $i/\n"; + print "dr-xr-xr-x 1 0 0 0 $DATE $i/\n"; for $fn (sort @{$files{$i}}) { - print "-r--r--r-- 1 root root $sizes{$fn} $dates{$fn} $i/$fn.trpm\n"; + print "-r--r--r-- 1 0 0 $sizes{$fn} $dates{$fn} $i/$fn.trpm\n"; } } } diff --git a/src/vfs/extfs/helpers/trpm b/src/vfs/extfs/helpers/trpm index d9a79308d..b60948050 100755 --- a/src/vfs/extfs/helpers/trpm +++ b/src/vfs/extfs/helpers/trpm @@ -33,13 +33,13 @@ mcrpmfs_list () if test -z "$MCFASTRPM"; then MCFASTRPM=$MCFASTRPM_DFLT fi - FILEPREF="-r--r--r-- 1 root root " + FILEPREF="-r--r--r-- 1 0 0 " DESC=`$RPM -qi -- "$1"` DATE=`$RPM -q --qf "%{BUILDTIME:date}" -- "$1" | cut -c 5-11,21-24` HEADERSIZE=`echo "$DESC" | wc -c` - echo "-r--r--r-- 1 root root $HEADERSIZE $DATE HEADER" - echo "-r-xr-xr-x 1 root root 40 $DATE UNINSTALL" - echo "dr-xr-xr-x 3 root root 0 $DATE INFO" + echo "-r--r--r-- 1 0 0 $HEADERSIZE $DATE HEADER" + echo "-r-xr-xr-x 1 0 0 40 $DATE UNINSTALL" + echo "dr-xr-xr-x 3 0 0 0 $DATE INFO" echo "$FILEPREF 0 $DATE INFO/NAME-VERSION-RELEASE" echo "$FILEPREF 0 $DATE INFO/GROUP" echo "$FILEPREF 0 $DATE INFO/BUILDHOST" @@ -54,7 +54,7 @@ mcrpmfs_list () test "`$RPM -q --qf \"%{SUMMARY}\" -- "$1"`" = "(none)" || echo "$FILEPREF 0 $DATE INFO/SUMMARY" if test "`$RPM -q --qf \"%{RPMTAG_PREIN}%{RPMTAG_POSTIN}%{RPMTAG_PREUN}%{RPMTAG_POSTUN}%{VERIFYSCRIPT}\" -- "$1"`" != "(none)(none)(none)(none)(none)"; then - echo "dr-xr-xr-x 1 root root 0 $DATE INFO/SCRIPTS" + echo "dr-xr-xr-x 1 0 0 0 $DATE INFO/SCRIPTS" test "`$RPM -q --qf \"%{RPMTAG_PREIN}\" -- "$1"`" = '(none)' || echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREIN" test "`$RPM -q --qf \"%{RPMTAG_POSTIN}\" -- "$1"`" = '(none)' || @@ -72,7 +72,7 @@ mcrpmfs_list () echo "$FILEPREF 0 $DATE INFO/VENDOR" echo "$FILEPREF 0 $DATE INFO/DESCRIPTION" echo "$FILEPREF 0 $DATE INFO/SUMMARY" - echo "dr-xr-xr-x 1 root root 0 $DATE INFO/SCRIPTS" + echo "dr-xr-xr-x 1 0 0 0 $DATE INFO/SCRIPTS" echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREIN" echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTIN" echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREUN"