Как сбросить права доступа к папкам по умолчанию в Ubuntu?

Я недавно набрал команду

sudo chmod 777 -R / 

После этого некоторые вещи, как

 sudo -i 

Не работают нормально. Поэтому мне интересно, есть ли способ сбросить разрешения на папку в исходное состояние?

Из этой грязной ситуации можно вернуться.

Я снова запускал тот же самый вид (некоторая ошибка в скрипте, который я писал), и решил его, но вам нужно обратиться за помощью к специалисту. Будьте очень осторожны!

Во-первых, моя ситуация была легче решить, потому что у меня была двойная система загрузки (Ubuntu и моя старая Fedora установка), но запуск ОС с CD / DVD или USB-ключ должен делать то же самое.

 MPOINT=/mount/ubuntu 

Сначала я смонтировал свои файловые системы (не забудьте создать точки монтирования):

 mount /dev/ubuntu/root $MPOINT mount /dev/ubuntu/home $MPOINT/home 

Затем я выполнил следующую команду (моя проблема была только в нескольких критических каталогах), чтобы скопировать разрешения из работающей системы в беспорядочную (фактически, в моем случае я установил систему Ubuntu в Virtual Box в Fedora И получил разрешения там):

 find /etc /usr /bin /sbin -exec stat --format "chmod %a \"${MPOINT}%n\"" {} \; > /tmp/restoreperms.sh 

И затем я запустил скрипт restoreperms.sh.

Я снова смог загрузиться на Ubuntu.

Содержимое restoreperms.sh будет выглядеть примерно так:

 (...) chmod 755 /mount/ubuntu//etc/ppp chmod 755 /mount/ubuntu//etc/ppp/ipv6-up chmod 2750 /mount/ubuntu//etc/ppp/peers chmod 640 /mount/ubuntu//etc/ppp/peers/provider chmod 755 /mount/ubuntu//etc/ppp/ipv6-up.d chmod 777 /mount/ubuntu//etc/ppp/resolv.conf (...) 

Я не тестировал его, но он должен работать и для владельцев, и для групп владельцев. Что-то вроде:

 find /etc /usr /bin -exec stat --format 'chown %U:%G ${MPOINT}%n' {} \; > /tmp/restoreperms.sh^ (...) chown root:root /mount/ubuntu//etc/obex-data-server/imaging_capabilities.xml chown root:root /mount/ubuntu//etc/obex-data-server/capability.xml chown root:dip /mount/ubuntu//etc/ppp chown root:root /mount/ubuntu//etc/ppp/ipv6-up chown root:dip /mount/ubuntu//etc/ppp/peers chown root:dip /mount/ubuntu//etc/ppp/peers/provider chown root:root /mount/ubuntu//etc/ppp/ipv6-up.d chown root:root /mount/ubuntu//etc/ppp/resolv.conf (...) 

Конечно, вам нужно позаботиться о том, чтобы UID и GID были одинаковыми для обеих систем, но для пользователей и групп, связанных с системой, это не должно быть проблемой.

Редактировать:

Кроме того, владелец установки аннулирует флаги SGID и SUID , что вызывает странные проблемы (например, вы не сможете выполнить sudo, если разрешение не равно 4755). Вы должны и должны устанавливать разрешения только после установки владельцев. СОХРАНИТЕ полную информацию о разрешении файла вместе с информацией о владельце.

Rk:

  1. Для этого важно сохранить синхронизацию установочного диска с используемой вами версией или, по крайней мере, работать с текущей версией ubuntu.
  2. Теперь у меня есть эта команда в cronjob, которая работает каждый день (может быть недели), чтобы сохранить эту информацию. Это облегчит решение в следующий раз, но, конечно, поскольку у меня есть это сейчас, это никогда не повторится. 😉 Что-то вроде этого:

    0 12 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chmod %a %n" {} \; |/bin/bzip2 -c > /tmp/restore_chmod.$(/bin/date +%w).sh.bz2

    0 13 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chown %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_chown.$(/bin/date +%w).sh.bz2

Правильная (комбинированная) команда больше похожа:

 `/usr/bin/find / -exec /usr/bin/stat --format="[ ! -L {} ] && /bin/chmod %a %n" {} \; -exec /usr/bin/stat --format="/bin/chown -h %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_fileperms.$(/bin/date +%w).sh.bz2` 

Обратите внимание, что для учета круглых скобок в именах файлов (например, под локалями) может потребоваться дополнительная помощь, и chown может спокойно отключить биты setuid и setgid, установленные chmod. В последнем случае, который сломался бы, скажем, / bin / su и / usr / bin / sudo, вам может потребоваться заменить порядок предложений exec выше.

После восстановления sudo или выбора режима восстановления при загрузке

Можно восстановить всю систему, используя debsums, которые гарантируют целостность файла и разрешения.

Со страницы man:

 apt-get install --reinstall $(dpkg -S $(debsums -c) | cut -d : -f 1 | sort -u) 

Пакеты Reinstalls с измененными файлами

Или ограничивается определенным путем, например: /usr :

 apt-get install --reinstall $(dpkg -S $(debsums -c | grep -e ^/usr ) | cut -d : -f 1 | sort -u) 

Или ограничивается несколькими наборами путей, например: /sbin /etc /var

 apt-get install --reinstall $(dpkg -S $(debsums -c | grep -e ^/etc -e ^/sbin -e ^/var ) | cut -d : -f 1 | sort -u) 

Всегда следите за тем, что вы выполняете как sudo.

В этом разделе объясняется, что вы можете вручную установить некоторые разрешения, и с этим помогает скрипт, но все же это большая работа. Скорее следуйте советам в протекторах, чтобы сохранить установленные пакеты (маркировки) и переустановить ОС, и применить маркировку сохраненных пакетов, чтобы вернуть свои приложения.

Насколько мне известно, только пакеты System V и RPM предлагают команду для восстановления прав доступа к файлам. В системе V (Solaris) это pkgchk, с RPM это rpm –setperms.

К сожалению, такая команда не существует для пакетов Debian / Ubuntu, но я могу ошибаться.

Но даже с помощью этих команд нет тривиальной задачи вернуть вашу систему в нормальное состояние, и, восстановив ее, вы можете легко нанести новый вред вашей системе – если вы не будете осторожны.

Кроме Джозефа, вы не первый, и вы не будете последним, кто войдет в такую ​​команду. Но только одна идея – изменить права доступа к файлам на 777 в системе Unix – является убедительным свидетельством того, что вы не очень хорошо разбираетесь в такой системе. Лучшее, что вы можете сделать в этой ситуации, – это сделать резервную копию того, что вам понадобится снова (домашние каталоги, файлы конфигурации, почтовые файлы?) И попробовать новую установку.

При восстановлении поврежденных резервных файлов вы должны быть очень осторожны.

Удачи!

PS: Мне просто интересно, какую проблему вы хотели решить?

Вау, ты убил его. Он мертв! Попробуйте войти в систему и использовать компьютер как root (с тех пор как вы включили его), а затем измените членство в группе пользователей root. Это может быть или не работать, потому что я никогда не пробовал это раньше, но это стоит того.

Вы не можете отменить операцию chmod ; По крайней мере, не в смысле возврата к предыдущей настройке, что и требуется этой ситуации. Возможно, вы можете отменить операцию chmod переведя каждый файл и каталог обратно в исходный режим, но они не все одинаковы; Определение исходных режимов затруднительно (как обсуждается в других ответах).

  • Настройка беспроводной карты Intel AGN 5100 под Ubuntu
  • Как я могу отменить или отменить команду «apt-get upgrade» на Ubuntu?
  • Как показать полные имена папок, содержащих закладки в закладке Google Chrome?
  • Будет ли производительность моего ноутбука увеличиваться, если я перейду с Ubuntu 14.04 32 бит на 16.04 64 бит?
  • Как подключиться к Интернету в Ubuntu
  • WiFi-карта не была обнаружена Windows впервые после перезапуска с Ubuntu в режиме двойной загрузки
  • Как сделать дубликат всего жесткого диска
  • Есть ли эквивалент chkdsk для Ubuntu?
  • Могу ли я создать пользователя SSH, который может получить доступ только к определенному каталогу?
  • OpenDNS не работает с 1 машиной Ubuntu
  • MemTest возвращает большое количество ошибок в тесте 7, независимо от того, какой я использую
  • Interesting Posts
    Давайте будем гением компьютера.