Allow sepgsql regression tests to be run from a user homedir.
KaiGai Kohei, with some changes by me.
This commit is contained in:
parent
00a7c9014a
commit
a64bdf5f65
@ -9,6 +9,33 @@ PG_DATADIR="$2"
|
|||||||
|
|
||||||
echo
|
echo
|
||||||
echo "============== checking selinux environment =============="
|
echo "============== checking selinux environment =============="
|
||||||
|
#
|
||||||
|
# Test.0 - necessary commands for environment checks
|
||||||
|
#
|
||||||
|
echo -n "test installed commands ... "
|
||||||
|
if ! which --help >&/dev/null; then
|
||||||
|
echo "failed"
|
||||||
|
echo
|
||||||
|
echo "'which' command was not found, executable or installed."
|
||||||
|
echo "Please make sure your PATH, or install this command at first."
|
||||||
|
echo
|
||||||
|
echo "If yum is available on your system, it will suggest packages"
|
||||||
|
echo "to be installed:"
|
||||||
|
echo " # yum provides which"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if ! matchpathcon -n / >&/dev/null; then
|
||||||
|
echo "failed"
|
||||||
|
echo
|
||||||
|
echo "'matchpathcon' command was not found, executable or installed."
|
||||||
|
echo "Please make sure your PATH, or install this command at first."
|
||||||
|
echo
|
||||||
|
echo "If yum is available on your system, it will suggest packages"
|
||||||
|
echo "to be installed:"
|
||||||
|
echo " # yum provides which"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "ok"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test.1 - must be launched at unconfined_t domain
|
# Test.1 - must be launched at unconfined_t domain
|
||||||
@ -164,24 +191,36 @@ fi
|
|||||||
echo "ok"
|
echo "ok"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test.8 - 'psql' command must be labeled as 'bin_t' type
|
# Test.8 - 'psql' command must be executable by test domain
|
||||||
#
|
#
|
||||||
echo -n "test label of psql ... "
|
echo -n "test execution of psql ... "
|
||||||
|
|
||||||
CMD_PSQL="${PG_BINDIR}/psql"
|
CMD_PSQL="${PG_BINDIR}/psql"
|
||||||
LABEL_PSQL=`stat -c '%C' ${CMD_PSQL} | sed 's/:/ /g' | awk '{print $3}'`
|
${CMD_RUNCON} -t sepgsql_regtest_user_t ${CMD_PSQL} --help >& /dev/null
|
||||||
if [ "${LABEL_PSQL}" != "bin_t" ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "failed"
|
echo "failed"
|
||||||
echo
|
echo
|
||||||
echo "The ${CMD_PSQL} must be labeled as bin_t type."
|
echo "The ${CMD_PSQL} must be executable by sepgsql_regtest_user_t"
|
||||||
echo "You can assign right label using restorecon, as follows:"
|
echo "domain. It has restricted privileges compared to unconfined_t,"
|
||||||
|
echo "so you should ensure whether this command is labeled correctly."
|
||||||
echo
|
echo
|
||||||
echo " \$ su - (not needed, if you owns installation directory)"
|
echo " \$ su - (not needed, if you owns installation directory)"
|
||||||
echo " # restorecon -R ${PG_BINDIR}"
|
EXPECT_PSQL=`matchpathcon -n ${CMD_PSQL} | sed 's/:/ /g' | awk '{print $3}'`
|
||||||
echo
|
if [ "${EXPECT_PSQL}" = "user_home_t" ]; then
|
||||||
echo "Or, using chcon"
|
## Case of installation on /home directory
|
||||||
echo
|
echo " # restorecon -R ${PG_BINDIR}"
|
||||||
echo " # chcon -t bin_t ${CMD_PSQL}"
|
echo
|
||||||
|
echo "Or, using chcon"
|
||||||
|
echo
|
||||||
|
echo " # chcon -t user_home_t ${CMD_PSQL}"
|
||||||
|
else
|
||||||
|
echo " \$ su - (not needed, if you own the installation directory)"
|
||||||
|
echo " # restorecon -R ${PG_BINDIR}"
|
||||||
|
echo
|
||||||
|
echo "Or, using chcon"
|
||||||
|
echo
|
||||||
|
echo " # chcon -t bin_t ${CMD_PSQL}"
|
||||||
|
fi
|
||||||
echo
|
echo
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
policy_module(sepgsql-regtest, 1.02)
|
policy_module(sepgsql-regtest, 1.03)
|
||||||
|
|
||||||
gen_require(`
|
gen_require(`
|
||||||
all_userspace_class_perms
|
all_userspace_class_perms
|
||||||
@ -24,6 +24,7 @@ postgresql_procedure_object(sepgsql_regtest_trusted_proc_exec_t)
|
|||||||
role sepgsql_regtest_dba_r;
|
role sepgsql_regtest_dba_r;
|
||||||
userdom_base_user_template(sepgsql_regtest_dba)
|
userdom_base_user_template(sepgsql_regtest_dba)
|
||||||
userdom_manage_home_role(sepgsql_regtest_dba_r, sepgsql_regtest_dba_t)
|
userdom_manage_home_role(sepgsql_regtest_dba_r, sepgsql_regtest_dba_t)
|
||||||
|
userdom_exec_user_home_content_files(sepgsql_regtest_dba_t)
|
||||||
userdom_write_user_tmp_sockets(sepgsql_regtest_user_t)
|
userdom_write_user_tmp_sockets(sepgsql_regtest_user_t)
|
||||||
optional_policy(`
|
optional_policy(`
|
||||||
postgresql_admin(sepgsql_regtest_dba_t, sepgsql_regtest_dba_r)
|
postgresql_admin(sepgsql_regtest_dba_t, sepgsql_regtest_dba_r)
|
||||||
@ -40,6 +41,7 @@ optional_policy(`
|
|||||||
role sepgsql_regtest_user_r;
|
role sepgsql_regtest_user_r;
|
||||||
userdom_base_user_template(sepgsql_regtest_user)
|
userdom_base_user_template(sepgsql_regtest_user)
|
||||||
userdom_manage_home_role(sepgsql_regtest_user_r, sepgsql_regtest_user_t)
|
userdom_manage_home_role(sepgsql_regtest_user_r, sepgsql_regtest_user_t)
|
||||||
|
userdom_exec_user_home_content_files(sepgsql_regtest_user_t)
|
||||||
userdom_write_user_tmp_sockets(sepgsql_regtest_user_t)
|
userdom_write_user_tmp_sockets(sepgsql_regtest_user_t)
|
||||||
optional_policy(`
|
optional_policy(`
|
||||||
postgresql_role(sepgsql_regtest_user_r, sepgsql_regtest_user_t)
|
postgresql_role(sepgsql_regtest_user_r, sepgsql_regtest_user_t)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user