`os.FileMode` を使用して Go でファイルのアクセス許可を正確に設定する方法は?

Barbara Streisand
リリース: 2024-11-12 17:57:01
オリジナル
536 人が閲覧しました

How to Precisely Set File Permissions in Go using `os.FileMode`?

ファイルの作成/更新のための os.FileMode のインスタンス化

os.FileMode を正しくインスタンス化すると、作成または更新中にファイルのアクセス許可が適切に設定されます。多くのチュートリアルでは、アクセス許可ビットを直接設定することに頼っていますが、より正確なアプローチには、os.FileMode タイプの利用が含まれます。

アクセス許可設定のカスタム定数

事前定義されていない場合OS または syscall の定数を宣言することができます。 own:

const (
    OS_READ = 04
    OS_WRITE = 02
    OS_EX = 01
    ...
    OS_ALL_RWX = OS_ALL_RW | OS_ALL_X
)
ログイン後にコピー

高精度権限設定の例

カスタム定数の使用例を示します:

func FileWrite(path string, r io.Reader, uid, gid int, perms string) (int64, error) {
    fileMode := os.FileMode(0)
    if perms[0] == '6' {
        fileMode |= OS_USER_RW
    } else if perms[0] == '7' {
        fileMode |= OS_USER_RWX
    }
    ...
    // Continue setting file mode based on the remaining characters of `perms`
    ...
    w, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, fileMode)
    ...
}
ログイン後にコピー

カスタム定数アプローチの利点

カスタム定数提供:

  • 明確で移植可能な権限設定メカニズム
  • マジックナンバーと潜在的な混乱の排除
  • 必要なシナリオに基づいて権限を柔軟に操作できる

以上が`os.FileMode` を使用して Go でファイルのアクセス許可を正確に設定する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート