文件夹权限问题 ubuntu

来源:互联网 发布:蒋方舟 与男 知乎 编辑:程序博客网 时间:2024/05/16 17:30

问题:前几天安装superset的时候,superset访问 sqlite3数据库时报错: unable to open database

分析:

这个一看就是权限问题.我的数据库文件地址是: ~/.superset/superset.db

我使用指令

chmod 777 ~/.superset/superset.db
修改了文件的权限,还是报错.

后来,别人说不仅要修改文件的权限,最重要的是修改这个文件所属 上一层文件夹的属性!

所以执行指令了

chmod 777 ~/.superset/
success!

总结:

我又重新来了一遍.

(1)首先文件的own 还有用户组应该设置为我的 hadoop用户,不知道为啥这里默认是 root了,权限太高,

分别执行

chown  hadoop ~/.superset/superset.dbchgrp  hadoop ~/.superset/superset.db
(2)再修改文件所属文件夹的权限:

chmod 777 ~/.superset/
即可!


借这个机会学习了一下linux文件夹权限问题:

主要参考网站:

http://www.cnblogs.com/avril/archive/2010/03/23/1692809.html

http://jingyan.baidu.com/article/380abd0a7190061d90192cce.html


(1) 使用 指令

-ls -l ~/.superset/superset.db
就可以查看文件的权限:


-rw-r--r--总共有10个字符,

第一个是文件属性, -表示非目录文件, d表示目录文件.

2-4, 5-7, 8-10分别表示 文件所有者(own) , 同组用户, 其他用户的权限.

三个权限分别是,rwx,表示 "读权限","写权限"和"执行权限",有这个权限就标示相应权限,没有就标示"-"字符.

所以,上面这个图表示文件 ~/.superset/superset.db的权限是:

所有者hadoop有读写权, hadoop组的用户有读权限, 其他用户读权限.


(2)上面是查看文件的权限,我们再来查看文件夹的权限

我们要想看 文件夹~/.superset的权限,执行 -ls -l ~/.superset/是不行的,

它查看的是目录~/.superset/下文件的权限.

所以使用指令

-ls -l -a ~/
结果是


解释一下,由于~/.superset/文件是 系统隐藏文件,所以加了一个 -a参数,显示所有文件信息.

第一个单词的第一个字符是 d表示~/.superset/ 是目录文件,没毛病!

其他没什么好说的了.


(3) 改变用户所有者指令:

执行命令前:


执行命令:

chown hadoop ~/.superset/superset.db
执行后:



(4)改变用户组指令:

执行命令前:



执行命令:
chgrp hadoop ~/.superset/superset.db
执行后:


(5)改变文件权限

chmod 777 superset.db

777分别表示 所有者,同组用户,其他用户 3种用户的权限.

7=4+2+1, 分别表示读,写,执行权限.

故 4:读

2:写

1:执行

6:读写

5:读执行

3:写执行,ok!


1 0
原创粉丝点击