2010-12-15 21:47:38 +00:00
|
|
|
|
diff --git a/policycoreutils/Makefile b/policycoreutils/Makefile
|
2013-02-08 14:44:20 +00:00
|
|
|
|
index 3980799..6624804 100644
|
2010-12-15 21:47:38 +00:00
|
|
|
|
--- a/policycoreutils/Makefile
|
|
|
|
|
+++ b/policycoreutils/Makefile
|
|
|
|
|
@@ -1,4 +1,4 @@
|
2013-02-08 14:44:20 +00:00
|
|
|
|
-SUBDIRS = sepolicy setfiles semanage load_policy newrole run_init sandbox secon audit2allow audit2why sestatus semodule_package semodule semodule_link semodule_expand semodule_deps sepolgen-ifgen setsebool scripts po man gui
|
|
|
|
|
+SUBDIRS = sepolicy setfiles semanage semanage/default_encoding load_policy newrole run_init sandbox secon audit2allow sestatus semodule_package semodule semodule_link semodule_expand semodule_deps sepolgen-ifgen setsebool scripts po man gui
|
2010-12-15 21:47:38 +00:00
|
|
|
|
|
|
|
|
|
INOTIFYH = $(shell ls /usr/include/sys/inotify.h 2>/dev/null)
|
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
diff --git a/policycoreutils/audit2allow/Makefile b/policycoreutils/audit2allow/Makefile
|
|
|
|
|
index 88635d4..41d37b0 100644
|
|
|
|
|
--- a/policycoreutils/audit2allow/Makefile
|
|
|
|
|
+++ b/policycoreutils/audit2allow/Makefile
|
|
|
|
|
@@ -10,9 +10,11 @@ all: ;
|
|
|
|
|
install: all
|
|
|
|
|
-mkdir -p $(BINDIR)
|
|
|
|
|
install -m 755 audit2allow $(BINDIR)
|
|
|
|
|
+ (cd $(BINDIR); ln audit2allow audit2why)
|
|
|
|
|
install -m 755 sepolgen-ifgen $(BINDIR)
|
|
|
|
|
-mkdir -p $(MANDIR)/man1
|
|
|
|
|
install -m 644 audit2allow.1 $(MANDIR)/man1/
|
|
|
|
|
+ install -m 644 audit2why.1 $(MANDIR)/man1/
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
rm -f *~
|
2012-11-13 15:30:48 +00:00
|
|
|
|
diff --git a/policycoreutils/audit2allow/audit2allow b/policycoreutils/audit2allow/audit2allow
|
2013-02-08 14:44:20 +00:00
|
|
|
|
index 8e0c396..9bd66f5 100644
|
2012-11-13 15:30:48 +00:00
|
|
|
|
--- a/policycoreutils/audit2allow/audit2allow
|
|
|
|
|
+++ b/policycoreutils/audit2allow/audit2allow
|
2013-02-08 14:44:20 +00:00
|
|
|
|
@@ -18,7 +18,7 @@
|
|
|
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
-import sys
|
|
|
|
|
+import sys, os
|
|
|
|
|
|
|
|
|
|
import sepolgen.audit as audit
|
|
|
|
|
import sepolgen.policygen as policygen
|
2012-11-13 15:30:48 +00:00
|
|
|
|
@@ -29,6 +29,8 @@ import sepolgen.defaults as defaults
|
|
|
|
|
import sepolgen.module as module
|
|
|
|
|
from sepolgen.sepolgeni18n import _
|
|
|
|
|
import selinux.audit2why as audit2why
|
|
|
|
|
+import locale
|
|
|
|
|
+locale.setlocale(locale.LC_ALL, '')
|
|
|
|
|
|
|
|
|
|
class AuditToPolicy:
|
|
|
|
|
VERSION = "%prog .1"
|
2013-02-08 14:44:20 +00:00
|
|
|
|
@@ -80,8 +82,7 @@ class AuditToPolicy:
|
|
|
|
|
parser.add_option("--interface-info", dest="interface_info", help="file name of interface information")
|
|
|
|
|
parser.add_option("--debug", dest="debug", action="store_true", default=False,
|
|
|
|
|
help="leave generated modules for -M")
|
|
|
|
|
-
|
|
|
|
|
- parser.add_option("-w", "--why", dest="audit2why", action="store_true", default=False,
|
|
|
|
|
+ parser.add_option("-w", "--why", dest="audit2why", action="store_true", default=(os.path.basename(sys.argv[0])=="audit2why"),
|
|
|
|
|
help="Translates SELinux audit messages into a description of why the access was denied")
|
|
|
|
|
|
|
|
|
|
options, args = parser.parse_args()
|
|
|
|
|
diff --git a/policycoreutils/audit2allow/audit2why.1 b/policycoreutils/audit2allow/audit2why.1
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 0000000..a9e8893
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/policycoreutils/audit2allow/audit2why.1
|
|
|
|
|
@@ -0,0 +1 @@
|
|
|
|
|
+.so man1/audit2allow.1
|
2012-03-30 19:18:42 +00:00
|
|
|
|
diff --git a/policycoreutils/audit2allow/sepolgen-ifgen b/policycoreutils/audit2allow/sepolgen-ifgen
|
|
|
|
|
index ef4bec3..9b313ec 100644
|
|
|
|
|
--- a/policycoreutils/audit2allow/sepolgen-ifgen
|
|
|
|
|
+++ b/policycoreutils/audit2allow/sepolgen-ifgen
|
|
|
|
|
@@ -61,20 +61,10 @@ def parse_options():
|
|
|
|
|
|
|
|
|
|
return options
|
|
|
|
|
|
|
|
|
|
-def get_policy():
|
|
|
|
|
- i = selinux.security_policyvers()
|
|
|
|
|
- p = selinux.selinux_binary_policy_path() + "." + str(i)
|
|
|
|
|
- while i > 0 and not os.path.exists(p):
|
|
|
|
|
- i = i - 1
|
|
|
|
|
- p = selinux.selinux_binary_policy_path() + "." + str(i)
|
|
|
|
|
- if i > 0:
|
|
|
|
|
- return p
|
|
|
|
|
- return None
|
|
|
|
|
-
|
|
|
|
|
def get_attrs(policy_path):
|
|
|
|
|
try:
|
|
|
|
|
if not policy_path:
|
|
|
|
|
- policy_path = get_policy()
|
|
|
|
|
+ policy_path = selinux.selinux_current_policy_path()
|
|
|
|
|
if not policy_path:
|
|
|
|
|
sys.stderr.write("No installed policy to check\n")
|
|
|
|
|
return None
|
2013-02-08 14:44:20 +00:00
|
|
|
|
diff --git a/policycoreutils/audit2why/Makefile b/policycoreutils/audit2why/Makefile
|
|
|
|
|
deleted file mode 100644
|
|
|
|
|
index 63eb8b3..0000000
|
|
|
|
|
--- a/policycoreutils/audit2why/Makefile
|
|
|
|
|
+++ /dev/null
|
|
|
|
|
@@ -1,18 +0,0 @@
|
|
|
|
|
-# Installation directories.
|
|
|
|
|
-PREFIX ?= $(DESTDIR)/usr
|
|
|
|
|
-BINDIR ?= $(PREFIX)/bin
|
|
|
|
|
-MANDIR ?= $(PREFIX)/share/man
|
|
|
|
|
-
|
|
|
|
|
-TARGETS=audit2why
|
|
|
|
|
-
|
|
|
|
|
-all: $(TARGETS)
|
|
|
|
|
-
|
|
|
|
|
-install: all
|
|
|
|
|
- -mkdir -p $(BINDIR)
|
|
|
|
|
- install -m 755 $(TARGETS) $(BINDIR)
|
|
|
|
|
- -mkdir -p $(MANDIR)/man1
|
|
|
|
|
- install -m 644 audit2why.1 $(MANDIR)/man1/
|
|
|
|
|
-
|
|
|
|
|
-clean:
|
|
|
|
|
-
|
|
|
|
|
-relabel:
|
|
|
|
|
diff --git a/policycoreutils/audit2why/audit2why b/policycoreutils/audit2why/audit2why
|
|
|
|
|
deleted file mode 100644
|
|
|
|
|
index 21a72aa..0000000
|
|
|
|
|
--- a/policycoreutils/audit2why/audit2why
|
|
|
|
|
+++ /dev/null
|
|
|
|
|
@@ -1,2 +0,0 @@
|
|
|
|
|
-#!/bin/sh
|
|
|
|
|
-/usr/bin/audit2allow -w $*
|
|
|
|
|
diff --git a/policycoreutils/audit2why/audit2why.1 b/policycoreutils/audit2why/audit2why.1
|
|
|
|
|
deleted file mode 100644
|
|
|
|
|
index a9e8893..0000000
|
|
|
|
|
--- a/policycoreutils/audit2why/audit2why.1
|
|
|
|
|
+++ /dev/null
|
|
|
|
|
@@ -1 +0,0 @@
|
|
|
|
|
-.so man1/audit2allow.1
|
2012-04-24 01:56:23 +00:00
|
|
|
|
diff --git a/policycoreutils/gui/Makefile b/policycoreutils/gui/Makefile
|
2013-02-08 14:44:20 +00:00
|
|
|
|
index b5abbb9..1148b36 100644
|
2012-09-15 12:34:36 +00:00
|
|
|
|
--- a/policycoreutils/gui/Makefile
|
2012-04-24 01:56:23 +00:00
|
|
|
|
+++ b/policycoreutils/gui/Makefile
|
2013-02-08 14:44:20 +00:00
|
|
|
|
@@ -1,7 +1,10 @@
|
|
|
|
|
# Installation directories.
|
|
|
|
|
PREFIX ?= ${DESTDIR}/usr
|
|
|
|
|
+SYSCONFDIR ?= ${DESTDIR}/etc
|
|
|
|
|
BINDIR ?= $(PREFIX)/bin
|
|
|
|
|
SHAREDIR ?= $(PREFIX)/share/system-config-selinux
|
|
|
|
|
+DATADIR ?= $(PREFIX)/share
|
|
|
|
|
+PAMDIR ?= $(SYSCONFDIR)/pam.d
|
|
|
|
|
|
|
|
|
|
TARGETS= \
|
|
|
|
|
booleansPage.py \
|
|
|
|
|
@@ -16,6 +19,7 @@ portsPage.py \
|
|
|
|
|
semanagePage.py \
|
|
|
|
|
statusPage.py \
|
2012-09-15 12:34:36 +00:00
|
|
|
|
system-config-selinux.glade \
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+system-config-selinux.png \
|
2012-10-25 17:58:08 +00:00
|
|
|
|
usersPage.py
|
2010-05-27 21:23:08 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
all: $(TARGETS) system-config-selinux.py polgengui.py
|
|
|
|
|
@@ -23,10 +27,21 @@ all: $(TARGETS) system-config-selinux.py polgengui.py
|
2012-10-25 17:58:08 +00:00
|
|
|
|
install: all
|
2013-02-08 14:44:20 +00:00
|
|
|
|
-mkdir -p $(SHAREDIR)
|
2012-10-25 17:58:08 +00:00
|
|
|
|
-mkdir -p $(BINDIR)
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+ -mkdir -p $(DATADIR)/pixmaps
|
|
|
|
|
+ -mkdir -p $(DATADIR)/icons/hicolor/24x24/apps
|
|
|
|
|
+ -mkdir -p $(SYSCONFDIR)
|
|
|
|
|
+ -mkdir -p $(PAMDIR)
|
|
|
|
|
+ -mkdir -p $(SYSCONFDIR)/security/console.apps/system-config-selinux
|
2012-10-25 17:58:08 +00:00
|
|
|
|
install -m 755 system-config-selinux.py $(SHAREDIR)
|
|
|
|
|
install -m 755 polgengui.py $(SHAREDIR)
|
2013-02-08 14:44:20 +00:00
|
|
|
|
install -m 755 sepolgen $(BINDIR)
|
2012-10-25 17:58:08 +00:00
|
|
|
|
install -m 644 $(TARGETS) $(SHAREDIR)
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+ install -m 644 system-config-selinux.png $(DATADIR)/pixmaps
|
|
|
|
|
+ install -m 644 system-config-selinux.png $(DATADIR)/icons/hicolor/24x24/apps
|
|
|
|
|
+ install -m 644 system-config-selinux.png $(DATADIR)/system-config-selinux
|
|
|
|
|
+ install -m 644 *.desktop $(DATADIR)/system-config-selinux
|
|
|
|
|
+ install -m 644 system-config-selinux.pam $(PAMDIR)/system-config-selinux
|
|
|
|
|
+ install -m 644 system-config-selinux.console $(SYSCONFDIR)/security/console.apps/system-config-selinux
|
2012-09-15 12:34:36 +00:00
|
|
|
|
|
2012-10-25 17:58:08 +00:00
|
|
|
|
clean:
|
2012-09-15 12:34:36 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
diff --git a/policycoreutils/gui/selinux-polgengui.desktop b/policycoreutils/gui/selinux-polgengui.desktop
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 0000000..0c2f399
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/policycoreutils/gui/selinux-polgengui.desktop
|
|
|
|
|
@@ -0,0 +1,67 @@
|
|
|
|
|
+[Desktop Entry]
|
|
|
|
|
+Name=SELinux Policy Generation Tool
|
|
|
|
|
+Name[bn_IN]=SELinux Policy নির্মাণের সামগ্রী
|
|
|
|
|
+Name[ca]=Eina de generació de polítiques del SELinux
|
|
|
|
|
+Name[da]=Regelsætgenereringsværktøj til SELinux
|
|
|
|
|
+Name[de]=Tool zur Erstellung von SELinux-Richtlinien
|
|
|
|
|
+Name[es]=Generador de Políticas de SELinux
|
|
|
|
|
+Name[fi]=SELinux-käytäntöjen generointityökalu
|
|
|
|
|
+Name[fr]=Outil de génération de stratégies SELinux
|
|
|
|
|
+Name[gu]=SELinux પોલિસી બનાવટ સાધન
|
|
|
|
|
+Name[hi]=SELinux पॉलिसी जनन औजार
|
|
|
|
|
+Name[it]=Tool di generazione della policy di SELinux
|
|
|
|
|
+Name[ja]=SELinux ポリシー生成ツール
|
|
|
|
|
+Name[kn]=SELinux ಪಾಲಿಸಿ ಉತ್ಪಾದನಾ ಉಪಕರಣ
|
|
|
|
|
+Name[ko]=SELinux 정책 생성 도구
|
|
|
|
|
+Name[ml]=SELinux പോളിസി ഉത്പാദന പ്രയോഗം
|
|
|
|
|
+Name[mr]=SELinux करार निर्माण साधन
|
|
|
|
|
+Name[nl]=SELinux tactiek generatie gereedschap
|
|
|
|
|
+Name[or]=SELinux ନୀତି ସୃଷ୍ଟି ଉପକରଣ
|
|
|
|
|
+Name[pa]=SELinux ਪਾਲਿਸੀ ਨਿਰਮਾਣ ਜੰਤਰ
|
|
|
|
|
+Name[pl]=Narzędzie tworzenia polityki SELinuksa
|
|
|
|
|
+Name[pt]=Ferramenta de Geração de Políticas SELinux
|
|
|
|
|
+Name[pt_BR]=Ferramenta de criação de políticas do SELinux
|
|
|
|
|
+Name[ru]=Средство создания политики SELinux
|
|
|
|
|
+Name[sv]=Genereringsverktyg för SELinuxpolicy
|
|
|
|
|
+Name[ta]=SELinux பாலிசி உற்பத்தி கருவி
|
|
|
|
|
+Name[te]=SELinux నిర్వహణ
|
|
|
|
|
+Name[uk]=Утиліта генерації правил SELinux
|
|
|
|
|
+Name[zh_CN]=SELinux 策略生成工具
|
|
|
|
|
+Name[zh_TW]=SELinux 政策產生工具(SELinux Policy Generation Tool)
|
|
|
|
|
+Comment=Generate SELinux policy modules
|
|
|
|
|
+Comment[bn_IN]=SELinux নিয়মনীতির মডিউল নির্মাণ করুন
|
|
|
|
|
+Comment[ca]=Genera els mòduls de les polítiques de SELinux
|
|
|
|
|
+Comment[da]=Generér SELinux-regelsætmodul
|
|
|
|
|
+Comment[de]=Tool zur Erstellung von SELinux-Richtlinien
|
|
|
|
|
+Comment[es]=Generar módulos de política de SELinux
|
|
|
|
|
+Comment[fi]=Generoi SELinuxin käytäntömoduuleja
|
|
|
|
|
+Comment[fr]=Génére des modules de stratégie SELinux
|
|
|
|
|
+Comment[gu]=SELinux પોલિસી મોડ્યુલોને ઉત્પન્ન કરો
|
|
|
|
|
+Comment[hi]=नया पॉलिसी मॉड्यूल उत्पन्न करें
|
|
|
|
|
+Comment[it]=Genera moduli della politica di SELinux
|
|
|
|
|
+Comment[ja]=新しいポリシーモジュールの作成
|
|
|
|
|
+Comment[kn]=SELinux ಪಾಲಿಸಿ ಘಟಕಗಳನ್ನು ಉತ್ಪಾದಿಸು
|
|
|
|
|
+Comment[ko]=SELinux 정책 모듈 생성
|
|
|
|
|
+Comment[ml]=SELinux യ പോളിസി ഘങ്ങള് തയ്യാറാക്കുക
|
|
|
|
|
+Comment[mr]=SELinux करार घटके निर्माण करा
|
|
|
|
|
+Comment[nl]=Maak een SELinux tactiek module aan
|
|
|
|
|
+Comment[or]=SELinux ନୀତି ଏକକାଂଶ ସୃଷ୍ଟିକରନ୍ତୁ
|
|
|
|
|
+Comment[pa]=SELinux ਪਾਲਿਸੀ ਮੈਡਿਊਲ ਬਣਾਓ
|
|
|
|
|
+Comment[pl]=Tworzenie nowych modułów polityki SELinuksa
|
|
|
|
|
+Comment[pt]=Gerar módulos de políticas SELinux
|
|
|
|
|
+Comment[pt_BR]=Gerar módulos de política do SELinux
|
|
|
|
|
+Comment[ru]=Генерация модулей политики SELinux
|
|
|
|
|
+Comment[sv]=Generera SELinux-policymoduler
|
|
|
|
|
+Comment[ta]=SELinux கொள்கை தொகுதியை உருவாக்கவும்
|
|
|
|
|
+Comment[te]=SELinux పాలసీ మాడ్యూళ్ళను వుద్భవింపచేయుము
|
|
|
|
|
+Comment[uk]=Створення модулів контролю доступу SELinux
|
|
|
|
|
+Comment[zh_CN]=生成 SELinux 策略模块
|
|
|
|
|
+Comment[zh_TW]=產生 SELinux 政策模組
|
|
|
|
|
+StartupNotify=true
|
|
|
|
|
+Icon=system-config-selinux
|
|
|
|
|
+Exec=/usr/bin/selinux-polgengui
|
|
|
|
|
+Type=Application
|
|
|
|
|
+Terminal=false
|
|
|
|
|
+Categories=System;Security;
|
|
|
|
|
+X-Desktop-File-Install-Version=0.2
|
|
|
|
|
+Keywords=policy;security;selinux;avc;permission;mac;
|
|
|
|
|
diff --git a/policycoreutils/gui/system-config-selinux.console b/policycoreutils/gui/system-config-selinux.console
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 0000000..42b48a3
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/policycoreutils/gui/system-config-selinux.console
|
|
|
|
|
@@ -0,0 +1,3 @@
|
|
|
|
|
+USER=root
|
|
|
|
|
+PROGRAM=/usr/share/system-config-selinux/system-config-selinux.py
|
|
|
|
|
+SESSION=true
|
|
|
|
|
diff --git a/policycoreutils/gui/system-config-selinux.desktop b/policycoreutils/gui/system-config-selinux.desktop
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 0000000..8822ce2
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/policycoreutils/gui/system-config-selinux.desktop
|
|
|
|
|
@@ -0,0 +1,67 @@
|
|
|
|
|
+[Desktop Entry]
|
|
|
|
|
+Name=SELinux Management
|
|
|
|
|
+Name[bn_IN]=SELinux পরিচালনা
|
|
|
|
|
+Name[da]=Håndtering af SELinux
|
|
|
|
|
+Name[de]=SELinux-Management
|
|
|
|
|
+Name[ca]=Gestió de SELinux
|
|
|
|
|
+Name[es]=Administración de SELinux
|
|
|
|
|
+Name[fi]=SELinuxin ylläpito
|
|
|
|
|
+Name[fr]=Gestion de SELinux
|
|
|
|
|
+Name[gu]=SELinux સંચાલન
|
|
|
|
|
+Name[hi]=SELinux प्रबंधन
|
|
|
|
|
+Name[jp]=SELinux 管理
|
|
|
|
|
+Name[it]=Gestione di SELinux
|
|
|
|
|
+Name[kn]=SELinux ವ್ಯವಸ್ಥಾಪನೆ
|
|
|
|
|
+Name[ko]=SELinux 관리
|
|
|
|
|
+Name[ml]=SELinux മാനേജ്മെന്റ്
|
|
|
|
|
+Name[mr]=SELinux मॅनेजमेंट
|
|
|
|
|
+Name[nl]=SELinux beheer
|
|
|
|
|
+Name[or]=SELinux ପରିଚାଳନା
|
|
|
|
|
+Name[pa]=SELinux ਮੈਨੇਜਮੈਂਟ
|
|
|
|
|
+Name[pl]=Zarządzanie SELinuksem
|
|
|
|
|
+Name[pt_BR]=Gerenciamento do SELinux
|
|
|
|
|
+Name[pt]=Gestão de SELinux
|
|
|
|
|
+Name[ru]=Управление SELinux
|
|
|
|
|
+Name[sv]=SELinux-hantering
|
|
|
|
|
+Name[ta]=SELinux மேலாண்மை
|
|
|
|
|
+Name[te]=SELinux నిర్వహణ
|
|
|
|
|
+Name[uk]=Керування SELinux
|
|
|
|
|
+Name[zh_CN]=SELinux 管理
|
|
|
|
|
+Name[zh_TW]=SELinux 管理
|
|
|
|
|
+Comment=Configure SELinux in a graphical setting
|
|
|
|
|
+Comment[bn_IN]=গ্রাফিক্যাল পরিবেশে SELinux কনফিগার করুন
|
|
|
|
|
+Comment[ca]=Configura SELinuc an mode de preferències gràfiques
|
|
|
|
|
+Comment[da]=Konfigurér SELinux i et grafisk miljø
|
|
|
|
|
+Comment[de]=SELinux in einer grafischen Einstellung konfigurieren
|
|
|
|
|
+Comment[es]=Defina SELinux en una configuración de interfaz gráfica
|
|
|
|
|
+Comment[fi]=Tee SELinuxin asetukset graafisesti
|
|
|
|
|
+Comment[fr]=Configure SELinux dans un environnement graphique
|
|
|
|
|
+Comment[gu]=ગ્રાફિકલ સુયોજનમાં SELinux ને રૂપરેખાંકિત કરો
|
|
|
|
|
+Comment[hi]=SELinux को आलेखी सेटिंग में विन्यस्त करें
|
|
|
|
|
+Comment[it]=Configura SELinux in una impostazione grafica
|
|
|
|
|
+Comment[jp]=グラフィカルな設定画面で SELinux を設定する
|
|
|
|
|
+Comment[ko]=SELinux를 그래픽 사용자 인터페이스로 설정
|
|
|
|
|
+Comment[kn]=SELinux ಅನ್ನು ಒಂದು ಚಿತ್ರಾತ್ಮಕ ಸಿದ್ದತೆಯಲ್ಲಿ ಸಂರಚಿಸಿ
|
|
|
|
|
+Comment[ml]=ഒരു ഗ്രാഫിക്കല് സജ്ജീകരണത്തില് SELinux ക്രമീകരിയ്ക്കുക
|
|
|
|
|
+Comment[mr]=ग्राफिकल सेटिंगमध्ये SELinux संरचीत करा
|
|
|
|
|
+Comment[nl]=Configureer SELinux in een grafische omgeving
|
|
|
|
|
+Comment[or]=SELinux କୁ ଆଲେଖିକ ସଂରଚନାରେ ବିନ୍ୟାସ କରନ୍ତୁ
|
|
|
|
|
+Comment[pa]=SELinux ਨੂੰ ਗਰਾਫੀਕਲ ਸੈਟਿੰਗ ਵਿੱਚ ਸੰਰਚਿਤ ਕਰੋ
|
|
|
|
|
+Comment[pl]=Konfiguracja SELinuksa w trybie graficznym
|
|
|
|
|
+Comment[pt]=Configurar o SELinux num ambiente gráfico
|
|
|
|
|
+Comment[pt_BR]=Configure o SELinux em uma configuração gráfica
|
|
|
|
|
+Comment[ru]=Настройка SELinux в графическом режиме
|
|
|
|
|
+Comment[sv]=Konfigurera SELinux i en grafisk miljö
|
|
|
|
|
+Comment[ta]=SELinuxஐ ஒரு வரைகலை அமைவில் கட்டமைக்கவும்
|
|
|
|
|
+Comment[te]=SELinuxను గ్రాఫికల్ అమర్పునందు ఆకృతీకరించుము
|
|
|
|
|
+Comment[uk]=Засіб для налаштування SELinux з графічним інтерфейсом
|
|
|
|
|
+Comment[zh_CN]=在图形设置中配置 SELinux
|
|
|
|
|
+Comment[zh_TW]=在圖形話設定中配置 SELinux
|
|
|
|
|
+StartupNotify=true
|
|
|
|
|
+Icon=system-config-selinux
|
|
|
|
|
+Exec=/usr/bin/system-config-selinux
|
|
|
|
|
+Type=Application
|
|
|
|
|
+Terminal=false
|
|
|
|
|
+Categories=System;Security;
|
|
|
|
|
+X-Desktop-File-Install-Version=0.2
|
|
|
|
|
+Keywords=policy;security;selinux;avc;permission;mac;
|
|
|
|
|
diff --git a/policycoreutils/gui/system-config-selinux.pam b/policycoreutils/gui/system-config-selinux.pam
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 0000000..6a8c230
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/policycoreutils/gui/system-config-selinux.pam
|
|
|
|
|
@@ -0,0 +1,8 @@
|
|
|
|
|
+#%PAM-1.0
|
|
|
|
|
+auth sufficient pam_rootok.so
|
|
|
|
|
+auth sufficient pam_timestamp.so
|
|
|
|
|
+auth include system-auth
|
|
|
|
|
+session required pam_permit.so
|
|
|
|
|
+session optional pam_xauth.so
|
|
|
|
|
+session optional pam_timestamp.so
|
|
|
|
|
+account required pam_permit.so
|
|
|
|
|
diff --git a/policycoreutils/gui/system-config-selinux.png b/policycoreutils/gui/system-config-selinux.png
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 0000000..68ffcb7
|
|
|
|
|
Binary files /dev/null and b/policycoreutils/gui/system-config-selinux.png differ
|
|
|
|
|
diff --git a/policycoreutils/newrole/newrole.c b/policycoreutils/newrole/newrole.c
|
|
|
|
|
index 8fbf2d0..3753ef4 100644
|
|
|
|
|
--- a/policycoreutils/newrole/newrole.c
|
|
|
|
|
+++ b/policycoreutils/newrole/newrole.c
|
|
|
|
|
@@ -680,7 +680,7 @@ static int relabel_tty(const char *ttyn, security_context_t new_context,
|
|
|
|
|
security_context_t * tty_context,
|
|
|
|
|
security_context_t * new_tty_context)
|
|
|
|
|
{
|
|
|
|
|
- int fd;
|
|
|
|
|
+ int fd, rc;
|
|
|
|
|
int enforcing = security_getenforce();
|
|
|
|
|
security_context_t tty_con = NULL;
|
|
|
|
|
security_context_t new_tty_con = NULL;
|
|
|
|
|
@@ -699,7 +699,13 @@ static int relabel_tty(const char *ttyn, security_context_t new_context,
|
|
|
|
|
fprintf(stderr, _("Error! Could not open %s.\n"), ttyn);
|
|
|
|
|
return fd;
|
|
|
|
|
}
|
|
|
|
|
- fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK);
|
|
|
|
|
+ /* this craziness is to make sure we cann't block on open and deadlock */
|
|
|
|
|
+ rc = fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK);
|
|
|
|
|
+ if (rc) {
|
|
|
|
|
+ fprintf(stderr, _("Error! Could not clear O_NONBLOCK on %s\n"), ttyn);
|
|
|
|
|
+ close(fd);
|
|
|
|
|
+ return rc;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
if (fgetfilecon(fd, &tty_con) < 0) {
|
|
|
|
|
fprintf(stderr, _("%s! Could not get current context "
|
|
|
|
|
@@ -1010,9 +1016,9 @@ int main(int argc, char *argv[])
|
|
|
|
|
int fd;
|
|
|
|
|
pid_t childPid = 0;
|
|
|
|
|
char *shell_argv0 = NULL;
|
|
|
|
|
+ int rc;
|
|
|
|
|
|
|
|
|
|
#ifdef USE_PAM
|
|
|
|
|
- int rc;
|
|
|
|
|
int pam_status; /* pam return code */
|
|
|
|
|
pam_handle_t *pam_handle; /* opaque handle used by all PAM functions */
|
|
|
|
|
|
|
|
|
|
@@ -1226,15 +1232,23 @@ int main(int argc, char *argv[])
|
|
|
|
|
fd = open(ttyn, O_RDONLY | O_NONBLOCK);
|
|
|
|
|
if (fd != 0)
|
|
|
|
|
goto err_close_pam;
|
|
|
|
|
- fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK);
|
|
|
|
|
+ rc = fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK);
|
|
|
|
|
+ if (rc)
|
|
|
|
|
+ goto err_close_pam;
|
|
|
|
|
+
|
|
|
|
|
fd = open(ttyn, O_RDWR | O_NONBLOCK);
|
|
|
|
|
if (fd != 1)
|
|
|
|
|
goto err_close_pam;
|
|
|
|
|
- fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK);
|
|
|
|
|
+ rc = fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK);
|
|
|
|
|
+ if (rc)
|
|
|
|
|
+ goto err_close_pam;
|
|
|
|
|
+
|
|
|
|
|
fd = open(ttyn, O_RDWR | O_NONBLOCK);
|
|
|
|
|
if (fd != 2)
|
|
|
|
|
goto err_close_pam;
|
|
|
|
|
- fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK);
|
|
|
|
|
+ rc = fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK);
|
|
|
|
|
+ if (rc)
|
|
|
|
|
+ goto err_close_pam;
|
2012-09-15 12:34:36 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
}
|
|
|
|
|
/*
|
|
|
|
|
diff --git a/policycoreutils/po/Makefile b/policycoreutils/po/Makefile
|
|
|
|
|
index a377996..9c1486e 100644
|
|
|
|
|
--- a/policycoreutils/po/Makefile
|
|
|
|
|
+++ b/policycoreutils/po/Makefile
|
|
|
|
|
@@ -81,12 +81,16 @@ POTFILES = \
|
|
|
|
|
../sepolicy/sepolicy/templates/var_log.py \
|
|
|
|
|
../sepolicy/sepolicy/templates/var_run.py \
|
|
|
|
|
../sepolicy/sepolicy/templates/var_spool.py \
|
|
|
|
|
+ booleans.py
|
2012-09-15 12:34:36 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
#default:: clean
|
2012-09-15 12:34:36 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
all:: $(MOFILES)
|
2012-07-04 11:41:05 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
-$(POTFILE): $(POTFILES)
|
|
|
|
|
+booleans.py:
|
|
|
|
|
+ sepolicy booleans -a > booleans.py
|
|
|
|
|
+
|
|
|
|
|
+$(POTFILE): $(POTFILES) booleans.py
|
|
|
|
|
$(XGETTEXT) --keyword=_ --keyword=N_ $(POTFILES)
|
|
|
|
|
@if cmp -s $(NLSPACKAGE).po $(POTFILE); then \
|
|
|
|
|
rm -f $(NLSPACKAGE).po; \
|
|
|
|
|
@@ -95,6 +99,7 @@ $(POTFILE): $(POTFILES)
|
|
|
|
|
fi; \
|
2012-09-15 12:34:36 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
update-po: Makefile $(POTFILE) refresh-po
|
|
|
|
|
+ @rm -f booleans.py
|
2012-09-26 14:59:14 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
refresh-po: Makefile
|
|
|
|
|
for cat in $(POFILES); do \
|
|
|
|
|
diff --git a/policycoreutils/restorecond/Makefile b/policycoreutils/restorecond/Makefile
|
|
|
|
|
index 3074542..3b704d8 100644
|
|
|
|
|
--- a/policycoreutils/restorecond/Makefile
|
|
|
|
|
+++ b/policycoreutils/restorecond/Makefile
|
|
|
|
|
@@ -5,6 +5,7 @@ LIBDIR ?= $(PREFIX)/lib
|
|
|
|
|
MANDIR = $(PREFIX)/share/man
|
|
|
|
|
AUTOSTARTDIR = $(DESTDIR)/etc/xdg/autostart
|
|
|
|
|
DBUSSERVICEDIR = $(DESTDIR)/usr/share/dbus-1/services
|
|
|
|
|
+SYSTEMDDIR ?= $(DESTDIR)/usr/lib/systemd
|
|
|
|
|
|
|
|
|
|
autostart_DATA = sealertauto.desktop
|
|
|
|
|
INITDIR = $(DESTDIR)/etc/rc.d/init.d
|
|
|
|
|
@@ -39,7 +40,8 @@ install: all
|
|
|
|
|
install -m 644 restorecond.desktop $(AUTOSTARTDIR)/restorecond.desktop
|
|
|
|
|
-mkdir -p $(DBUSSERVICEDIR)
|
|
|
|
|
install -m 600 org.selinux.Restorecond.service $(DBUSSERVICEDIR)/org.selinux.Restorecond.service
|
|
|
|
|
-
|
|
|
|
|
+ -mkdir -p $(SYSTEMDDIR)/system
|
|
|
|
|
+ install -m 644 restorecond.service $(SYSTEMDDIR)/system/
|
|
|
|
|
relabel: install
|
|
|
|
|
/sbin/restorecon $(SBINDIR)/restorecond
|
|
|
|
|
|
|
|
|
|
diff --git a/policycoreutils/restorecond/restorecond.service b/policycoreutils/restorecond/restorecond.service
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 0000000..11f4ffd
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/policycoreutils/restorecond/restorecond.service
|
|
|
|
|
@@ -0,0 +1,12 @@
|
|
|
|
|
+[Unit]
|
|
|
|
|
+Description=Restorecon maintaining path file context
|
|
|
|
|
+After=syslog.target
|
|
|
|
|
+ConditionPathExists=/etc/selinux/restorecond.conf
|
|
|
|
|
+
|
|
|
|
|
+[Service]
|
|
|
|
|
+Type=oneshot
|
|
|
|
|
+ExecStart=/usr/sbin/restorecond
|
|
|
|
|
+RemainAfterExit=yes
|
|
|
|
|
+
|
|
|
|
|
+[Install]
|
|
|
|
|
+WantedBy=multi-user.target
|
|
|
|
|
diff --git a/policycoreutils/restorecond/user.c b/policycoreutils/restorecond/user.c
|
|
|
|
|
index 00a646f..2c28676 100644
|
|
|
|
|
--- a/policycoreutils/restorecond/user.c
|
|
|
|
|
+++ b/policycoreutils/restorecond/user.c
|
|
|
|
|
@@ -54,6 +54,7 @@ static const char *PATH="/org/selinux/Restorecond";
|
|
|
|
|
static const char *INTERFACE="org.selinux.RestorecondIface";
|
|
|
|
|
static const char *RULE="type='signal',interface='org.selinux.RestorecondIface'";
|
|
|
|
|
|
|
|
|
|
+static int local_lock_fd = -1;
|
|
|
|
|
|
|
|
|
|
static DBusHandlerResult
|
|
|
|
|
signal_filter (DBusConnection *connection __attribute__ ((__unused__)), DBusMessage *message, void *user_data)
|
|
|
|
|
@@ -201,17 +202,18 @@ static int local_server() {
|
|
|
|
|
perror("asprintf");
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
- int fd = open(ptr, O_CREAT | O_WRONLY | O_NOFOLLOW | O_CLOEXEC, S_IRUSR | S_IWUSR);
|
|
|
|
|
+ local_lock_fd = open(ptr, O_CREAT | O_WRONLY | O_NOFOLLOW | O_CLOEXEC, S_IRUSR | S_IWUSR);
|
|
|
|
|
if (debug_mode)
|
|
|
|
|
g_warning ("Lock file: %s", ptr);
|
|
|
|
|
|
|
|
|
|
free(ptr);
|
|
|
|
|
- if (fd < 0) {
|
|
|
|
|
+ if (local_lock_fd < 0) {
|
|
|
|
|
if (debug_mode)
|
|
|
|
|
perror("open");
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
- if (flock(fd, LOCK_EX | LOCK_NB) < 0) {
|
|
|
|
|
+ if (flock(local_lock_fd, LOCK_EX | LOCK_NB) < 0) {
|
|
|
|
|
+ close(local_lock_fd);
|
|
|
|
|
if (debug_mode)
|
|
|
|
|
perror("flock");
|
|
|
|
|
return -1;
|
|
|
|
|
@@ -226,6 +228,12 @@ static int local_server() {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+static void end_local_server(void) {
|
|
|
|
|
+ if (local_lock_fd >= 0)
|
|
|
|
|
+ close(local_lock_fd);
|
|
|
|
|
+ local_lock_fd = -1;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
int server(int master_fd, const char *watch_file) {
|
|
|
|
|
GMainLoop *loop;
|
|
|
|
|
|
|
|
|
|
@@ -253,6 +261,7 @@ int server(int master_fd, const char *watch_file) {
|
|
|
|
|
g_main_loop_run (loop);
|
|
|
|
|
|
|
|
|
|
end:
|
|
|
|
|
+ end_local_server();
|
|
|
|
|
g_main_loop_unref (loop);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
diff --git a/policycoreutils/sandbox/seunshare.c b/policycoreutils/sandbox/seunshare.c
|
|
|
|
|
index dbd5977..f10df39 100644
|
|
|
|
|
--- a/policycoreutils/sandbox/seunshare.c
|
|
|
|
|
+++ b/policycoreutils/sandbox/seunshare.c
|
|
|
|
|
@@ -962,7 +962,7 @@ int main(int argc, char **argv) {
|
|
|
|
|
char *LANG = NULL;
|
|
|
|
|
int rc = -1;
|
|
|
|
|
|
|
|
|
|
- if (unshare(CLONE_NEWNS) < 0) {
|
|
|
|
|
+ if (unshare(CLONE_NEWNS | CLONE_NEWIPC) < 0) {
|
|
|
|
|
perror(_("Failed to unshare"));
|
|
|
|
|
goto childerr;
|
|
|
|
|
}
|
|
|
|
|
diff --git a/policycoreutils/scripts/Makefile b/policycoreutils/scripts/Makefile
|
|
|
|
|
index 201a988..f5d6e9d 100644
|
|
|
|
|
--- a/policycoreutils/scripts/Makefile
|
|
|
|
|
+++ b/policycoreutils/scripts/Makefile
|
|
|
|
|
@@ -9,23 +9,12 @@ LOCALEDIR ?= $(PREFIX)/share/locale
|
|
|
|
|
.PHONY: all genhomedircon
|
|
|
|
|
all: fixfiles genhomedircon chcat
|
|
|
|
|
|
|
|
|
|
-genhomedircon:
|
|
|
|
|
- @echo "#!/bin/sh" > genhomedircon
|
|
|
|
|
- @echo >> genhomedircon
|
|
|
|
|
- @if [ -z "${SEMODULE_PATH}" ]; then \
|
|
|
|
|
- echo "${USRSBINDIR}/semodule -Bn" >> genhomedircon; \
|
|
|
|
|
- else \
|
|
|
|
|
- echo "${SEMODULE_PATH}/semodule -Bn" >> genhomedircon; \
|
|
|
|
|
- fi
|
2012-10-25 17:58:08 +00:00
|
|
|
|
-
|
2013-02-08 14:44:20 +00:00
|
|
|
|
install: all
|
|
|
|
|
-mkdir -p $(BINDIR)
|
|
|
|
|
install -m 755 chcat $(BINDIR)
|
|
|
|
|
install -m 755 fixfiles $(SBINDIR)
|
|
|
|
|
- install -m 755 genhomedircon $(USRSBINDIR)
|
|
|
|
|
-mkdir -p $(MANDIR)/man8
|
|
|
|
|
install -m 644 fixfiles.8 $(MANDIR)/man8/
|
|
|
|
|
- install -m 644 genhomedircon.8 $(MANDIR)/man8/
|
|
|
|
|
install -m 644 chcat.8 $(MANDIR)/man8/
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
diff --git a/policycoreutils/scripts/genhomedircon.8 b/policycoreutils/scripts/genhomedircon.8
|
|
|
|
|
deleted file mode 100644
|
|
|
|
|
index 8ec509c..0000000
|
|
|
|
|
--- a/policycoreutils/scripts/genhomedircon.8
|
|
|
|
|
+++ /dev/null
|
|
|
|
|
@@ -1,24 +0,0 @@
|
|
|
|
|
-.TH GENHOMEDIRCON "12" "Sep 2011" "Security Enhanced Linux" "SELinux"
|
|
|
|
|
-.SH NAME
|
|
|
|
|
-genhomedircon \- generate SELinux file context configuration entries for user home directories
|
|
|
|
|
-.SH SYNOPSIS
|
|
|
|
|
-.B genhomedircon
|
|
|
|
|
-is a script that executes
|
|
|
|
|
-.B semodule
|
|
|
|
|
-to rebuild the currently active SELinux policy (without reloading it) and to create the
|
|
|
|
|
-labels for each user home directory based on directory paths returned by calls to getpwent().
|
|
|
|
|
-
|
|
|
|
|
-The latter functionality depends on the "usepasswd" parameter being set to "true" (default)
|
|
|
|
|
-in /etc/selinux/semanage.conf.
|
|
|
|
|
-
|
|
|
|
|
-This script is usually executed by
|
|
|
|
|
-.B semanage
|
|
|
|
|
-although this default behavior can be optionally modified by setting to "true" the
|
|
|
|
|
-"disable-genhomedircon" in /etc/selinux/semanage.conf.
|
|
|
|
|
-
|
|
|
|
|
-.SH AUTHOR
|
|
|
|
|
-This manual page was written by
|
|
|
|
|
-.I Dan Walsh <dwalsh@redhat.com>
|
|
|
|
|
-
|
|
|
|
|
-.SH "SEE ALSO"
|
|
|
|
|
-semanage.conf(5), semodule(8), semanage(8), getpwent(3), getpwent_r(3)
|
|
|
|
|
diff --git a/policycoreutils/semanage/default_encoding/Makefile b/policycoreutils/semanage/default_encoding/Makefile
|
2012-10-25 17:58:08 +00:00
|
|
|
|
new file mode 100644
|
2013-02-08 14:44:20 +00:00
|
|
|
|
index 0000000..e15a877
|
2012-10-25 17:58:08 +00:00
|
|
|
|
--- /dev/null
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+++ b/policycoreutils/semanage/default_encoding/Makefile
|
|
|
|
|
@@ -0,0 +1,8 @@
|
|
|
|
|
+all:
|
|
|
|
|
+ LDFLAGS="" python setup.py build
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+install: all
|
|
|
|
|
+ LDFLAGS="" python setup.py install --root=$(DESTDIR)/
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+clean:
|
|
|
|
|
+ rm -rf build *~
|
|
|
|
|
diff --git a/policycoreutils/semanage/default_encoding/default_encoding.c b/policycoreutils/semanage/default_encoding/default_encoding.c
|
2012-09-15 12:34:36 +00:00
|
|
|
|
new file mode 100644
|
2013-02-08 14:44:20 +00:00
|
|
|
|
index 0000000..023b8f4
|
2012-09-15 12:34:36 +00:00
|
|
|
|
--- /dev/null
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+++ b/policycoreutils/semanage/default_encoding/default_encoding.c
|
|
|
|
|
@@ -0,0 +1,57 @@
|
|
|
|
|
+/*
|
|
|
|
|
+ * Authors:
|
|
|
|
|
+ * John Dennis <jdennis@redhat.com>
|
|
|
|
|
+ *
|
|
|
|
|
+ * Copyright (C) 2009 Red Hat
|
|
|
|
|
+ * see file 'COPYING' for use and warranty information
|
|
|
|
|
+ *
|
|
|
|
|
+ * This program is free software; you can redistribute it and/or
|
|
|
|
|
+ * modify it under the terms of the GNU General Public License as
|
|
|
|
|
+ * published by the Free Software Foundation.
|
|
|
|
|
+ *
|
|
|
|
|
+ * This program is distributed in the hope that it will be useful,
|
|
|
|
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
+ * GNU General Public License for more details.
|
|
|
|
|
+ *
|
|
|
|
|
+ * You should have received a copy of the GNU General Public License
|
|
|
|
|
+ * along with this program; if not, write to the Free Software
|
|
|
|
|
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
|
+ */
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+#include <Python.h>
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+PyDoc_STRVAR(setdefaultencoding_doc,
|
|
|
|
|
+"setdefaultencoding(encoding='utf-8')\n\
|
|
|
|
|
+\n\
|
|
|
|
|
+Set the current default string encoding used by the Unicode implementation.\n\
|
|
|
|
|
+Defaults to utf-8."
|
|
|
|
|
+);
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+static PyObject *
|
|
|
|
|
+setdefaultencoding(PyObject *self, PyObject *args, PyObject *kwds)
|
|
|
|
|
+{
|
|
|
|
|
+ static char *kwlist[] = {"utf-8", NULL};
|
|
|
|
|
+ char *encoding;
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "s:setdefaultencoding", kwlist, &encoding))
|
|
|
|
|
+ return NULL;
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+ if (PyUnicode_SetDefaultEncoding(encoding))
|
|
|
|
|
+ return NULL;
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+ Py_RETURN_NONE;
|
|
|
|
|
+}
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+static PyMethodDef methods[] = {
|
|
|
|
|
+ {"setdefaultencoding", (PyCFunction)setdefaultencoding, METH_VARARGS|METH_KEYWORDS, setdefaultencoding_doc},
|
|
|
|
|
+ {NULL, NULL} /* sentinel */
|
|
|
|
|
+};
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+
|
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+PyMODINIT_FUNC
|
|
|
|
|
+initdefault_encoding_utf8(void)
|
|
|
|
|
+{
|
|
|
|
|
+ PyUnicode_SetDefaultEncoding("utf-8");
|
|
|
|
|
+ Py_InitModule3("default_encoding_utf8", methods, "Forces the default encoding to utf-8");
|
|
|
|
|
+}
|
|
|
|
|
diff --git a/policycoreutils/semanage/default_encoding/policycoreutils/__init__.py b/policycoreutils/semanage/default_encoding/policycoreutils/__init__.py
|
2011-01-21 20:11:31 +00:00
|
|
|
|
new file mode 100644
|
2013-02-08 14:44:20 +00:00
|
|
|
|
index 0000000..ccb6b8b
|
2011-01-21 20:11:31 +00:00
|
|
|
|
--- /dev/null
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+++ b/policycoreutils/semanage/default_encoding/policycoreutils/__init__.py
|
|
|
|
|
@@ -0,0 +1,17 @@
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+#
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+# Copyright (C) 2006,2007,2008, 2009 Red Hat, Inc.
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+#
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+# This program is free software; you can redistribute it and/or modify
|
|
|
|
|
+# it under the terms of the GNU General Public License as published by
|
|
|
|
|
+# the Free Software Foundation; either version 2 of the License, or
|
|
|
|
|
+# (at your option) any later version.
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+#
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+# This program is distributed in the hope that it will be useful,
|
|
|
|
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
+# GNU General Public License for more details.
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+#
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+# You should have received a copy of the GNU General Public License
|
|
|
|
|
+# along with this program; if not, write to the Free Software
|
|
|
|
|
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+#
|
2013-02-08 14:44:20 +00:00
|
|
|
|
diff --git a/policycoreutils/semanage/default_encoding/setup.py b/policycoreutils/semanage/default_encoding/setup.py
|
2012-10-25 17:58:08 +00:00
|
|
|
|
new file mode 100644
|
2013-02-08 14:44:20 +00:00
|
|
|
|
index 0000000..e2befdb
|
2012-10-25 17:58:08 +00:00
|
|
|
|
--- /dev/null
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+++ b/policycoreutils/semanage/default_encoding/setup.py
|
|
|
|
|
@@ -0,0 +1,38 @@
|
|
|
|
|
+# Authors:
|
|
|
|
|
+# John Dennis <jdennis@redhat.com>
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+#
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+# Copyright (C) 2009 Red Hat
|
2012-10-25 17:58:08 +00:00
|
|
|
|
+# see file 'COPYING' for use and warranty information
|
2011-01-21 20:11:31 +00:00
|
|
|
|
+#
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+# This program is free software; you can redistribute it and/or
|
|
|
|
|
+# modify it under the terms of the GNU General Public License as
|
|
|
|
|
+# published by the Free Software Foundation.
|
2011-01-21 20:11:31 +00:00
|
|
|
|
+#
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+# This program is distributed in the hope that it will be useful,
|
|
|
|
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
+# GNU General Public License for more details.
|
2011-01-21 20:11:31 +00:00
|
|
|
|
+#
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+# You should have received a copy of the GNU General Public License
|
|
|
|
|
+# along with this program; if not, write to the Free Software
|
|
|
|
|
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
2013-01-04 22:14:27 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+from distutils.core import setup, Extension
|
2013-01-04 22:14:27 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+default_encoding_utf8 = Extension('policycoreutils.default_encoding_utf8', ['default_encoding.c'])
|
2011-01-21 20:11:31 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+setup(name = 'policycoreutils-default-encoding',
|
|
|
|
|
+ version = '0.1',
|
|
|
|
|
+ description = 'Forces the default encoding in Python to be utf-8',
|
|
|
|
|
+ long_description = 'Forces the default encoding in Python to be utf-8',
|
|
|
|
|
+ author = 'John Dennis',
|
|
|
|
|
+ author_email = 'jdennis@redhat.com',
|
|
|
|
|
+ maintainer = 'John Dennis',
|
|
|
|
|
+ maintainer_email = 'jdennis@redhat.com',
|
|
|
|
|
+ license = 'GPLv3+',
|
|
|
|
|
+ platforms = 'posix',
|
|
|
|
|
+ url = '',
|
|
|
|
|
+ download_url = '',
|
|
|
|
|
+ ext_modules = [default_encoding_utf8],
|
|
|
|
|
+ packages=["policycoreutils"],
|
2011-01-21 20:11:31 +00:00
|
|
|
|
+)
|
2013-02-08 14:44:20 +00:00
|
|
|
|
diff --git a/policycoreutils/semanage/semanage b/policycoreutils/semanage/semanage
|
|
|
|
|
index 6e33c85..49e4709 100644
|
|
|
|
|
--- a/policycoreutils/semanage/semanage
|
|
|
|
|
+++ b/policycoreutils/semanage/semanage
|
|
|
|
|
@@ -20,6 +20,7 @@
|
|
|
|
|
# 02111-1307 USA
|
|
|
|
|
#
|
|
|
|
|
#
|
|
|
|
|
+import policycoreutils.default_encoding_utf8
|
|
|
|
|
import sys, getopt, re
|
|
|
|
|
import seobject
|
|
|
|
|
import selinux
|
|
|
|
|
@@ -32,7 +33,7 @@ gettext.textdomain(PROGNAME)
|
|
|
|
|
try:
|
|
|
|
|
gettext.install(PROGNAME,
|
|
|
|
|
localedir="/usr/share/locale",
|
|
|
|
|
- unicode=False,
|
|
|
|
|
+ unicode=True,
|
|
|
|
|
codeset = 'utf-8')
|
|
|
|
|
except IOError:
|
|
|
|
|
import __builtin__
|
|
|
|
|
diff --git a/policycoreutils/semanage/seobject.py b/policycoreutils/semanage/seobject.py
|
|
|
|
|
index 85bc37f..02b1acd 100644
|
|
|
|
|
--- a/policycoreutils/semanage/seobject.py
|
|
|
|
|
+++ b/policycoreutils/semanage/seobject.py
|
|
|
|
|
@@ -32,11 +32,10 @@ from IPy import IP
|
|
|
|
|
import gettext
|
|
|
|
|
gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
|
|
|
|
|
gettext.textdomain(PROGNAME)
|
|
|
|
|
-try:
|
|
|
|
|
- gettext.install(PROGNAME, localedir = "/usr/share/locale", unicode = 1)
|
|
|
|
|
-except IOError:
|
|
|
|
|
- import __builtin__
|
|
|
|
|
- __builtin__.__dict__['_'] = unicode
|
2009-10-30 21:01:42 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+import gettext
|
|
|
|
|
+translation=gettext.translation(PROGNAME, localedir = "/usr/share/locale", fallback=True)
|
|
|
|
|
+_=translation.ugettext
|
2012-02-03 17:14:36 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
import syslog
|
2012-07-19 17:21:49 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
@@ -461,7 +460,9 @@ class loginRecords(semanageRecords):
|
|
|
|
|
if rc < 0:
|
|
|
|
|
raise ValueError(_("Could not check if login mapping for %s is defined") % name)
|
|
|
|
|
if exists:
|
|
|
|
|
- raise ValueError(_("Login mapping for %s is already defined") % name)
|
|
|
|
|
+ semanage_seuser_key_free(k)
|
|
|
|
|
+ return self.__modify(name, sename, serange)
|
2012-07-19 17:21:49 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
if name[0] == '%':
|
|
|
|
|
try:
|
|
|
|
|
grp.getgrnam(name[1:])
|
|
|
|
|
@@ -731,7 +732,8 @@ class seluserRecords(semanageRecords):
|
|
|
|
|
if rc < 0:
|
|
|
|
|
raise ValueError(_("Could not check if SELinux user %s is defined") % name)
|
|
|
|
|
if exists:
|
|
|
|
|
- raise ValueError(_("SELinux user %s is already defined") % name)
|
|
|
|
|
+ semanage_user_key_free(k)
|
|
|
|
|
+ return self.__modify(name, roles, selevel, serange, prefix)
|
2012-02-03 17:14:36 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
(rc, u) = semanage_user_create(self.sh)
|
|
|
|
|
if rc < 0:
|
|
|
|
|
@@ -1274,7 +1276,8 @@ class nodeRecords(semanageRecords):
|
2012-02-03 17:14:36 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
(rc, exists) = semanage_node_exists(self.sh, k)
|
|
|
|
|
if exists:
|
|
|
|
|
- raise ValueError(_("Addr %s already defined") % addr)
|
|
|
|
|
+ semanage_node_key_free(k)
|
|
|
|
|
+ return self.__modify(addr, mask, self.protocol[proto], serange, ctype)
|
2012-07-19 17:21:49 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
(rc, node) = semanage_node_create(self.sh)
|
|
|
|
|
if rc < 0:
|
|
|
|
|
@@ -1475,7 +1478,8 @@ class interfaceRecords(semanageRecords):
|
|
|
|
|
if rc < 0:
|
|
|
|
|
raise ValueError(_("Could not check if interface %s is defined") % interface)
|
|
|
|
|
if exists:
|
|
|
|
|
- raise ValueError(_("Interface %s already defined") % interface)
|
|
|
|
|
+ semanage_iface_key_free(k)
|
|
|
|
|
+ return self.__modify(interface, serange, ctype)
|
2012-11-07 15:49:52 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
(rc, iface) = semanage_iface_create(self.sh)
|
|
|
|
|
if rc < 0:
|
|
|
|
|
@@ -1777,7 +1781,8 @@ class fcontextRecords(semanageRecords):
|
|
|
|
|
raise ValueError(_("Could not check if file context for %s is defined") % target)
|
2012-11-07 15:49:52 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
if exists:
|
|
|
|
|
- raise ValueError(_("File context for %s already defined") % target)
|
|
|
|
|
+ semanage_fcontext_key_free(k)
|
|
|
|
|
+ return self.__modify(target, type, ftype, serange, seuser)
|
2012-07-19 17:21:49 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
(rc, fcontext) = semanage_fcontext_create(self.sh)
|
|
|
|
|
if rc < 0:
|
|
|
|
|
diff --git a/policycoreutils/semodule/Makefile b/policycoreutils/semodule/Makefile
|
|
|
|
|
index 4c5243a..9d7567b 100644
|
|
|
|
|
--- a/policycoreutils/semodule/Makefile
|
|
|
|
|
+++ b/policycoreutils/semodule/Makefile
|
|
|
|
|
@@ -22,8 +22,10 @@ semodule: $(SEMODULE_OBJS)
|
|
|
|
|
install: all
|
|
|
|
|
-mkdir -p $(SBINDIR)
|
|
|
|
|
install -m 755 semodule $(SBINDIR)
|
|
|
|
|
+ (cd $(SBINDIR); ln semodule genhomedircon)
|
|
|
|
|
test -d $(MANDIR)/man8 || install -m 755 -d $(MANDIR)/man8
|
|
|
|
|
install -m 644 semodule.8 $(MANDIR)/man8/
|
|
|
|
|
+ install -m 644 genhomedircon.8 $(MANDIR)/man8/
|
2011-08-18 11:23:59 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
relabel:
|
2012-02-03 17:14:36 +00:00
|
|
|
|
|
2013-02-08 14:44:20 +00:00
|
|
|
|
diff --git a/policycoreutils/semodule/genhomedircon.8 b/policycoreutils/semodule/genhomedircon.8
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 0000000..8ec509c
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/policycoreutils/semodule/genhomedircon.8
|
|
|
|
|
@@ -0,0 +1,24 @@
|
|
|
|
|
+.TH GENHOMEDIRCON "12" "Sep 2011" "Security Enhanced Linux" "SELinux"
|
|
|
|
|
+.SH NAME
|
|
|
|
|
+genhomedircon \- generate SELinux file context configuration entries for user home directories
|
|
|
|
|
+.SH SYNOPSIS
|
|
|
|
|
+.B genhomedircon
|
|
|
|
|
+is a script that executes
|
|
|
|
|
+.B semodule
|
|
|
|
|
+to rebuild the currently active SELinux policy (without reloading it) and to create the
|
|
|
|
|
+labels for each user home directory based on directory paths returned by calls to getpwent().
|
2012-02-03 17:14:36 +00:00
|
|
|
|
+
|
2013-02-08 14:44:20 +00:00
|
|
|
|
+The latter functionality depends on the "usepasswd" parameter being set to "true" (default)
|
|
|
|
|
+in /etc/selinux/semanage.conf.
|
|
|
|
|
+
|
|
|
|
|
+This script is usually executed by
|
|
|
|
|
+.B semanage
|
|
|
|
|
+although this default behavior can be optionally modified by setting to "true" the
|
|
|
|
|
+"disable-genhomedircon" in /etc/selinux/semanage.conf.
|
|
|
|
|
+
|
|
|
|
|
+.SH AUTHOR
|
|
|
|
|
+This manual page was written by
|
|
|
|
|
+.I Dan Walsh <dwalsh@redhat.com>
|
|
|
|
|
+
|
|
|
|
|
+.SH "SEE ALSO"
|
|
|
|
|
+semanage.conf(5), semodule(8), semanage(8), getpwent(3), getpwent_r(3)
|
|
|
|
|
diff --git a/policycoreutils/semodule/semodule.c b/policycoreutils/semodule/semodule.c
|
|
|
|
|
index 17b4fa5..6947b37 100644
|
|
|
|
|
--- a/policycoreutils/semodule/semodule.c
|
|
|
|
|
+++ b/policycoreutils/semodule/semodule.c
|
|
|
|
|
@@ -19,6 +19,7 @@
|
|
|
|
|
#include <sys/mman.h>
|
|
|
|
|
#include <sys/stat.h>
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
+#include <libgen.h>
|
|
|
|
|
|
|
|
|
|
#include <semanage/modules.h>
|
|
|
|
|
|
|
|
|
|
@@ -284,8 +285,12 @@ int main(int argc, char *argv[])
|
|
|
|
|
int i, commit = 0;
|
|
|
|
|
int result;
|
|
|
|
|
int status = EXIT_FAILURE;
|
|
|
|
|
-
|
|
|
|
|
+ char *genhomedirconargv[] = { "genhomedircon", "-B", "-n" };
|
|
|
|
|
create_signal_handlers();
|
|
|
|
|
+ if (strcmp(basename(argv[0]), "genhomedircon") == 0) {
|
|
|
|
|
+ argc = 3;
|
|
|
|
|
+ argv=genhomedirconargv;
|
|
|
|
|
+ }
|
|
|
|
|
parse_command_line(argc, argv);
|
|
|
|
|
|
|
|
|
|
if (build)
|