GNU/Linux >> Linux の 問題 >  >> Linux

os.MkDir および os.MkDirAll 許可値?

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 Web サーバーで一般的に使用されます。所有者は、読み取り、書き込み、実行ができます。他のすべてのユーザーは、ファイルを読み取って実行できますが、変更することはできません。

0777 誰もが読み書きおよび実行できます。 Web サーバーでは、ファイルやフォルダーに「777」権限を使用することはお勧めできません。これにより、誰でも悪意のあるコードをサーバーに追加できるようになります。

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

0655 所有者のみがファイルを読み書きできますが、ファイルを実行することはできません。それ以外のユーザーは読み取りと実行が可能ですが、ファイルを変更することはできません。

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


Linux でのディレクトリのアクセス許可

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

読み取りビット ユーザーは、ディレクトリに含まれるファイル名を読み取ることができます。
書き込みビット 実行ビットも設定されている場合、ユーザーはファイル名を{追加、名前変更、削除}できます。
実行ビット ユーザーはディレクトリに入り、内部のファイルにアクセスできます。

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

権限計算ツール

便利なパーミッション計算機。


@Daniel の回答での発言は実際には正しくありません。また、@SashaCrofter がコメントで正しく指摘しているように、10 進数について述べてから 8 進数を使用しています。

実際には、フォームは関係ありません 適切な Unix パーミッションを表している限り、パーミッション値は有効です。

POSIX ファイル システムの許可ビットは 3 つのビット (所有者、グループ、その他のアクセス用の 3 ビット、および修飾子 (スティッキー ビットなど) の 3 ビット) の 3 つのビットで構成されているため、8 進数を使用してそれぞれの として許可を表すのが通例です。数字 8 進数の は 3 ビット値を表します。

したがって、Go コードで 0700 を使用すると、先頭の 0 が取り除かれ、パーサーに 8 進数リテラルを認識していることを伝えるためだけに存在します。次の 3 文字は、所有者、グループ、およびその他のパーミッションをこの順序で表します。たとえば、ファイル システム オブジェクトをグループで読み取り可能および実行可能にするだけでなく、グループ スティッキー ビットも設定する必要がある場合は、02750 などを指定します。

ファイル システム オブジェクトが取得する実際のアクセス許可は、アクティブな umask によってさらに調整されることに注意してください。 オブジェクトを作成するプロセスの。

これらのトピックをより理解するには、chmod を読むことをお勧めします Unix ライクなオペレーティング システムに関するマニュアル ページと一般的な文献。


umask を 0 にリセットできます。これをメイン ファイルの最初に呼び出します

syscall.Umask(0)

_ = os.MkdirAll("/tmp/dirs/1", 0664)
syscall.Umask(0)
_ = os.MkdirAll("/tmp/dirs/2", 0664)

結果

/tmp/dirs$ stat -c '%A %a %n' *
drw-r--r-- 644 1
drw-rw-r-- 664 2

Linux
  1. SELinux拒否メッセージを読んで修正する方法

  2. Howto MySQL:ユーザーを作成し、データベースに権限を付与します

  3. Tput:$ termの値がなく、-tが指定されていませんか?

  1. CpやMkdirではなくInstallを使用する理由

  2. 読み取り、書き込み、実行の権限を変更しますか?

  3. Linux での mkdir および rmdir コマンドの例

  1. 単一のコマンドでディレクトリを作成して許可を与える方法

  2. Chmod 777 をフォルダーとすべてのコンテンツに

  3. 実行権限は何をしますか?