GNU/Linux >> Znalost Linux >  >> Ubuntu

Sudo:/var/lib/sudo/navneet Writable by non-owner (040777), should be Mode 0700?

K této chybě dochází, kdykoli se pokusím pracovat s sudo . Změnil jsem oprávnění /var/ složku na 777 a myslím, že to způsobuje chybu. Prosím, pomozte mi získat zpět funkční sudo a /var .

Nejlepší odpověď

Máte opravdu velký problém, ale ne skutečně z důvodů zde uvedených.

Změna oprávnění ve všech /var bude pravděpodobné, že je všechny nedostanete zpět správně, protože nebudete vědět, jaká oprávnění každá soubor by měl mít . Později můžete mít problémy. V závislosti na okolnostech mohou vaše problémy souviset se zabezpečením.

Proto možná budete chtít zvážit přeinstalaci Ubuntu. Případně se můžete pokusit získat oprávnění ze souborů v jiném podobném nepoškozeném systému. Oprávnění jsou obvykle stejná. Obvykle. Vážnější problém je, že váš systém má pravděpodobně nějaké soubory v /var které na druhém nejsou, takže pravděpodobně ne všechny oprávnění budou opravena.

Provádění administrativních úloh na stolním systému bez funkčního sudo je však obvykle triviálně snadné.

Změna oprávnění zpět, když víte, jaká by měla být, je snadná a zřídka vyžaduje spuštění do režimu obnovení nebo z živého CD. Je to proto, že ačkoli to není široce známé, desktopové verze Ubuntu (a většina ostatních operačních systémů GNU/Linux v současnosti) mají dva způsoby nastavení pro provádění administrativních úkolů:

  • sudo , což nebude fungovat, protože vyžaduje oprávnění v /var abych byl správný.
  • PolicyKit, který má tendenci být tolerantnější vůči nesprávným oprávněním a obvykle stále funguje.

Zatímco my máme tendenci myslet na sudo jako způsob, jakým provádíte akce jako root na Ubuntu je PolicyKit ve skutečnosti způsob, jakým se většina, i když ne všechny, grafické nástroje stávají root . (Je tomu tak již několik let.)

Ruční spouštění grafického programu pomocí PolicyKit je ve skutečnosti někdy významný podnik, protože grafické aplikace musí mít speciální konfigurační soubory, aby je PolicyKit byly ochotny spouštět. Ale terminální aplikace ne – je stejně snadné spustit textový příkaz pomocí PolicyKit jako pomocí sudo .

Chcete-li to provést, zadejte pkexec kde byste jinak zadali sudo . (Neberou všechny stejné možnosti příkazového řádku, ale nejběžnější syntaxi pro sudo je sudo command a pkexec funguje perfektně na svém místě.)

Takže, protože sudo je nefunkční, nemůžete spustit:

sudo chmod 0755 /mnt/var/lib/sudo
sudo chmod 0700 /mnt/var/lib/sudo/<username>

Ale můžete spustit:

pkexec chmod 0755 /mnt/var/lib/sudo
pkexec chmod 0700 /mnt/var/lib/sudo/<username>

To je dobrý začátek a pravděpodobně to udělá sudo zase pracovat. (Neopraví to všechny ostatní soubory v /var , ačkoli.)

Související:Jak změnit pozici spouštěče unity side zleva doprava ubuntu 14.04?

Související (ale ve většině případů ne identické) situace, kdy pkexec je užitečné:
‣ Jak upravit neplatný soubor /etc/sudoers? Hází to chybu a nedovoluje mi to znovu upravit a opravit to
‣ omylem zablokován přístup k sudoers.d při pokusu o změnu konfigurace ushare
‣ 'sudo' nefunguje po změně oprávnění '/ adresář usr
‣ Jak opravit sudo po „chmod -R 777 /usr/bin“?, chyba sudo, je režim 0777, mělo by být 0440,
          Jak opravit „sudo:/etc/sudoers je režim 0640, měl by být 0440?“
‣ Instalace ZFS změnila můj soubor sudoers
‣ Heslo pro sudo nefunguje („selhání ověření“)
‣ Proč nic nefunguje poté, co jsem náhodně změnil některá oprávnění k souboru?
‣ změnil oprávnění /etc v oneiric (ubuntu11.10) pomocí „sudo chmod 665 /etc“ nyní nelze použít sudo
‣ Jak spustím konkrétní příkazy sudo bez hesla? (jen když se něco pokazí)
‣ Nemohu zapisovat /etc/sudoers z živého CD Ubuntu (jen když se něco pokazí)


Ubuntu
  1. Rozdíl mezi /var/log/messages, /var/log/syslog a /var/log/kern.log?

  2. Sudo už nepožaduje heslo?

  3. Chyba Gpg, podpisy neplatné pro „http://archive.canonical.com přesné vydání“?

  1. „Nelze vytvořit adresář mezipaměti /home//.composer/cache/repo/https—packagist.org/, nebo adresář není zapisovatelný. Pokračovat bez mezipaměti“?

  2. „sudo:/etc/sudoers je světově zapisovatelný“ – Jak opravit oprávnění souboru sudoers

  3. Použijte úložiště git na /var/www/html/

  1. Django static_root v /var/www/... - žádná oprávnění ke collectstatic

  2. unix:///var/run/supervisor.sock žádný takový soubor

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?