示例#1
0
文件: setuid.C 项目: BillTheBest/k42
gid_t
__k42_linux_getgid (void)
{
    SysStatus rc;
    ProcessLinux::LinuxInfo linuxInfo;
    SYSCALL_ENTER();
    rc = DREFGOBJ(TheProcessLinuxRef)->getInfoLinuxPid(0, linuxInfo);
    SYSCALL_EXIT();
    if (_FAILURE(rc)) {
	return gid_t(-_SGENCD(rc));
    }
    return linuxInfo.creds.gid;
}
示例#2
0
gid_t gidFromName(QString name) {
  gid_t ret;
  if(name.isEmpty())
      return -1;
  if(name.at(0).digitValue() != -1) {
    ret = gid_t(name.toUInt());
  }
  else {
    // FIXME: use getgrnam_r instead later to make it reentrant
    struct group* grp = getgrnam(name.toLatin1());
    ret = grp ? grp->gr_gid : -1;
  }

  return ret;
}
示例#3
0
 Private(const passwd *p) : uid(uid_t(-1)), gid(gid_t(-1))
 {
     fillPasswd(p);
 }
示例#4
0
 Private(const char *name) : uid(uid_t(-1)), gid(gid_t(-1))
 {
     fillPasswd(name ? ::getpwnam( name ) : 0);
 }
示例#5
0
 Private() : uid(uid_t(-1)), gid(gid_t(-1)) {}
示例#6
0
bool KUserGroup::isValid() const {
	return gid() != gid_t(-1);
}
示例#7
0
bool KUserGroup::operator !=(const KUserGroup& user) const {
	return (gid() != user.gid()) || (gid() == gid_t(-1));
}
示例#8
0
bool KUserGroup::operator ==(const KUserGroup& group) const {
	return (gid() == group.gid()) && (gid() != gid_t(-1));
}
示例#9
0
 Private(const ::group *p) : gid(gid_t(-1))
 {
     fillGroup(p);
 }
示例#10
0
 Private(const char *_name) : gid(gid_t(-1))
 {
     fillGroup(_name ? ::getgrnam( _name ) : 0);
 }
示例#11
0
 Private() : gid(gid_t(-1)) {}