本文介绍了os.MkDir和os.MkDirAll权限值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



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



我尝试使用os.Mkdir(以及os.MkDirAll),但无论如何值我把第二个参数我得到一个锁定没有权限的文件夹。为了获得对用户文件夹的读/写,这应该是什么值?我认为这将是0x700,但它似乎并不奏效。



谢谢!

解决方案

您可以直接使用八进制符号:

  os.Mkdir(dirname,0700)



权限位 $ b

  + ----- + --- + ---------------------- ---- + 
| rwx | 7 |读,写和执行|
| rw- | 6 |阅读,写| |
| r-x | 5 |阅读并执行|
| r-- | 4 |阅读,|
| -wx | 3 |编写并执行|
| -w- | 2 |写| |
| --x | 1 |执行|
| --- | 0 |没有权限|
+ ------------------------------------ +

+ ------------ + ------ + ------- +
|权限|八|字段|
+ ------------ + ------ + ------- +
| rwx ------ | 0700 |用户|
| --- rwx --- | 0070 | Group |
| ------ 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.MkDirAll权限值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-18 05:31
查看更多