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