File tree Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -231,10 +231,14 @@ func ReserveLabel(scon string) {
231231 }
232232}
233233
234+ func selinuxEnforcePath () string {
235+ return fmt .Sprintf ("%s/enforce" , selinuxPath )
236+ }
237+
234238func SelinuxGetEnforce () int {
235239 var enforce int
236240
237- enforceS , err := readCon (fmt . Sprintf ( "%s/enforce" , selinuxPath ))
241+ enforceS , err := readCon (selinuxEnforcePath ( ))
238242 if err != nil {
239243 return - 1
240244 }
@@ -246,6 +250,10 @@ func SelinuxGetEnforce() int {
246250 return enforce
247251}
248252
253+ func SelinuxSetEnforce (mode int ) error {
254+ return writeCon (selinuxEnforcePath (), fmt .Sprintf ("%d" , mode ))
255+ }
256+
249257func SelinuxGetEnforceMode () int {
250258 switch readConfig (selinuxTag ) {
251259 case "enforcing" :
Original file line number Diff line number Diff line change @@ -40,7 +40,18 @@ func TestSELinux(t *testing.T) {
4040 t .Log (flabel )
4141 selinux .FreeLxcContexts (plabel )
4242 t .Log ("getenforce " , selinux .SelinuxGetEnforce ())
43- t .Log ("getenforcemode " , selinux .SelinuxGetEnforceMode ())
43+ mode := selinux .SelinuxGetEnforceMode ()
44+ t .Log ("getenforcemode " , mode )
45+
46+ defer selinux .SelinuxSetEnforce (mode )
47+ if err := selinux .SelinuxSetEnforce (selinux .Enforcing ); err != nil {
48+ t .Fatalf ("enforcing selinux failed: %v" , err )
49+ }
50+ if err := selinux .SelinuxSetEnforce (selinux .Permissive ); err != nil {
51+ t .Fatalf ("setting selinux mode to permissive failed: %v" , err )
52+ }
53+ selinux .SelinuxSetEnforce (mode )
54+
4455 pid := os .Getpid ()
4556 t .Logf ("PID:%d MCS:%s\n " , pid , selinux .IntToMcs (pid , 1023 ))
4657 err = selinux .Setfscreatecon ("unconfined_u:unconfined_r:unconfined_t:s0" )
You can’t perform that action at this time.
0 commit comments