mirror of
https://github.com/google/santa.git
synced 2026-01-14 00:37:56 -05:00
Add helper to make declaring unit tests easier Add unit_tests test_suite containing all unit tests Fix reload rule Update to workspace-relative header locations that were missed before
32 lines
1.1 KiB
Objective-C
32 lines
1.1 KiB
Objective-C
/// Copyright 2015 Google Inc. All rights reserved.
|
|
///
|
|
/// Licensed under the Apache License, Version 2.0 (the "License");
|
|
/// you may not use this file except in compliance with the License.
|
|
/// You may obtain a copy of the License at
|
|
///
|
|
/// http://www.apache.org/licenses/LICENSE-2.0
|
|
///
|
|
/// Unless required by applicable law or agreed to in writing, software
|
|
/// distributed under the License is distributed on an "AS IS" BASIS,
|
|
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
/// See the License for the specific language governing permissions and
|
|
/// limitations under the License.
|
|
|
|
#import "Source/common/SNTDropRootPrivs.h"
|
|
|
|
BOOL DropRootPrivileges() {
|
|
if (getuid() == 0 || geteuid() == 0 || getgid() == 0 || getegid() == 0) {
|
|
uid_t nobody = (uid_t)-2;
|
|
if (setgid(nobody) != 0 || setgroups(0, NULL) != 0 || setegid(nobody) != 0 ||
|
|
setuid(nobody) != 0 || seteuid(nobody) != 0) {
|
|
return false;
|
|
}
|
|
|
|
if (getuid() != geteuid() || getgid() != getegid()) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|