我们在Linux运维的日常工作中最常用的权限无非就是r(读)、w(写)、x(执行)三种。
那么是不是学会了这三种权限就是纵横Linux权限疆域呢?
当然不是,如果仅仅掌握了读写执行三种权限,会写类似chmod 755 文件名这样的命令就可以在Linux权限领域里信马由缰,那么我就没有必要写下这篇文章了,那么Linux也就不会那么神秘而强大了。
哈哈,说了这么多废话,接下来我给大家讲一个故事吧!
早在明朝的时候,有一个百宝箱,对,就是杜十娘怒沉的那个百宝箱被一个叫做张三的渔民打捞了出来,所以他就自然而然的变成了百宝箱的所有者。很不幸,他隶属于一个渔民组织,他不敢把百宝箱据为己有,所以他就把百宝箱交给了组织,百宝箱有两把钥匙,他自己留了一把,把另外一把钥匙上交给了自己的组织。换句话说,现在百宝箱的所有者是张三,所属组是渔民组织,两者都可以自由处置百宝箱。当然除此之外的其他人是不可以对百宝箱有任何非分之想的。用我们普通权限的知识,此时百宝箱的权限就是drwxrwx---
那么问题来了,不知道是谁走漏了风声,这件事被九千岁魏忠贤得知。这九千岁是喜出望外,夺得宝箱。但是他既不是宝箱的所有者,也不是宝箱的所属组,那么他如果想要打开百宝箱应该给他赋予什么权限呢?
这时候有人可能会说,给他一个其他人的权限吧!当然不行啦,魏忠贤何许人也,怎么可能与别人平分富贵。那么是不是有一个特别的权限可以给他呢?
当然是有的,在我们的Linux世界里有一个ACL权限,就是为了处理这种特殊情况而存在的。
那么接下来,我们开始给魏忠贤设定ACL权限:
首先,我们创建一个百宝箱文件:box
设定ACL权限:
setfacl -m u:wzx:r-x box/
但是现在百宝箱里其实并没有什么宝贝,只有三本武林秘籍。魏忠贤就想打开这三本武林秘籍,于是:
哎呀,可把这老东西给气坏了。怎么办,还是逼问渔民组织要权限呗!
到了这里,递归设定ACL权限的方法终于粉墨登场了。
setfacl -m u:wzx:rx -R box
我们在前面已经学会了如何赋予ACL权限,那么如何查看ACL权限呢?
getfacl 文件名
那么如何设置默认权限呢,就是说让新创建的文件直接被自动赋予ACL权限。
setfacl -m d:u:wzx:rx -R box
后来崇祯皇帝上台后把魏忠贤等一干阉党定为逆党干死了,那么朝廷就要取消他的权限。
setfacl -x u:wzx box
注意:默认权限与递归权限针对的都只是目录