linux下目录的权限问题
作者:
| 更新日期:遇到一个linux目录不可读的权限问题,查了资料,原来目录必须有可读和可执行权限才能访问.
本文首发于公众号:天空的代码世界,微信号:tiankonguse
背景
最近在做一个网站, 写静态文件时, 为了实时生效,我想建个软连接.
网站使用的是user_00用户运行的, 我的个人目录在tiankonguse用户下.
于是,我就像下面的样子建了一个软连接.
tiankonguse:templates $ ln -s /data/tiankonguse/mediaplat/tiankonguse.com/templates/ele_flow_prj_page /data/release/qqlive/tiankonguse.com/templates/ele_flow_prj_page
tiankonguse:templates $ ll ele_flow_prj_page
lrwxrwxrwx 1 user_00 users 64 7月 13 10:08 ele_flow_prj_page -> /data/tiankonguse/mediaplat/tiankonguse.com/templates/ele_flow_prj_page/
但是运行网站,却发现没有生效.
于是查找了一下原因,记录一下.
问题原因
没建软连接之前网站是可以使用的,建了之后不能使用,说明问题在软链接上.
又由于之前在其他开发机上建过软连接,所以知道肯定支持软链接的方式的.
于是猜测是权限问题了.
于是什么也没想,先给最高权限试试
tiankonguse:templates $ chmod -R 777 /data/tiankonguse/mediaplat/tiankonguse.com/templates/ele_flow_prj_page/
tiankonguse:templates $ ll /data/tiankonguse/mediaplat/tiankonguse.com/templates/ele_flow_prj_page/
总用量 8.0K
-rwxrwxrwx 1 tiankonguse users 7.4K 1月 29 2015 ele_flow_prj_page.cs*
结果还是不行,这个…
于是换成 user_00 用户,去查看一下那个文件.竟然提示我没有权限!!!
user_00@10.123.10.23:[templates]: ll /data/tiankonguse/mediaplat/tiankonguse.com/templates/ele_flow_prj_page
ls: 无法访问/data/tiankonguse/mediaplat/tiankonguse.com/templates/ele_flow_prj_page: 权限不够
这, 难道父目录没有读权限?
user_00@10.123.10.23:[templates]: ll -d /data/tiankonguse/mediaplat/tiankonguse.com/templates/ele_flow_prj_page
drwx------ 3 tiankonguse users 4096 8月 17 11:28 /data/tiankonguse/mediaplat/tiankonguse.com/templates/ele_flow_prj_page
好吧, 我的目录下的文件竟然是 700
权限, 怪不得网站建了软连接不能使用呢.
于是去用户目录,增加读权限.
chmod -R 740 /data/tiankonguse
竟然还是提示没有权限,然后查了资料, 发现目录必须有可读可执行权限才能访问, 于是换成 750
权限就OK了.
问题总结
上面涉及到了linux下的几个基础知识,这里回顾一下.
** 创建链接 **
ln
命令可以创建文件的软链接和硬链接.
-s
参数用于创建软链接.
** 显示文件 **
ls
命令用于显示文件的信息, 比如权限.
-l
参数用于显示文件的基本信息:权限,修改时间,大小等.
-d
参数用于显示目录的基本信息,默认显示目录内的文件列表的信息.
** 修改权限 **
chmod
用于修改文件的权限.
一个目录想要提供给其他用户使用, 这个目录到根目录之间的所有目录都需要有可读和可执行权限.
本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。