1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
<?php error_reporting(0); ini_set('display_errors', 0);
$path = $_POST['path'];
if(empty($path)){ exit("Please input path"); }
if(empty($_FILES['new_file']['tmp_name'])){ exit("Please upload new file"); }
if(empty($_FILES['old_file']['tmp_name'])){ exit("Please upload old file"); }
$new_file = $_FILES['new_file']['tmp_name']; $old_file = $_FILES['old_file']['tmp_name'];
$new = array(); $old = array();
$handle = @fopen($new_file, 'r'); if($handle){ while (($buffer = fgets($handle)) !== false) { // $tmp = iconv(mb_detect_encoding($buffer, mb_detect_order(), true), "UTF-8", $buffer); $line = iconv("ASCII", "UTF-8", $buffer); // $line = preg_replace('/[^\x{0000}-\x{007F}]/u', '', $line); $line = preg_replace('/[[:^print:]]/', '', $line); // should be aA // $string = preg_replace('/[\x00-\x1F\x7F]/', '', $string); if($line) { $sid_idx = strpos($line, 'S-'); if($sid_idx !== false) { $name = substr($line, 0,$sid_idx); $name = str_replace(' ', '', $name); $sid = substr($line, $sid_idx); $sid = str_replace(' ', '', $sid);
// $name = substr($line, 0, 15); // $name = str_replace(' ', '', $name); // // $sid = substr($line, 15); // $sid = str_replace(' ', '', $sid);
if ( ! empty($name) && ! empty($sid)) { $new[$name] = $sid; } } } } fclose($handle); }
$handle = @fopen($old_file, 'r'); if($handle){ while (($buffer = fgets($handle)) !== false) { // $tmp = iconv(mb_detect_encoding($buffer, mb_detect_order(), true), "UTF-8", $buffer); $buffer = (string)$buffer; $line = iconv("ASCII", "UTF-8", $buffer); $line = preg_replace('/[[:^print:]]/', '', $line); // should be aA if($line) { $sid_idx = strpos($line, 'S-'); if($sid_idx !== false) { $name = substr($line, 0,$sid_idx); $name = str_replace(' ', '', $name); $sid = substr($line, $sid_idx); $sid = str_replace(' ', '', $sid);
// $name = substr($line, 0, 15); // $name = str_replace(' ', '', $name); // // $sid = substr($line, 15); // $sid = str_replace(' ', '', $sid);
if ( ! empty($name) && ! empty($sid)) { $old[$name] = $sid; } } } } fclose($handle); }
$error = false; foreach ($new as $name => $sid) { if(!array_key_exists($name, $old)){ echo $name.' not exist in new file<br>'; $error = true; } } foreach ($old as $name => $sid) { if(!array_key_exists($name, $new)){ echo $name.' not exist in old file<br>'; $error = true; } } if($error){ exit; }
header("Content-Type: text/plain; charset=UTF-8"); header('Content-Disposition: attachment; filename=scanacl.txt');
//gen file foreach ($new as $name => $sid) { $old_sid = $old[$name]; // echo mb_detect_encoding($old_sid, "auto");
// $name = strtolower($name); echo "rem $name\r\nsetacl.exe -on $path -ot file -actn trustee -trst \"n1:$old_sid;n2:$sid;ta:repltrst\" -rec cont\r\n";
}
|