1*d780102eSjmmv // 2*d780102eSjmmv // Automated Testing Framework (atf) 3*d780102eSjmmv // 4*d780102eSjmmv // Copyright (c) 2007 The NetBSD Foundation, Inc. 5*d780102eSjmmv // All rights reserved. 6*d780102eSjmmv // 7*d780102eSjmmv // Redistribution and use in source and binary forms, with or without 8*d780102eSjmmv // modification, are permitted provided that the following conditions 9*d780102eSjmmv // are met: 10*d780102eSjmmv // 1. Redistributions of source code must retain the above copyright 11*d780102eSjmmv // notice, this list of conditions and the following disclaimer. 12*d780102eSjmmv // 2. Redistributions in binary form must reproduce the above copyright 13*d780102eSjmmv // notice, this list of conditions and the following disclaimer in the 14*d780102eSjmmv // documentation and/or other materials provided with the distribution. 15*d780102eSjmmv // 16*d780102eSjmmv // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 17*d780102eSjmmv // CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 18*d780102eSjmmv // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19*d780102eSjmmv // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20*d780102eSjmmv // IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 21*d780102eSjmmv // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22*d780102eSjmmv // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 23*d780102eSjmmv // GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24*d780102eSjmmv // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25*d780102eSjmmv // IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26*d780102eSjmmv // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27*d780102eSjmmv // IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28*d780102eSjmmv // 29*d780102eSjmmv 30*d780102eSjmmv #if !defined(TOOLS_USER_HPP) 31*d780102eSjmmv #define TOOLS_USER_HPP 32*d780102eSjmmv 33*d780102eSjmmv extern "C" { 34*d780102eSjmmv #include <sys/types.h> 35*d780102eSjmmv } 36*d780102eSjmmv 37*d780102eSjmmv #include <utility> 38*d780102eSjmmv 39*d780102eSjmmv namespace tools { 40*d780102eSjmmv namespace user { 41*d780102eSjmmv 42*d780102eSjmmv uid_t euid(void); 43*d780102eSjmmv void drop_privileges(const std::pair< int, int >); 44*d780102eSjmmv std::pair< int, int > get_user_ids(const std::string&); 45*d780102eSjmmv bool is_member_of_group(gid_t); 46*d780102eSjmmv bool is_root(void); 47*d780102eSjmmv bool is_unprivileged(void); 48*d780102eSjmmv 49*d780102eSjmmv } // namespace user 50*d780102eSjmmv } // namespace tools 51*d780102eSjmmv 52*d780102eSjmmv #endif // !defined(TOOLS_USER_HPP) 53