[Golang]写文件的权限定义perm
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相关推荐
- mysql errcode 13_Linux下MySQL的写文件时权限错误(Errcode: 13)解决方法
在数据库中select * into outfile '/home/mysql/data.sql',mysql又提示错误:ERROR 1 (HY000): Can't create/write to ...
- Apache + PHP为什么不能在www目录下写文件以及如何解决PHP写文件问题
本文以Ubuntu为例,其他的Linux系统类似. 环境为Apache + PHP搭建的web服务器 假设网站根目录为/var/www/html 问题: 直接通过shell执行PHP,在网站目录下面读 ...
- linux中可读可写可执行权限是什么意思,linux chmod 给目录或文件赋权限 可读可写可执行...
前提: mode权限设定字串,格式:[ugoa...][[+-=][rwxX]...][,...] 其中u表示拥有者(user),g表示与拥有者属于同一个群体(group),o表示其他以外的人(oth ...
- Linux小实验11|添加组group,添加用户aa、bb并加入group组 (2)新建文件/abc.txt (3)设置用户aa对文件拥有读、写和执行权限
12.根据以下要求完成对文件/目录权限的设置 (1)添加组group,添加用户aa.bb并加入group组 (2)新建文件/abc.txt (3)设置用户aa对文件拥有读.写和执行权限 (4)设置组g ...
- java 写文件 权限不够_教你解决Linux系统中JAVA创建文件后权限不足的问题
在作业中,项目使用文件上传. 这个功能很常见. 当Kai Ge今天更改其官方帐户时,他遇到了一个问题,即无法访问下载的文件,也无法通过浏览器访问该文件. 它是怎么发生的? 经过许多问题之后,事实证明这 ...
- linux通过java获取root权限_通过可写文件获取Linux root权限的5种方法
Linux系统中,全部都是以文件形式存在的,包括目录.设备都是有权限的,共有读.写.可执行三种.管理员为文件设置好权限后,应该要考虑哪些Linux用户会被允许和限制上述的三个权限. 通过可写脚本进行r ...
- linux中root权限找tmp路径,通过可写文件获取 Linux root 权限的 5 种方法-tmp文件
Linux系统中,全部都是以文件形式存在的,包括目录.设备都是有权限的,共有读.写.可执行三种.管理员为文件设置好权限后,应该要考虑哪些Linux用户会被允许和限制上述的三个权限. 通过可写脚本进行r ...
- Golang的文件处理方式-常见的读写
在 Golang 语言中,文件使用指向 os.File 类型的指针来表示的,也叫做文件句柄.注意,标准输入 os.Stdin 和标准输出 os.Stdout ,他们的类型都是 *os.File 哟.在 ...
- Windows7重装系统后文件夹权限的混乱
Windows7重装系统后,文件夹权限混乱了,权限选项卡里面所有者成了S-1-5-21-3777879981-2869545487-2372733622-1000的用户,重新授权很麻烦,经常提示无法继 ...
最新文章
- 计算机书籍-机器学习中的经典算法
- dispatch_async 与 dispatch_get_global_queue
- Leetcode 134. 加油站 解题思路及C++实现
- VirtualAlloc和VirtualCopy----VirtualFree
- Java基础学习笔记之:System类;Math类;Arrays类BigInteger,BigDecimal
- 【共读Primer】55.[6.4]函数重载--重载与作用域 Page210
- html angular video视频组件
- JavaScript之对象学习
- NSS_08 extjs表单验证
- Python 模拟简单区块链
- Python中序列,列表,元组,字典及集合
- 个人免签支付Java版 雨荷云码支付码支付易支付个人/企业支付宝微信二维码收款app监控
- WPS自动生成图片目录
- 防用户误删除,耗费一周时间把DeleteMark标志都加上来了,所有的删除操作从“物理删除”转为“逻辑删除”
- 使用时间序列分解模型预测商品销量
- iOS Xcode中UIButton文字换行
- 应用层 DNS域名解析服务器 文件传送协议FTP 简单邮件传送协议SMTP 万维网 HTTP超文本协议
- 给所有工作不顺心的人们
- fest556_IssueHunt Fest 2018:使开源可持续发展
- Android连接网络