S_ISGID
#define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)
if (((mode) & (S_ISGID|S_ISUID)) != 0) \
~S_ISGID) | (old_mode & S_ISGID);
return ((i & ~S_ISGID) | (mode & S_ISGID));
(mode & S_ISGID) != 0,
(mode & S_ISGID) != 0,
Gen.g_mode &= ~S_ISGID;
if ((S_ISGID & G_p->g_mode) == S_ISGID && modestr[6] == 'x')
mode &= ~S_ISGID;
if (sb->st_mode & S_ISGID)
S_ISGID, 'S', 's',
#define P_A (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* allbits */
#define P_G (S_ISGID|S_ISVTX|S_IRWXG) /* group */
#if S_ISUID != 04000 || S_ISGID != 02000 || \
S_ISGID, S_ISUID,
return (nowho ? S_ISGID : S_ISGID|S_ISUID);
if (fchmod(fi, s.st_mode|S_ISGID) < 0)
static int m5[] = { 4, S_ISGID|S_IXGRP, 's', S_IXGRP,
'x', S_ISGID|LS_NOTREG, 'S',
S_ISGID, 'L', '-'};
S_ISGID, 'l', '-'};
return (!S_ISLNK(mode) && (mode & S_ISGID));
if (mode & (S_ISUID | S_ISGID)) {
mode &= ~S_ISUID & ~S_ISGID;
#define MODEBITS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
if (mode & (S_ISUID | S_ISGID)) {
mode &= ~S_ISUID & ~S_ISGID;
if ((st->st_mode & (S_ISUID | S_ISGID)) != 0) {
if (bitset(S_ISGID, st->st_mode))
if (bitset(S_ISGID, st->st_mode) && st->st_gid != 0)
else if (bitset(S_ISGID, stb.st_mode))
mode &= ~(S_ISGID|S_ISUID);
else if (bitset(S_ISGID, mode))
int m6[] = {2, S_ISGID, 's', S_IXGRP, 'x', '-'};
fileptr->ar_mode &= ~S_ISGID;
return(ftype(nxtarg(0), S_ISGID));
el_ent->cf_ent.ainfo.mode &= ~(S_ISUID | S_ISGID);
(ent->ainfo.mode & S_ISGID) &&
(S_ISGID|S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
if ((S_ISGID & Gen.g_mode) == S_ISGID && modestr[6] == 'x')
(sp->st_mode & S_ISGID) == S_ISGID)
MODEMASK & sp->st_mode & ~S_ISGID);
switch (mode & (S_ISGID|S_IXGRP|S_IFREG)) {
case S_ISGID|S_IXGRP:
case S_ISGID|S_IFREG:
case S_ISGID:
#define GFLAG S_ISGID /* setgid */
if (tempmode_t & (~(S_IAMB | S_ISUID | S_ISGID | S_ISVTX))) {
S_ISUID | S_ISGID | S_ISVTX)) {
mode = (mode & ~S_ISGID) | (stb.st_mode & S_ISGID);
{ 3, S_ISGID|(S_IEXEC>>3), 's', S_IEXEC>>3, 'x', S_ISGID, 'S', '-' };
return (ftype(nxtarg(0), S_ISGID));
on_client &= ~(S_ISUID|S_ISGID);
omode &= ~(S_ISUID|S_ISGID);
(tp->tn_mode & (S_ISUID | S_ISGID)) &&
tp->tn_mode &= ~(S_ISUID | S_ISGID);
if (dzp->z_mode & S_ISGID) {
if (!(flag & IS_ROOT_NODE) && (dzp->z_mode & S_ISGID) &&
acl_ids->z_mode |= S_ISGID;
if ((acl_ids->z_mode & S_ISGID) &&
acl_ids->z_mode &= ~S_ISGID;
mode = (fmode & (S_IFMT | S_ISUID | S_ISGID | S_ISVTX));
(zp->z_mode & (S_ISUID | S_ISGID)) != 0 &&
if ((zp->z_mode & (S_ISUID | S_ISGID)) != 0) {
zp->z_mode &= ~(S_ISUID | S_ISGID);
if ((vap->va_mode & (S_ISUID | S_ISGID)) != 0 &&
vap->va_mode &= ~(S_ISUID|S_ISGID);
if ((vap->va_mode & S_ISGID) != 0 &&
vap->va_mode &= ~S_ISGID;
#define S_ENFMT S_ISGID /* record locking enforcement flag */