os.Mkdir 和 os.MkdirAll 权限

2024-05-19

我正在尝试在程序开始时创建一个日志文件。

我需要检查是否/log如果不创建目录,则目录存在,然后继续创建日志文件。

好吧,我尝试使用os.Mkdir(也os.MkdirAll),但无论我在第二个参数中输入什么值,我都会得到一个没有权限的锁定文件夹。为了获得用户文件夹的读/写权限,该值应该是多少?我以为会是0x700但它似乎不起作用。

Thanks!


您可以直接使用八进制表示法:

os.Mkdir("dirname", 0700)

权限位

历史上,权限位以八进制给出,因此文字值必须以前缀0。否则它将被解释为十进制并给出令人困惑的结果。这和Linux命令是一致的chmod.

+-----+---+--------------------------+
| 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 权限入门 https://stackoverflow.com/a/35895436/395461

柿子的常见用途

0755常用于网络服务器。所有者可以读、写、执行。其他人可以读取和执行该文件,但不能修改该文件。

0777每个人都可以读写和执行。在网络服务器上,不建议对文件和文件夹使用“777”权限,因为它允许任何人向您的服务器添加恶意代码。

0644只有所有者可以读取和写入。其他人只能阅读。没有人可以执行该文件。

0655只有所有者可以读取和写入文件,但不能执行该文件。其他人可以读取和执行该文件,但不能修改该文件。

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

Linux 上的目录权限

在 Linux 上对目录应用权限时,权限位与常规文件具有不同的含义。 (source https://unix.stackexchange.com/a/21252)

Read bit用户可以读取目录中包含的文件名。
写位如果执行位也被设置,用户可以{添加、重命名、删除}文件名。
执行位用户可以进入该目录并访问其中的文件。

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

权限计算器

A handy 权限计算器 http://permissions-calculator.org/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

os.Mkdir 和 os.MkdirAll 权限 的相关文章

随机推荐