Linux 权限管理之一:文件夹的 rwx 权限
2015-05-30 00:50
801 查看
转载请注明来源 /article/7734840.html
文件夹的权限管理理应不是个复杂的东西,但我总是弄混,今天整理出来加深一下自己印象。
文件夹也像普通文件那样有3种基本的权限:r(Read)、w(Write)、x(eXecutable),但却有一些微妙的区别。
可见,用户被拿掉目录的 x 权限后,仅仅可以在目录外读取该目录的文件列表,而不能进入该目录,甚至无法得知该目录下文件的权限、所有者、日期的内容。
关于 x 权限,我们继续上面的操作:
由上可见,对一个文件夹没有 x 权限时,你是无法读或者执行该文件夹下的文件的。
继续上面的操作:
可以看出,当我拥有文件夹的 x 权限时,我才能得到该文件夹下文件的 rx 权限。
事实上,我虽然对文件夹还没有 w 权限,但我是可以修改文件夹下文件的内容的:
如果我把文件夹的 r 权限去掉,只保留 x 权限呢?
此时我们可以进入该文件夹,但却无法获取文件列表,但我们仍然可以通过文件名来读取文件(很神奇的样子)。
但是我们仍然可以修改该文件夹下文件的权限信息:
以及上面证明的,我们可以修改文件内容。
由于删除文件夹需要递归的删除,所以如果我们对子文件夹没有 w 权限,并且该子文件夹不为空,那么我们将无法删除该子文件夹下的内容,我们也无法删除该子文件夹:
最后我们可以验证,对文件夹没有 w 权限,对子文件夹有 w 权限,我们是可以对子文件夹下的内容进行新建删除操作的:
(还有就是,复制一个文档所需要的权限是对该文档的 r 权限和对父文件夹的 x 权限)
以上,就是我对 linux 下文件夹 rwx 权限的理解与验证。
转载请注明来源 /article/7734840.html
文件夹的权限管理理应不是个复杂的东西,但我总是弄混,今天整理出来加深一下自己印象。
文件夹也像普通文件那样有3种基本的权限:r(Read)、w(Write)、x(eXecutable),但却有一些微妙的区别。
r(Read)和 x(eXecutable)
某一用户拥有对文件夹的 r 权限以后,并不意味着该用户该用户可以进入该目录读取该目录的内容,r 权限让用户能够读取该目录的内容,但不能进入该目录,测试如下:[admin@localhost test]$ mkdir dir [admin@localhost test]$ ll total 4 drwxrwxr-x. 2 admin admin 4096 May 30 00:10 dir [admin@localhost test]$ touch dir/doc [admin@localhost test]$ chmod 400 dir [admin@localhost test]$ ll total 4 dr--------. 2 admin admin 4096 May 30 00:10 dir [admin@localhost test]$ cd dir bash: cd: dir: Permission denied [admin@localhost test]$ ll dir/ ls: cannot access dir/doc: Permission denied total 0 -????????? ? ? ? ? ? doc
可见,用户被拿掉目录的 x 权限后,仅仅可以在目录外读取该目录的文件列表,而不能进入该目录,甚至无法得知该目录下文件的权限、所有者、日期的内容。
关于 x 权限,我们继续上面的操作:
[admin@localhost test]$ chmod 700 dir/ [admin@localhost test]$ echo "echo 'I can execute'" > dir/doc [admin@localhost test]$ chmod 700 dir/doc [admin@localhost test]$ ll dir/ total 4 -rwx------. 1 admin admin 21 May 30 00:15 doc #拥有对该文件的 rwx 权限 [admin@localhost test]$ chmod 400 dir/ [admin@localhost test]$ ll total 4 dr--------. 2 admin admin 4096 May 30 00:10 dir #此时只对文件夹有 r 权限 [admin@localhost test]$ cat dir/doc cat: dir/doc: Permission denied #虽然对文件夹和文件有 r 权限,但我无法读取该文件 [admin@localhost test]$ ./dir/doc bash: ./dir/doc: Permission denied #虽然对文件有 x 权限,但我无法执行该文件
由上可见,对一个文件夹没有 x 权限时,你是无法读或者执行该文件夹下的文件的。
继续上面的操作:
[admin@localhost test]$ chmod 500 dir/ [admin@localhost test]$ ll total 4 dr-x------. 2 admin admin 4096 May 30 00:10 dir #得到了 x 权限 [admin@localhost test]$ cat dir/doc echo 'I can execute' #可以读取文件 [admin@localhost test]$ ./dir/doc I can execute #可以执行文件
可以看出,当我拥有文件夹的 x 权限时,我才能得到该文件夹下文件的 rx 权限。
事实上,我虽然对文件夹还没有 w 权限,但我是可以修改文件夹下文件的内容的:
[admin@localhost test]$ echo "I can wirte!" > dir/doc [admin@localhost test]$ cat dir/doc I can wirte!
如果我把文件夹的 r 权限去掉,只保留 x 权限呢?
[admin@localhost test]$ chmod 100 dir/ [admin@localhost test]$ cd dir/ [admin@localhost dir]$ ll ls: cannot open directory .: Permission denied [admin@localhost dir]$ cat doc I can wirte!
此时我们可以进入该文件夹,但却无法获取文件列表,但我们仍然可以通过文件名来读取文件(很神奇的样子)。
w(Write)
当我们对文件夹有 w 权限时,我们可以在该文件夹下新建,删除文件(即使要删除的文件的所有者为 root,但此处不再验证),当没有 w 权限时,则无法进行这样的操作:[admin@localhost test]$ chmod 700 dir/ #赋予 w 权限 [admin@localhost test]$ ll total 4 drwx------. 2 admin admin 4096 May 30 00:10 dir [admin@localhost test]$ mkdir dir/subdir [admin@localhost test]$ touch dir/newdoc [admin@localhost test]$ rm dir/doc [admin@localhost test]$ ll dir/ total 4 -rw-rw-r--. 1 admin admin 0 May 30 00:25 newdoc drwxrwxr-x. 2 admin admin 4096 May 30 00:25 subdir [admin@localhost test]$ chmod 500 dir/ #拿掉 w 权限 [admin@localhost test]$ ll total 4 dr-x------. 3 admin admin 4096 May 30 00:25 dir [admin@localhost test]$ touch dir/doc touch: cannot touch ‘dir/doc’: Permission denied [admin@localhost test]$ rm dir/newdoc rm: cannot remove ‘dir/newdoc’: Permission denied
但是我们仍然可以修改该文件夹下文件的权限信息:
[admin@localhost test]$ ll dir/ total 4 -rw-rw-r--. 1 admin admin 0 May 30 00:25 newdoc drwxrwxr-x. 2 admin admin 4096 May 30 00:25 subdir [admin@localhost test]$ chmod 777 dir/newdoc [admin@localhost test]$ ll dir/ total 4 -rwxrwxrwx. 1 admin admin 0 May 30 00:25 newdoc drwxrwxr-x. 2 admin admin 4096 May 30 00:25 subdir
以及上面证明的,我们可以修改文件内容。
由于删除文件夹需要递归的删除,所以如果我们对子文件夹没有 w 权限,并且该子文件夹不为空,那么我们将无法删除该子文件夹下的内容,我们也无法删除该子文件夹:
[admin@localhost test]$ chmod 700 dir/ #赋予 w 权限 [admin@localhost test]$ ll total 4 drwx------. 3 admin admin 4096 May 30 00:25 dir [admin@localhost test]$ touch dir/subdir/foo [admin@localhost test]$ chmod 500 dir/subdir [admin@localhost test]$ ll dir/ total 4 -rwxrwxrwx. 1 admin admin 0 May 30 00:25 newdoc dr-x------. 2 admin admin 4096 May 30 00:34 subdir #对子文件夹没有 w 权限 [admin@localhost test]$ rm -rf dir/subdir rm: cannot remove ‘dir/subdir/foo’: Permission denied [admin@localhost test]$ ll dir/ total 4 -rwxrwxrwx. 1 admin admin 0 May 30 00:25 newdoc dr-x------. 2 admin admin 4096 May 30 00:34 subdir #没有删除成功
最后我们可以验证,对文件夹没有 w 权限,对子文件夹有 w 权限,我们是可以对子文件夹下的内容进行新建删除操作的:
[admin@localhost test]$ chmod 500 dir/ [admin@localhost test]$ ll total 4 dr-x------. 3 admin admin 4096 May 30 00:25 dir [admin@localhost test]$ chmod 700 dir/subdir/ [admin@localhost test]$ ll dir/ total 4 -rwxrwxrwx. 1 admin admin 0 May 30 00:25 newdoc drwx------. 2 admin admin 4096 May 30 00:34 subdir [admin@localhost test]$ mkdir dir/subdir/subsubdir [admin@localhost test]$ ll dir/subdir/ total 4 -rw-rw-r--. 1 admin admin 0 May 30 00:34 foo drwxrwxr-x. 2 admin admin 4096 May 30 00:43 subsubdir [admin@localhost test]$ rm dir/subdir/foo [admin@localhost test]$ ll dir/subdir/ total 4 drwxrwxr-x. 2 admin admin 4096 May 30 00:43 subsubdir
(还有就是,复制一个文档所需要的权限是对该文档的 r 权限和对父文件夹的 x 权限)
以上,就是我对 linux 下文件夹 rwx 权限的理解与验证。
转载请注明来源 /article/7734840.html
相关文章推荐
- Linux中颜色整理
- Linux删除用户
- linux下vi命令大全
- Linux下查看文件和文件夹大小
- Linux内核移植心得
- LINUX实现简单的进度条
- linux c下输入密码不回显
- VMware workstation安装linux(ubuntu)配置详解
- Linux系统环境变量PATH
- zimbra Uninstall Directions for Linux/All Other Operating Systems
- Linux 信号机制 (四)
- Vim常用快捷键-个人学习用
- linux创建新进程的过程
- Linux下的DNS服务器配置实践(三)-子域授权、转发、视图
- Linux内核信号处理机制介绍
- Linux 链接脚本详解
- itop4412的linux环境搭建
- Linux配置
- Linux 内核定时器及使用方法
- RHEL6子接口及双网卡绑定配置