回答編集履歴
2
コマンド修正
answer
CHANGED
@@ -5,8 +5,10 @@
|
|
5
5
|
|
6
6
|
NSTask *task = [[NSTask alloc] init];
|
7
7
|
[task setLaunchPath:@"/bin/bash"];
|
8
|
+
// 以下のコマンドで管理者権限ユーザ名取得
|
8
9
|
[task setArguments:[NSArray arrayWithObjects: @"-c", @"dscl . -read /Groups/admin GroupMembership", nil]];
|
10
|
+
// 以下のコマンドでユーザ名取得
|
9
|
-
//[task setArguments:[NSArray arrayWithObjects: @"-c", @"
|
11
|
+
//[task setArguments:[NSArray arrayWithObjects: @"-c", @"id -un", nil]];
|
10
12
|
|
11
13
|
NSPipe *pipe = [[NSPipe alloc] init];
|
12
14
|
[task setStandardOutput:pipe];
|
1
実装方法修正
answer
CHANGED
@@ -3,17 +3,18 @@
|
|
3
3
|
|
4
4
|
NSTaskで上記のコマンドを実行すれば良い
|
5
5
|
|
6
|
-
NSTask *task = [[NSTask alloc] init];
|
6
|
+
NSTask *task = [[NSTask alloc] init];
|
7
|
-
NSPipe *pipe = [[NSPipe alloc] init];
|
8
|
-
[task setLaunchPath:@"/bin/
|
7
|
+
[task setLaunchPath:@"/bin/bash"];
|
8
|
+
[task setArguments:[NSArray arrayWithObjects: @"-c", @"dscl . -read /Groups/admin GroupMembership", nil]];
|
9
|
-
[task
|
9
|
+
//[task setArguments:[NSArray arrayWithObjects: @"-c", @"users", nil]];
|
10
|
-
[task launch];
|
11
10
|
|
11
|
+
NSPipe *pipe = [[NSPipe alloc] init];
|
12
|
+
[task setStandardOutput:pipe];
|
13
|
+
[task launch];
|
12
|
-
NSFileHandle *handle = [pipe fileHandleForReading];
|
14
|
+
NSFileHandle *handle = [pipe fileHandleForReading];
|
13
|
-
NSData *data = [handle readDataToEndOfFile];
|
15
|
+
NSData *data = [handle readDataToEndOfFile];
|
14
|
-
NSString *string = [[
|
16
|
+
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
|
17
|
+
NSLog(string);
|
15
18
|
|
16
|
-
|
19
|
+
出力結果
|
17
|
-
|
18
|
-
[task release];
|
19
|
-
|
20
|
+
GroupMembership: root testuser
|