工作的电脑上装的是ubuntu,下午想在上面的redhat虚拟机上装个Sybase数据库,但是安装文件太大,不想拷到虚拟机上去,于是在ubuntu上将Sybase安装文件解压到/tmp目录,>然后在/etc/export里面设置了nfs共享:
/tmp 172.16.212.2(rw,sync,no_subtree_check,no_root_squash)
然后在redhat上直接挂载:
sudo mount -t nfs 172.16.212.2:/tmp ~/tmp
但是安装Sybase数据库的时候,电脑出现了点问题,于是就重启了电脑,当时正在关闭虚拟机。
重启以后发现无法登录到图形化界面了,报错:
(1)/usr/lib/libgconf2-4/gconf-sanity-check-2的退出状态为256
然后将该文重命名后,又出现下面这个错:
(2)配置服务器有错误 没有正确安装GNOME电源管理器的默认配置
首先以为是用户配置文件文件损坏导致的,于是切换到命令行,删除了家目录下面的gnome相关的配置文件,还是无法启动,于是又重新建了一个用户,同样无法登录,因此基本排除
了配置文件损坏的原因,再尝试以root用户登录图形化界面,登录成功,于是可以推断是权限问题。在/etc目录下面找电源管理和gnome等相关的配置文档,没发现什么异常。
google了一下,找到了http://www.sq01.cn/viewthread.php?tid=4365这篇文章,于是查看了/tmp,/tmp目录的标准权限应该是:
drwxrwxrwt 12 root root 4096 07-16 17:50 tmp
所有的用户都是有读写执行的权限,同时设置了粘滞位,虽然用户对目录具有写权限,但是他却无法删除其他用户建的文件,保证了共享目录里的文件安全
而我现在的/tmp目录的权限和uid,gid全部变了,导致普通用户对/tmp失去了某些必要的权限,登陆时GNOME电源管理器可能需要利用/tmp目录来建临时文件,却没有权限,因此登>录失败,root用户则不存在这个问题.
执行命令: sudo chmod 1777 /tmp
再次尝试登录,成功登录。
教训:
造成/tmp目录权限,uid,gid全部被修改的主要原因是在/etc/exports文件中设置了no_root_squash这个选项,根据《鸟哥的私房菜》里面的说明:
no_root_squash:
登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
root_squash:
在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份;
安装Sybase数据库的时候,切换到了root用户,因此redhat对/tmp目录就具有了任意修改的权限,在使用中,虚拟机修改了ubuntu上/tmp目录的权限,导致了这个问题。NFS使用虽>然非常的方便,但是安全性确实存在不小问题,因此对设置的选项需要特别的小心,今天仅仅是安装Sybase,只需要读权限,因此rw, no_root_squash这些选项都可以去掉,也就不会出现今天的问题了。