fix install script15

This commit is contained in:
Edmund Tan 2025-07-22 03:14:03 +08:00
parent 1c51ff02b5
commit 69137f818c
1 changed files with 45 additions and 12 deletions

View File

@ -242,11 +242,17 @@ class EnrollmentManager {
foreach ($directories as $dir => $permissions) {
if (!is_dir($dir)) {
if (!mkdir($dir, $permissions, true)) {
// Use sudo to create system directories
if (!executeCommand("mkdir -p '$dir'")) {
throw new Exception("Failed to create directory: $dir");
}
if (!executeCommand("chmod " . decoct($permissions) . " '$dir'")) {
throw new Exception("Failed to set permissions for directory: $dir");
}
} else {
// Ensure permissions are correct even if directory exists
executeCommand("chmod " . decoct($permissions) . " '$dir'");
}
chmod($dir, $permissions);
}
return true;
@ -256,17 +262,33 @@ class EnrollmentManager {
* Save configuration files
*/
private function saveConfiguration() {
// Save JWT
if (!file_put_contents(JWT_FILE, $this->routerData['jwt'])) {
// Save JWT using temp file and sudo
$tempJwtFile = tempnam(sys_get_temp_dir(), 'ziti-jwt');
file_put_contents($tempJwtFile, $this->routerData['jwt']);
if (!executeCommand("cp '$tempJwtFile' " . JWT_FILE)) {
unlink($tempJwtFile);
throw new Exception('Failed to save JWT file');
}
chmod(JWT_FILE, 0600);
unlink($tempJwtFile);
// Save router configuration
if (!file_put_contents(ROUTER_CONFIG, $this->routerData['routerConfig']['yaml'])) {
if (!executeCommand("chmod 600 " . JWT_FILE)) {
throw new Exception('Failed to set JWT file permissions');
}
// Save router configuration using temp file and sudo
$tempConfigFile = tempnam(sys_get_temp_dir(), 'ziti-config');
file_put_contents($tempConfigFile, $this->routerData['routerConfig']['yaml']);
if (!executeCommand("cp '$tempConfigFile' " . ROUTER_CONFIG)) {
unlink($tempConfigFile);
throw new Exception('Failed to save router configuration');
}
chmod(ROUTER_CONFIG, 0644);
unlink($tempConfigFile);
if (!executeCommand("chmod 644 " . ROUTER_CONFIG)) {
throw new Exception('Failed to set router config permissions');
}
// Fix router configuration for proper enrollment
$this->fixRouterConfiguration();
@ -278,8 +300,8 @@ class EnrollmentManager {
* Fix router configuration (replicate bash script logic)
*/
private function fixRouterConfiguration() {
// Create backup
copy(ROUTER_CONFIG, ROUTER_CONFIG . '.backup');
// Create backup using sudo
executeCommand("cp " . ROUTER_CONFIG . " " . ROUTER_CONFIG . ".backup");
$routerName = $this->routerData['routerInfo']['name'];
$routerId = $this->routerData['routerInfo']['id'];
@ -357,8 +379,19 @@ metadata:
generatedBy: "ZitiNexus"
EOF;
file_put_contents(ROUTER_CONFIG, $configContent);
chmod(ROUTER_CONFIG, 0644);
// Write updated config using temp file and sudo
$tempConfigFile = tempnam(sys_get_temp_dir(), 'ziti-fixed-config');
file_put_contents($tempConfigFile, $configContent);
if (!executeCommand("cp '$tempConfigFile' " . ROUTER_CONFIG)) {
unlink($tempConfigFile);
throw new Exception('Failed to save updated router configuration');
}
unlink($tempConfigFile);
if (!executeCommand("chmod 644 " . ROUTER_CONFIG)) {
throw new Exception('Failed to set updated router config permissions');
}
}
/**