ホームページ  >  記事  >  バックエンド開発  >  Golang で os.FileMode を使用してファイルのアクセス許可を設定する方法?

Golang で os.FileMode を使用してファイルのアクセス許可を設定する方法?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-11 22:26:03365ブラウズ

How to Set File Permissions Using os.FileMode in Golang?

os.FileMode を使用してファイル権限を設定する

Golang でファイルを作成するには、ビットごとのフラグを使用してファイル権限を指定することがよくあります。ただし、多くの例では、0664 などの数値アクセス許可が単純に使用されているため、不便な場合があります。

os.FileMode を適切にインスタンス化する

os.FileMode を適切にインスタンス化するには、以下が必要です。を定義するには以下:

  • 許可ビット: ファイルの読み取り、書き込み、または実行ができるユーザーを決定します。
  • ユーザー ID (UID): ファイルを所有するユーザー。
  • グループ ID (GID): ファイルを所有するグループ。

実装例

OS または syscall には許可ビットの定数がないため、独自の定義を行うことができます:

const (
    OS_READ = 04
    OS_WRITE = 02
    OS_EX = 01
    OS_USER_SHIFT = 6
    OS_GROUP_SHIFT = 3
    OS_OTH_SHIFT = 0

    OS_USER_R = OS_READ << OS_USER_SHIFT
    OS_USER_W = OS_WRITE << OS_USER_SHIFT
    OS_USER_X = OS_EX << OS_USER_SHIFT
    OS_USER_RW = OS_USER_R | OS_USER_W
    OS_USER_RWX = OS_USER_RW | OS_USER_X

    OS_GROUP_R = OS_READ << OS_GROUP_SHIFT
    OS_GROUP_W = OS_WRITE << OS_GROUP_SHIFT
    OS_GROUP_X = OS_EX << OS_GROUP_SHIFT
    OS_GROUP_RW = OS_GROUP_R | OS_GROUP_W
    OS_GROUP_RWX = OS_GROUP_RW | OS_GROUP_X

    OS_OTH_R = OS_READ << OS_OTH_SHIFT
    OS_OTH_W = OS_WRITE << OS_OTH_SHIFT
    OS_OTH_X = OS_EX << OS_OTH_SHIFT
    OS_OTH_RW = OS_OTH_R | OS_OTH_W
    OS_OTH_RWX = OS_OTH_RW | OS_OTH_X

    OS_ALL_R = OS_USER_R | OS_GROUP_R | OS_OTH_R
    OS_ALL_W = OS_USER_W | OS_GROUP_W | OS_OTH_W
    OS_ALL_X = OS_USER_X | OS_GROUP_X | OS_OTH_X
    OS_ALL_RW = OS_ALL_R | OS_ALL_W
    OS_ALL_RWX = OS_ALL_RW | OS_GROUP_X
)

これにより、アクセス許可を指定できます直接:

dir_file_mode = os.ModeDir | (OS_USER_RWX | OS_ALL_R)
os.MkdirAll(dir_str, dir_file_mode)

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。