2016-05-11 74 views
0

我的腳本...應該遞歸更改文件夾的權限的線路做了一個非常惱人的錯誤:如何修復chmod -r 777之後的權限/?

chmod -R 777 $folder/ 

的東西是變量還沒有設置,所以它跑,而不是:

chmod -R 777/

是愚蠢的。問題是,現在我不能使用sudo了,我得到這個消息:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set 
  1. 有沒有辦法恢復的權限?
  2. 如果沒有,有沒有辦法備份我的Ubuntu 14.04(在VirtualBox上運行)?
  3. 如果不是,我該如何保存重要數據?
+0

* *你[無法修復此問題](https://serverfault.com/q/364677/313521),無需重新安裝。** – Wildcard

回答

1

我終於找到了解決方案!

問題解釋

當我改變了根文件夾/我也改了權限/usr/bin/sudo遞歸的權限。要查看它的權限我輸入:

ls -la /usr/bin/sudo 

它給我:

-rwxrwxrwx 1 root root 127668 2016-05-11 12:01 /usr/bin/sudo 

相反的:

-rwsr-xr-x 1 root root 127668 2016-05-11 12:01 /usr/bin/sudo 

這裏小號-RW的小號 R-xr- x很重要,因爲它給予用戶臨時權限以使用文件所有者的權限運行sudo(即在這種情況下爲root)r ather那個運行它的用戶。

看看這篇文章,進一步瞭解如何:http://www.linuxnix.com/suid-set-suid-linuxunix/

一個解決辦法是改變對/usr/bin/sudo的權限:

chmod 4755 /usr/bin/sudo 

但我需要root權限才能更改權限..幸運的是,我在一臺虛擬機上運行Ubuntu。

一種解決方案是創建一個新的虛擬機。完成後,在我的新虛擬機上使用VirtualBox安裝破解的ubuntu .vdi設置 - >存儲 - >添加硬盤驅動器。確保第一個硬盤是新的虛擬機,以便在新的虛擬機上啓動。

一旦完成,就可以安裝硬盤驅動器(你破碎的Ubuntu)上更改權限須藤:

sudo chmod 4755 /mnt/XXXXX/usr/bin/sudo 

現在,您可以用工作須藤運行固定的虛擬機...

+0

這將**不會**讓你修復所有問題。 [時段](https://serverfault.com/q/364677/313521) – Wildcard