Rumah > pembangunan bahagian belakang > Golang > golang implements chcon

golang implements chcon

WBOY
Lepaskan: 2023-05-16 15:55:39
asal
471 orang telah melayarinya

Dalam sistem Linux, label keselamatan untuk fail atau direktori adalah sebahagian daripada mekanisme SELinux. Untuk mengubah suai label keselamatan, anda boleh menggunakan alat baris arahan chcon. Walau bagaimanapun, bagaimana untuk melaksanakan arahan chcon dalam golang?

Dalam golang, adalah amalan biasa untuk menggunakan pakej exec untuk melaksanakan arahan luaran. Oleh itu, arahan chcon boleh dipanggil menggunakan pakej exec. Gunakan coretan kod berikut untuk melaksanakan arahan chcon:

cmd := exec.Command("chcon", "context", "file")
output, err := cmd.CombinedOutput()
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(output))
Salin selepas log masuk

Dalam kod di atas, fungsi Perintah menerima arahan yang akan dilaksanakan dan parameternya dan mengembalikan penunjuk jenis Cmd. Gunakan kaedah CombinedOutput untuk menjalankan arahan dan mengembalikan hasil gabungan output standard dan output ralat standard.

Lihat contoh lengkap Kod berikut melaksanakan alat baris arahan yang boleh menukar label keselamatan SELinux fail atau direktori dengan laluan tertentu ke label yang ditentukan:

package main

import (
    "flag"
    "fmt"
    "log"
    "os"
    "os/exec"
)

func main() {
    var context string
    var path string
    flag.StringVar(&context, "c", "", "set SELinux context to `context`")
    flag.StringVar(&path, "p", "", "set SELinux context for `path`")
    flag.Parse()

    if context == "" {
        log.Fatal("missing required option -c")
    }
    if path == "" {
        log.Fatal("missing required option -p")
    }

    cmd := exec.Command("chcon", context, path)
    output, err := cmd.CombinedOutput()
    if err != nil {
        fmt.Fprintf(os.Stderr, "chcon failed: %v
", err)
        os.Exit(1)
    }
    fmt.Println(string(output))
}
Salin selepas log masuk

Dalam ini contoh Dalam, pakej bendera digunakan untuk menghuraikan parameter baris arahan. Dengan menentukan sama ada parameter yang diperlukan ditentukan, ralat dalam melakukan perubahan fail yang tidak dijangka dapat dielakkan. Gunakan fungsi fmt.Fprintf untuk mengeluarkan maklumat ralat kepada output ralat standard untuk memberitahu pengguna tentang kegagalan operasi sebelum program ditamatkan.

Simpan kod di atas sebagai chcon.go, gunakan go build untuk menjana fail boleh laku dan letakkan fail binari yang dijana dalam pembolehubah persekitaran PATH untuk mencapai panggilan global.

Ringkasnya, menggunakan pakej exec untuk melaksanakan arahan luaran dengan mudah boleh melaksanakan arahan chcon dalam golang. Menggunakan parameter baris arahan untuk menghuraikan bendera pakej boleh memastikan bahawa ralat yang tidak dijangka tidak akan berlaku semasa pelaksanaan program.

Atas ialah kandungan terperinci golang implements chcon. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan