我试图用以下命令为 activemq 创建默认配置文件
sudo ./activemq setup [ /etc/default/activemq | /home/leo/.activemqrc ]`
然后收到此消息:
INFO: It's recommend to limit access to '/etc/default/activemq' to the priviledged user
INFO: (recommended: chown 'root':nogroup '/etc/default/activemq'; chmod 600 '/etc/default/activemq')
/etc/default/activemq
然后我改变了两者的所有者和/home/leo/.activemqrc
权限
chown root:nogroup ~/activemqrc; chmod 600 ~/.activemqrc
更改 ~/.activemqrc 的权限无疑是一个大错误。我查看了 Home 上每个文件和文件夹的权限,上面写着:
The permissions of "Everything" could not be determined
我无法再访问家中的目录和文件。
回答如下尽管所有者是我,但 ~ 的权限被拒绝我运行了以下命令:
find ~ -type d -exec chmod 750 \;
并得到以下输出:
find: pred.c:1932: launch: Assertion `starting_desc >= 0' failed.
有什么方法可以恢复我的默认配置吗?
编辑
然后我尝试了这个:
sudo chown root:root ~/
没有输出然后
sudo chmod -R 777 ~/
这基本上解决了我的问题,但是对于两个返回的文件
chmod: cannot access `/home/leo/.gvfs': Permission denied
chmod: cannot access `/home/leo/.config/google-chrome/.com.google.Chrome.Z07tM9': No such file or directory.
那只是个坏主意。
答案1
您第一次尝试修复它只是缺失了'{}'
但随后事情变得更糟......
几乎没有任何理由要求任何文件具有权限,并且在使用时777
几乎也没有一个很好的标志用例,因为我们需要目录是可执行的才能进入或声明它们,但我们很少希望所有文件都是可执行的。-R
chmod
首先,chown
你的主目录。以你自己的身份登录,运行
sudo chown -R $USER: ~
如果你只是运行了类似
chmod 600 ~
然后将其还原:
chmod 755 ~
但是,如果你做了一些非常不明智的事情,比如(不执行) chmod -R 777 ~
, 那么修复权限将会更加棘手。
find
对此非常有用。您家中的目录权限会有所不同,可能是、或700
。775
为了谨慎起见,我会这样做:755
750
find ~ -type d -exec chmod 700 '{}' +
因此只有您可以访问目录。您可以改用755
并更正这些模式:
chmod 700 ~/.local ~/.cache ~/.dbus ~/.thumbnails ~/.gconf ~/.thunderbird
然后是文件。您的主目录中可能有一些可执行脚本,但一般来说文件不应是可执行的。您主目录中的大多数文件可能都有664
权限644
,但为了安全起见,您可能希望使用
find ~ -type f -exec chmod 600 '{}' +
这样就只有您可以访问您主目录中的文件和目录。如果您愿意,请使用644
,然后更正文件Xauthority
和其他一些文件的模式:
chmod 600 ~/.Xauthority ~/.ICEauthority ~/.bash_history ~/.local/share/keyrings/* ~/.xsession-errors ~/.lesshst
如果你想要非常彻底地检查,你可以安装一个新的 Ubuntu VM 或检查另一台机器的权限~
……例如
find ~ -type d -not -perm 700 -exec stat -c "%n %a" {} \; | tee dirperms
和
find ~ -type f -not -perm 600 -exec stat -c "%n %a" {} \; | tee fileperms
将生成您可以用来进行更正的列表。