os.Mkdir 和 os.Mkdir 所有权限 [英] os.Mkdir and os.MkdirAll permissions
问题描述
我正在尝试在我的程序开始时创建一个日志文件.
如果 /log
目录没有创建目录,我需要检查它是否存在,然后继续创建日志文件.
好吧,我尝试使用 os.Mkdir
(以及 os.MkdirAll
),但是无论我在第二个参数中输入什么值,我都会被锁定没有权限的文件夹.为了获得用户文件夹的读/写,这应该是什么值?我以为它会是 0x700
但它似乎不起作用.
谢谢!
可以直接使用八进制表示法:
os.Mkdir("目录名", 0700)
权限位
+-----+---+--------------------------+|rwx |7 |读、写和执行 ||rw- |6 |读、写 ||r-x |5 |读取并执行 ||r-- |4 |阅读,||-wx |3 |编写和执行 ||-w- |2 |写 ||--x |1 |执行 ||--- |0 |没有权限|+------------------------------------++------------+------+-------+|权限 |八进制|领域 |+------------+------+-------+|rwx------ |0700 |用户 ||---rwx--- |0070 |集团 ||------rwx |0007 |其他 |+------------+------+-------+
一个方便的权限计算器.
I'm trying to create a log file at the start of my program.
I need to check if a /log
directory exists if it doesn't create the directory then move on to creating the log file.
Well I tried to use os.Mkdir
(as well as os.MkdirAll
), but no matter what value I put into the second parameter I get a locked out folder with no permissions. What value should this be in order to get a read / write for user folder? I thought it would be 0x700
but it doesn't seem to work.
Thanks!
You can use octal notation directly:
os.Mkdir("dirname", 0700)
Permission Bits
+-----+---+--------------------------+
| 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 |
+------------+------+-------+
A Unix Permission Primer
Common Permission Usages
0755 Commonly used on web servers. The owner can read, write, execute. Everyone else can read and execute but not modify the file.
0777 Everyone can read write and execute. On a web server, it is not advisable to use ‘777’ permission for your files and folders, as it allows anyone to add malicious code to your server.
0644 Only the owner can read and write. Everyone else can only read. No one can execute the file.
0655 Only the owner can read and write, but not execute the file. Everyone else can read and execute, but cannot modify the file.
www.maketecheasier.com/file-permissions-what-does-chmod-777-means/
Directory Permissions on Linux
When applying permissions to directories on Linux, the permission bits have different meanings than on regular files. (source)
Read bit The user can read the file names contained in the directory.
Write bit The user can {add,rename,delete} files names IF the execute bit is set too.
Execute bit The user can enter the directory and access the files inside.
https://unix.stackexchange.com/a/21252
Permissions Calculator
A handy permissions calculator.
这篇关于os.Mkdir 和 os.Mkdir 所有权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!