os.Mkdir 和 os.Mkdir 所有权限 [英] os.Mkdir and os.MkdirAll permissions

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

问题描述

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

如果 /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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆