码迷,mamicode.com
首页 > 系统相关 > 详细

Linux的文件权限设置为什么可以使用421

时间:2014-07-29 15:16:58      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:blog   使用   文件   数据   2014   ar   linux   数据库   

最近做项目碰到个数据库的设计:

要求某个物品属于三种类别中的一种或者几种,由于这三个类别是固定不变的,故不再搞更多麻烦的配置项,直接在数据库中增加一个字段,标志类别,由于可能是三个类别中的任意组合。

所以一般的设计是这样的:增加一个字段type标志类别,1代表类别1,2代表类别2,3代表类别3,若是多个用逗号隔开,字段类型设为varchar,存入的数据大致是这样的,"1","1,2","1,2,3"等组合;

这样设计比较简单易懂,但是对于读取或者写入时比较麻烦一点,且容易出错;

在Linux系统中的文件权限有这样的设计:用4代表读,2代表写,1代表运行,组合的权限则求和;修改文件权限只要如下:

chmod  754 test
7 = 1 + 2 + 4      代表读写运行权限

5 = 1 + 4             代表读和运行权限

4 = 4                    代表读权限

这条命令是将test文件的读写运行权限赋给文件所有者,将读运行权限赋给群组,将读权限赋给其他人

为什么这些数字只能这样求和呢?原因很简单,将4,2,1表示为二进制就恍然大悟了:

4: 0000 0100

2: 0000 0010

1: 0000 0001

看到没,相加后彼此相应位上不影响,所以可以这样表示;

于是乎上面的分类也可以采取这种办法:

4代表类别1

2代表类别2

1代表类别3

组合的类别则求和;

要是类别多了怎么办?

那就将上述的二进制往后扩展:

0000 1000 :8

0001 0000 : 32

......

当然这个方式只适合类别比较少的时候,多了的话数字很大。

Linux的文件权限设置为什么可以使用421,布布扣,bubuko.com

Linux的文件权限设置为什么可以使用421

标签:blog   使用   文件   数据   2014   ar   linux   数据库   

原文地址:http://blog.csdn.net/lkxiaolou/article/details/38266059

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!