Linux システムでは、ファイルまたはディレクトリのセキュリティ ラベルは SELinux メカニズムの一部です。セキュリティ ラベルを変更するには、コマンド ライン ツール chcon を使用できます。しかし、golang で chcon コマンドを実装するにはどうすればよいでしょうか?
golang では、exec パッケージを使用して外部コマンドを実行するのが一般的です。したがって、chcon コマンドは、exec パッケージを使用して呼び出すことができます。 chcon コマンドを実行するには、次のコード スニペットを使用します。
cmd := exec.Command("chcon", "context", "file") output, err := cmd.CombinedOutput() if err != nil { log.Fatal(err) } fmt.Println(string(output))
上記のコードでは、Command 関数は、実行するコマンドとそのパラメーターを受け取り、Cmd 型のポインターを返します。 CombinedOutput メソッドを使用してコマンドを実行し、標準出力と標準エラー出力を組み合わせた結果を返します。
完全な例を見てみましょう。次のコードは、指定されたパスを持つファイルまたはディレクトリの SELinux セキュリティ ラベルを指定されたラベルに変更できるコマンド ライン ツールを実装しています。この例では、コマンド ライン パラメーターを解析するためにフラグ パッケージが使用されています。必要なパラメータが指定されているかどうかを判断することで、予期しないファイル変更を実行する際のエラーが回避されます。 fmt.Fprintf関数を使用して標準エラー出力にエラー情報を出力し、プログラム終了前に操作失敗をユーザーに通知します。
上記のコードを chcon.go として保存し、go build を使用して実行可能ファイルを生成し、生成されたバイナリ ファイルを PATH 環境変数に配置してグローバル呼び出しを実現します。
つまり、exec パッケージを使用して外部コマンドを実行すると、golang で chcon コマンドを簡単に実装できます。コマンド ライン パラメーターを使用してパッケージ フラグを解析すると、プログラムの実行中に予期しないエラーが発生しないようにできます。
以上がgolang は chcon を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。