![029efaf926a003e8016cce51835e23a0.png](https://i-blog.csdnimg.cn/blog_migrate/4af5d5eae998f311160e57e09e9edc75.jpeg)
写在前面
我们都知道Linux是一个支持多用户、多任务的系统,这也是它最优秀的特性,即可能同时有很多人都在系统上进行工作,所以千万不要强制关机,同时,为了保护每个人的隐私和工作环境,针对某一个文档(文件、目录),Linux系统定义了三种身份,分别是拥有者(owner)、群组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。
文档属性
使用命令ls -al --full-time,或者此命令的简写ll可以查看文件或者目录的所有属性。如下:
![4136cd7b41b65ce7288ab34b65f3672b.png](https://i-blog.csdnimg.cn/blog_migrate/1bb6235f365c8f6d25710a20e9954f58.jpeg)
从上面可以看到,每一行都有7列,分别是:
- 第一列
共10位,第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,d表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、excutable。如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可写,其他人没有任何权限。 - 第二列
表示连结数 - 第三列
表示拥有者 - 第四列
表示所属群组 - 第五列
表示文档容量大小,单位字节 - 第六列
表示文档最后修改时间,注意不是文档的创建时间哦 - 第七列
表示文档名称。以点(.)开头的是隐藏文档
变更拥有者(owner)
位置
![64b5bcf736e0a8b19ecfcbe7577143f1.png](https://i-blog.csdnimg.cn/blog_migrate/7217b6323d1d4f144a4a1cb5d4c04dba.jpeg)
![9315fd120e689cce5b9c054f725f3c1e.png](https://i-blog.csdnimg.cn/blog_migrate/f2b06b8321ba5db2ecf2338632952f78.jpeg)
注意:必须是该位置下已存在的帐号。也就是在/etc/passwd中有记录的拥有者才能改变。
语法
![7ccd4d0e87c82ab0ac76c13d229973cd.png](https://i-blog.csdnimg.cn/blog_migrate/d41c7c89e16e72e8761e4b1acad94947.jpeg)
备注:此命令也可以顺便变更文档群组,但还是建议使用chgrp命令来变更文档群组。
选项
-R 递归变更,即连同次目录下的所有文件(夹)都要变更。
用法
chown daemon test 变更文件夹test账号为daemon。
![22e488978da7f63ee14806f8cbce7228.png](https://i-blog.csdnimg.cn/blog_migrate/94168907c5dc338f4083a46f80b4e4fa.jpeg)
chown daemon:root test 变更文件夹test群组为root。
![48f6264fe22fee6ea787ec219996ea18.png](https://i-blog.csdnimg.cn/blog_migrate/13622dc0e0d26f48f652494aea55ac10.jpeg)
chown root.users test 变更文件夹账号为root,群组为users
![9c684c40b61f66afc990c80595835c9c.png](https://i-blog.csdnimg.cn/blog_migrate/786b7faa29e9a57b50db4ec8c7a4565a.jpeg)
chown .root test 单独变更群组为root
![c52a95dacffbfd5c943f05c9f4250fee.png](https://i-blog.csdnimg.cn/blog_migrate/8e801b358d05ea2385ac6861c9427269.jpeg)
备注:虽然也可以在拥有者与群组间加小数点(.),但为了避免有的同学命名中带点,故还是建议使用冒号“:”来隔开拥有者与群组,避免误判。
变更群组(group)
位置
![4c49c5cf6c13d6c39c3ad247d3ddd5d2.png](https://i-blog.csdnimg.cn/blog_migrate/ae743043a2748b988ba29a1d7bfba828.jpeg)
![224abb38c256aebbc174fd6a5431404e.png](https://i-blog.csdnimg.cn/blog_migrate/0217a1d453b23bedaf7029b6d995caef.jpeg)
备注:从这里可以查看到所有群组
语法
![7501a8dce90258564d177a79466d1c35.png](https://i-blog.csdnimg.cn/blog_migrate/f7c0091b1b40f1250866ea8fc3f3add4.jpeg)
备注:关于options,可以通过man chgrp、info chgrp、chgrp --help等命令查询详细用法。
用法
chgrp -R users test 改变test文件夹及其所有子文件(夹)的群组为users。
![9693496df75e97d146dc499cfef004d5.png](https://i-blog.csdnimg.cn/blog_migrate/9895ab6f49aa420b5b120da8361143fb.jpeg)
注意:群组名称不在位置内,将会报错invalid group。
![4b03bf0a70c71993f8eba47a63b72eb1.png](https://i-blog.csdnimg.cn/blog_migrate/b463625e65f750cd4b1c024c0601d936.jpeg)
变更权限
Linux文档的基本权限就三个,分别是read/write/execute,加上身份owner/group/others也只有九个。权限变更的方式有2种,分别是符号法和数字法。
- 符号法
分别使用u,g,o来代表三种身份,a表示全部身份;分别使用r、w、x表示三种权限;分别使用+、-、=表示操作行为
语法
![537e52ce4c0af504a524cb07891b1a09.png](https://i-blog.csdnimg.cn/blog_migrate/ab39fd09415830d5ddc522a969c21343.jpeg)
设置权限(=)
变更目录test的权限为任何人都可读、写、执行。
![033e90b625d512b1962e33c230d3d6f5.png](https://i-blog.csdnimg.cn/blog_migrate/a39474e8fbe2b812a03b45f8e2e12006.jpeg)
![768b48e95a2d506ce478a71a0dfb47eb.png](https://i-blog.csdnimg.cn/blog_migrate/1f65d24a4411c8dee3bdf4010f8d586b.jpeg)
去掉权限(-)
去掉目录test执行权限
![24c7ff71250e3210100fca626956ca56.png](https://i-blog.csdnimg.cn/blog_migrate/c409ecec59ec2c8cab4f24d9c749ee08.jpeg)
![ab5a831fe69570fba1c71f70a3b41722.png](https://i-blog.csdnimg.cn/blog_migrate/43e99f260681e0afda122e2868f11096.jpeg)
备注:执行权限(x),对目录而已就是其他用户能否cd test成为工作目录。
添加权限(+)
增加目录test执行权限
![5a66bd43529b33208a3c71bb98e47b16.png](https://i-blog.csdnimg.cn/blog_migrate/b120b8797dae723c29fad133d89872e0.jpeg)
![e2584a5df7bcb0ffc644d9bbd2d2452d.png](https://i-blog.csdnimg.cn/blog_migrate/117c6bb1bfb52400894414a0c18a0df8.jpeg)
备注:很熟悉吧,如果我们编写完一个shell文件test.sh后,通过chmod a+x test.sh就添加了文件执行权限。
- 数字法
顾名思义,就是使用数字来代表权限,r,w,x分别为4,2,1。三种权限累加就可以得出一种身份的权限。
设置目录test的权限为任何人都可读、写、执行。
![dbfb9d3faea34a8337164df6bbba7e0d.png](https://i-blog.csdnimg.cn/blog_migrate/12eac830625d58b54253bfb164bc1575.jpeg)
![754e5737d83d30d4470f86653fe285a5.png](https://i-blog.csdnimg.cn/blog_migrate/c55afe64fb8722434fdacd9ca2d0ea52.jpeg)
设置目录test的权限为任何人都可读、写。
![ad4735ffd846444e85e921daabbb3366.png](https://i-blog.csdnimg.cn/blog_migrate/0f07d09b10ab6c8d9fe5defdefe7c436.jpeg)
![a69d5d6eafb978370b70067e5f11f907.png](https://i-blog.csdnimg.cn/blog_migrate/fd4ad2b2d88bd90a4d02520e46b67d51.jpeg)
赋予一个shell文件test.sh可执行权限,拥有者可读、写、执行,群组账号和其他人可读、执行。
![fe873bc9ed64581afc91469ea4c2c870.png](https://i-blog.csdnimg.cn/blog_migrate/f2e9afdf894824c1c5da45ae7b7934ca.jpeg)
备注:有没有发现数字法更简单啊!!!
文件和目录权限差异
文档权限对于文件和目录有巨大的差异
文件
针对的是该文件内容
- readable 可读取该文件的实际内容
- writable 可以编辑、新增或者是修改该文件的内容
- executable 有可以被系统执行的权限
备注:具有w权限不可以删除文件,删除文件是目录权限控制的范围!!!记住文件权限针对是文件内容。
目录
针对的是该目录下的文件对象
- readable 具有读取目录结构清单的权限,即可以通过ls命令,查询该目录清单。
- writable 具有变动该目录结构清单的权限,即可以创建、迁移、删除、更名该目录下的文件。
- executable 具备进入该目录的权限,即可以通过cd命令,转到工作目录。
备注:从上面可以得出,开放目录给任何人浏览时,至少需要赋予r或x权限。读取目录文件内容,至少需要目录权限x和文件权限r。
总结
Linux的每个文档可以分别针对三种身份赋予rwx权限;chgrp命令变更文件群组,chmod命令变更文件权限,chown变更文件拥有者;那么以后记得使用文档权限来保护数据的安全性哦。
来源:无痴迷,不成功
http://www.cnblogs.com/justmine/p/9053419.html