#!/usr/bin/expect -f set timeout 10 spawn $env(SHELL) match_max 100000 if { $argc != 1 } { puts "TESTING ERROR: argument missing" puts "Usage: private.exp username" puts "where username is the name of the current user" exit } # testing profile and private send -- "firejail --private --profile=/etc/firejail/generic.profile\r" expect { timeout {puts "TESTING ERROR 0\n";exit} "Child process initialized" } sleep 1 send -- "exit\r" sleep 1 send -- "firejail --private --noprofile\r" expect { timeout {puts "TESTING ERROR 0\n";exit} "Child process initialized" } sleep 1 send -- "ls -al; pwd\r" expect { timeout {puts "TESTING ERROR 0.1\n";exit} ".bashrc" } expect { timeout {puts "TESTING ERROR 0.2\n";exit} [lindex $argv 0] } send -- "ls -al; pwd\r" expect { timeout { # OpenSUSE doesn't use .Xauthority from user home directory send -- "env | grep XAUTHORITY\r" expect { timeout {puts "TESTING ERROR 0.3\n";exit} "/run/lightdm/netblue/xauthority" } } ".Xauthority" } expect { timeout {puts "TESTING ERROR 0.4\n";exit} [lindex $argv 0] } # testing private only send -- "bash\r" sleep 1 # owner /home/netblue send -- "ls -l /home;pwd\r" expect { timeout {puts "TESTING ERROR 1\n";exit} [lindex $argv 0] } expect { timeout {puts "TESTING ERROR 1.1\n";exit} [lindex $argv 0] } expect { timeout {puts "TESTING ERROR 1.2\n";exit} [lindex $argv 0] } expect { timeout {puts "TESTING ERROR 1.3\n";exit} "home" } sleep 1 # owner /tmp send -- "stat -c %U%a /tmp;pwd\r" expect { timeout {puts "TESTING ERROR 2\n";exit} "root777" {puts "version 1\n";} "root1777" {puts "version 2\n";} "nobody777" {puts "version 3\n";} "nobody1777" {puts "version 4\n";} } expect { timeout {puts "TESTING ERROR 2.1\n";exit} "home" } sleep 1 puts "all done\n"