1. ホーム
  2. linux

[解決済み] os.Mkdir と os.MkdirAll のパーミッションについて

2023-05-16 23:14:14

質問

プログラムの開始時にログファイルを作成しようとしています。

をチェックする必要があります。 /log ディレクトリが存在するかどうか確認する必要があります。もしディレクトリが作成されない場合は、ログファイルの作成に移ります。

さて、私は os.Mkdir (と同じように os.MkdirAll を使用していますが、2番目のパラメータにどのような値を入れても、アクセス権のないロックアウトされたフォルダが表示されます。ユーザーフォルダの読み取り/書き込みを行うには、この値をどのように設定すればよいのでしょうか?私はそれがあると思いました 0x700 と思ったのですが、うまくいかないようです。

ありがとうございました。

どのように解決するのですか?

8進数表記をそのまま使うことができます。

os.Mkdir("dirname", 0700)



パーミッションビット

+-----+---+--------------------------+
| rwx | 7 | Read, write and execute  |
| rw- | 6 | Read, write              |
| r-x | 5 | Read, and execute        |
| r-- | 4 | Read,                    |
| -wx | 3 | Write and execute        |
| -w- | 2 | Write                    |
| --x | 1 | Execute                  |
| --- | 0 | no permissions           |
+------------------------------------+

+------------+------+-------+
| Permission | Octal| Field |
+------------+------+-------+
| rwx------  | 0700 | User  |
| ---rwx---  | 0070 | Group |
| ------rwx  | 0007 | Other |
+------------+------+-------+

Unix パーミッションの入門書





一般的なパーミッションの使用法

0755 ウェブサーバでよく使われる。所有者は読み取り、書き込み、実行が可能です。他の人は読み込みと実行はできますが、ファイルを変更することはできません。

0777 誰でも読み込み、書き込み、実行が可能です。Web サーバでは、ファイルやフォルダに '777' パーミッションを使うことはお勧めしません。誰でも悪意のあるコードをサーバに追加することができるからです。

0644 所有者だけが読み書きができます。他の人は読むことしかできません。誰もファイルを実行することはできません。

0655 所有者のみがファイルの読み取りと書き込みを行うことができますが、実行はできません。他のすべての人は読み込みと実行ができますが、ファイルを変更することはできません。

www.maketecheasier.com/file-permissions-what-does-chmod-777-means/



Linuxのディレクトリパーミッション

Linuxでディレクトリにパーミッションを適用する場合、パーミッションビットは通常のファイルとは異なる意味を持ちます。( ソース )

読み取りビット ユーザはディレクトリに含まれるファイル名を読むことができます。

書き込みビット 実行ビットも設定されていれば、ユーザーはファイル名を{追加,名前変更,削除}することができます。

実行ビット ユーザはディレクトリに入り、中のファイルにアクセスすることができる。

https://unix.stackexchange.com/a/21252



パーミッション計算機

手軽な パーミッション計算機 .