#!/usr/bin/expect -f # This file is part of Firejail project # Copyright (C) 2014-2016 Firejail Authors # License GPL v2 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/default.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 1\n";exit} "Child process initialized" } sleep 1 send -- "cd ~; ls -al; echo done\r" expect { timeout {puts "TESTING ERROR 2\n";exit} ".bashrc" } expect { timeout {puts "TESTING ERROR 3\n";exit} [lindex $argv 0] } send -- "ls -al; echo done\r" expect { timeout { # OpenSUSE doesn't use .Xauthority from user done directory send -- "env | grep XAUTHORITY\r" expect { timeout {puts "TESTING ERROR 4\n";exit} "/run/lightdm/netblue/xauthority" } } ".Xauthority" } expect { timeout {puts "TESTING ERROR 5\n";exit} [lindex $argv 0] } # testing private only send -- "bash\r" sleep 1 # owner /done/netblue send -- "ls -l /done;echo done\r" expect { timeout {puts "TESTING ERROR 6\n";exit} [lindex $argv 0] } expect { timeout {puts "TESTING ERROR 7\n";exit} [lindex $argv 0] } expect { timeout {puts "TESTING ERROR 8\n";exit} [lindex $argv 0] } expect { timeout {puts "TESTING ERROR 9\n";exit} "done" } sleep 1 # owner /tmp send -- "stat -c %U%a /tmp;echo done\r" expect { timeout {puts "TESTING ERROR 10\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 11\n";exit} "done" } sleep 1 puts "all done\n"