ioutil包中写文件的方法:

func WriteFile(filename string, data []byte, perm os.FileMode) error

关于权限的定义,可以参考golang源代码:\Go\src\os\types.go

perm是FileMode类型的:

type FileMode uint32

// The nine least-significant bits are the standard Unix rwxrwxrwx permissions.

const (

...

ModePerm FileMode = 0777   // Unix permission bits

)

FileMode在所有的系统中定义都是相同的,常用的值定义如下:

const (

OS_READ = 04

OS_WRITE = 02

OS_EX = 01

OS_USER_SHIFT = 6

OS_GROUP_SHIFT = 3

OS_OTH_SHIFT = 0

OS_USER_R = OS_READ<<OS_USER_SHIFT

OS_USER_W = OS_WRITE<<OS_USER_SHIFT

OS_USER_X = OS_EX<<OS_USER_SHIFT

OS_USER_RW = OS_USER_R | OS_USER_W

OS_USER_RWX = OS_USER_RW | OS_USER_X

OS_GROUP_R = OS_READ<<OS_GROUP_SHIFT

OS_GROUP_W = OS_WRITE<<OS_GROUP_SHIFT

OS_GROUP_X = OS_EX<<OS_GROUP_SHIFT

OS_GROUP_RW = OS_GROUP_R | OS_GROUP_W

OS_GROUP_RWX = OS_GROUP_RW | OS_GROUP_X

OS_OTH_R = OS_READ<<OS_OTH_SHIFT

OS_OTH_W = OS_WRITE<<OS_OTH_SHIFT

OS_OTH_X = OS_EX<<OS_OTH_SHIFT

OS_OTH_RW = OS_OTH_R | OS_OTH_W

OS_OTH_RWX = OS_OTH_RW | OS_OTH_X

OS_ALL_R = OS_USER_R | OS_GROUP_R | OS_OTH_R

OS_ALL_W = OS_USER_W | OS_GROUP_W | OS_OTH_W

OS_ALL_X = OS_USER_X | OS_GROUP_X | OS_OTH_X

OS_ALL_RW = OS_ALL_R | OS_ALL_W

OS_ALL_RWX = OS_ALL_RW | OS_GROUP_X)

...

)

一般都文件属性标识如下:

-rwxrwxrwx

第1位:文件属性,一般常用的是"-",表示是普通文件;"d"表示是一个目录。

第2~4位:文件所有者的权限rwx (可读/可写/可执行)。

第5~7位:文件所属用户组的权限rwx (可读/可写/可执行)。

第8~10位:其他人的权限rwx (可读/可写/可执行)。

在golang中,可以使用os.FileMode(perm).String()来查看权限标识:

os.FileMode(0777).String()    //返回 -rwxrwxrwx

os.FileMode(0666).String()   //返回 -rw-rw-rw-

os.FileMode(0644).String()   //返回 -rw-r--r--

0777表示:创建了一个普通文件,所有人拥有所有的读、写、执行权限

0666表示:创建了一个普通文件,所有人拥有对该文件的读、写权限,但是都不可执行

0644表示:创建了一个普通文件,文件所有者对该文件有读写权限,用户组和其他人只有读权限,都没有执行权限

注意,golang中创建文件指定权限时,只能以"0XXX"的形式,不能省掉前面的"0",否则指定的权限不是预期的。如:

os.FileMode(777).String()   //返回 -r----x--x

os.FileMode(666).String()   //返回 --w--wx-w-

os.FileMode(644).String()   //返回 --w----r--

[Golang]写文件的权限定义perm相关推荐

  1. mysql errcode 13_Linux下MySQL的写文件时权限错误(Errcode: 13)解决方法

    在数据库中select * into outfile '/home/mysql/data.sql',mysql又提示错误:ERROR 1 (HY000): Can't create/write to  ...

  2. Apache + PHP为什么不能在www目录下写文件以及如何解决PHP写文件问题

    本文以Ubuntu为例,其他的Linux系统类似. 环境为Apache + PHP搭建的web服务器 假设网站根目录为/var/www/html 问题: 直接通过shell执行PHP,在网站目录下面读 ...

  3. linux中可读可写可执行权限是什么意思,linux chmod 给目录或文件赋权限 可读可写可执行...

    前提: mode权限设定字串,格式:[ugoa...][[+-=][rwxX]...][,...] 其中u表示拥有者(user),g表示与拥有者属于同一个群体(group),o表示其他以外的人(oth ...

  4. Linux小实验11|添加组group,添加用户aa、bb并加入group组 (2)新建文件/abc.txt (3)设置用户aa对文件拥有读、写和执行权限

    12.根据以下要求完成对文件/目录权限的设置 (1)添加组group,添加用户aa.bb并加入group组 (2)新建文件/abc.txt (3)设置用户aa对文件拥有读.写和执行权限 (4)设置组g ...

  5. java 写文件 权限不够_教你解决Linux系统中JAVA创建文件后权限不足的问题

    在作业中,项目使用文件上传. 这个功能很常见. 当Kai Ge今天更改其官方帐户时,他遇到了一个问题,即无法访问下载的文件,也无法通过浏览器访问该文件. 它是怎么发生的? 经过许多问题之后,事实证明这 ...

  6. linux通过java获取root权限_通过可写文件获取Linux root权限的5种方法

    Linux系统中,全部都是以文件形式存在的,包括目录.设备都是有权限的,共有读.写.可执行三种.管理员为文件设置好权限后,应该要考虑哪些Linux用户会被允许和限制上述的三个权限. 通过可写脚本进行r ...

  7. linux中root权限找tmp路径,通过可写文件获取 Linux root 权限的 5 种方法-tmp文件

    Linux系统中,全部都是以文件形式存在的,包括目录.设备都是有权限的,共有读.写.可执行三种.管理员为文件设置好权限后,应该要考虑哪些Linux用户会被允许和限制上述的三个权限. 通过可写脚本进行r ...

  8. Golang的文件处理方式-常见的读写

    在 Golang 语言中,文件使用指向 os.File 类型的指针来表示的,也叫做文件句柄.注意,标准输入 os.Stdin 和标准输出 os.Stdout ,他们的类型都是 *os.File 哟.在 ...

  9. Windows7重装系统后文件夹权限的混乱

    Windows7重装系统后,文件夹权限混乱了,权限选项卡里面所有者成了S-1-5-21-3777879981-2869545487-2372733622-1000的用户,重新授权很麻烦,经常提示无法继 ...

最新文章

  1. 计算机书籍-机器学习中的经典算法
  2. dispatch_async 与 dispatch_get_global_queue
  3. Leetcode 134. 加油站 解题思路及C++实现
  4. VirtualAlloc和VirtualCopy----VirtualFree
  5. Java基础学习笔记之:System类;Math类;Arrays类BigInteger,BigDecimal
  6. 【共读Primer】55.[6.4]函数重载--重载与作用域 Page210
  7. html angular video视频组件
  8. JavaScript之对象学习
  9. NSS_08 extjs表单验证
  10. Python 模拟简单区块链
  11. Python中序列,列表,元组,字典及集合
  12. 个人免签支付Java版 雨荷云码支付码支付易支付个人/企业支付宝微信二维码收款app监控
  13. WPS自动生成图片目录
  14. 防用户误删除,耗费一周时间把DeleteMark标志都加上来了,所有的删除操作从“物理删除”转为“逻辑删除”
  15. 使用时间序列分解模型预测商品销量
  16. iOS Xcode中UIButton文字换行
  17. 应用层 DNS域名解析服务器 文件传送协议FTP 简单邮件传送协议SMTP 万维网 HTTP超文本协议
  18. 给所有工作不顺心的人们
  19. fest556_IssueHunt Fest 2018:使开源可持续发展
  20. Android连接网络

热门文章

  1. [NOIP2017模拟]permut
  2. Unity 人形动画、动画切割、Animator
  3. App关键字(100字符)优化的方法
  4. promise一脸懵逼...
  5. python会员折扣_Python——潜在会员用户预测
  6. jsf<h:outpytText>实现换行
  7. IntelliJ Idea入门教程:如何新建项目
  8. 蛇形走线用在哪里,一文告诉你
  9. 如何证明函数有界_科技界正在抓住机会来证明不平等
  10. C语言switch语句用法详解