Merge pull request #2760 from liubin/fix/2759-optimize-code-for-managing-temp-users

runtime: optimize code for managing temp users for rootless mode
This commit is contained in:
Fupan Li
2021-10-08 13:49:14 +08:00
committed by GitHub
4 changed files with 66 additions and 59 deletions

View File

@@ -23,13 +23,14 @@ import (
"context"
"crypto/rand"
"fmt"
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils"
"os"
"path/filepath"
"runtime"
"strings"
"sync"
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils"
"github.com/containernetworking/plugins/pkg/ns"
"github.com/opencontainers/runc/libcontainer/userns"
"github.com/sirupsen/logrus"

View File

@@ -11,7 +11,6 @@ import (
"encoding/hex"
"encoding/json"
"fmt"
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/rootless"
"io/ioutil"
"math"
"os"
@@ -24,6 +23,8 @@ import (
"time"
"unsafe"
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/rootless"
govmmQemu "github.com/kata-containers/govmm/qemu"
"github.com/opencontainers/selinux/go-selinux/label"
"github.com/pkg/errors"
@@ -1026,13 +1027,8 @@ func (q *qemu) cleanupVM() error {
q.Logger().WithError(err).WithField("uid", q.config.Uid).Warn("failed to find the user")
return nil
}
userdelPath, err := pkgUtils.FirstValidExecutable([]string{"/usr/sbin/userdel", "/sbin/userdel", "/bin/userdel"})
if err != nil {
q.Logger().WithError(err).WithField("user", u.Username).Warn("failed to delete the user")
return nil
}
_, err = pkgUtils.RunCommand([]string{userdelPath, "-f", u.Username})
if err != nil {
if err := pkgUtils.RemoveVmmUser(u.Username); err != nil {
q.Logger().WithError(err).WithField("user", u.Username).Warn("failed to delete the user")
}
}