Рекомендуемые права суперпользователя

Вопрос или проблема

Кажется, я перестарался с sudo chmod -R, и теперь не могу открыть множество программ!

Я нахожусь в корневом каталоге и вижу следующие подкаталоги:

drwxr-xr-x   2 root   root       4096 Jun  8 22:00 bin
drwxr-xr-x   3 root   root       4096 Jun  8 22:01 boot
drwxr-xr-x   2 root   root       4096 Oct 11  2013 cdrom
drwxr-xr-x  15 root   root       4100 Aug 12 21:41 dev
-rw-r--r--   1 starkers starkers 24853275 Jan 30  2012 Downloads
drwxr-xr-x 154 root   root      12288 Aug 12 21:57 etc
drwsr-sr-x   4    666 root       4096 Jun 16 21:13 home
lrwxrwxrwx   1 root   root         33 Jun  8 22:01 initrd.img -> boot/initrd.img-3.11.0-23-generic
lrwxrwxrwx   1 root   root         34 Jun  8 22:00 initrd.img.old -> /boot/initrd.img-3.11.0-23-generic
drwxr-xr-x  24 root   root       4096 Jul 18 11:12 lib
drwxr-xr-x   2 root   root       4096 Jul 18 11:12 lib32
drwxr-xr-x   2 root   root       4096 Jan  9  2014 lib64
drwx------   2 root   root      16384 Oct 11  2013 lost+found
drwxr-xr-x   4 root   root       4096 Oct 30  2013 media
drwxr-xr-x   4 root   root       4096 Nov  4  2013 mnt
drwxr-xr-x   7 root   root       4096 Jul 18 11:12 opt
dr-xr-xr-x 361 root   root          0 Aug 12 21:40 proc
drwx------   7 root   root       4096 Apr  9 18:01 root
drwxr-xr-x  29 root   root        920 Aug 12 21:41 run
drwxr-xr-x   2 root   root      12288 Jun  8 21:59 sbin
drwxr-xr-x   2 root   root       4096 Apr 24  2013 srv
dr-xr-xr-x  13 root   root          0 Aug 12 21:41 sys
drwxr-xr-x   9    666 root      12288 Aug 12 21:49 tmp
drwxr-xr-x  11 root   root       4096 Jul 18 11:12 usr
drwxr-xr-x  15 root   root       4096 Jan  9  2014 var
lrwxrwxrwx   1 root   root         30 Jun  8 22:01 vmlinuz -> boot/vmlinuz-3.11.0-23-generic
lrwxrwxrwx   1 root   root         30 Jun  8 22:00 vmlinuz.old -> boot/vmlinuz-3.11.0-23-generic

Какие рекомендуемые права доступа для этих папок? 0666 для всех?

Я надеюсь chmod -R вернуть все в рабочий порядок.

Это должно быть так:

total 108
drwxr-xr-x   2 root root  4096 Aug  8 19:16 bin
drwxr-xr-x   5 root root  4096 Aug 10 08:53 boot
drwxr-xr-x   4 root root  4096 May 17 09:39 BootInfo
drwxr-xr-x   4 root root  4096 May 17 09:26 boot-sav
drwxr-xr-x   2 root root  4096 May 12 18:54 cdrom
drwxr-xr-x  18 root root  4600 Aug 12 19:18 dev
drwxr-xr-x 182 root root 12288 Aug 12 08:29 etc
drwxr-xr-x   4 root root  4096 Jul 26 11:33 home
lrwxrwxrwx   1 root root    33 Aug 10 08:52 initrd.img -> boot/initrd.img-3.13.0-33-generic
lrwxrwxrwx   1 root root    33 Jul 10 19:32 initrd.img.old -> boot/initrd.img-3.13.0-32-generic
drwxr-xr-x  27 root root  4096 Aug  5 19:34 lib
drwxr-xr-x   2 root root  4096 Aug  5 19:33 lib32
drwxr-xr-x   2 root root  4096 Aug  5 19:34 lib64
drwx------   2 root root 16384 May 12 18:49 lost+found
drwxr-xr-x   3 root root  4096 May 12 20:59 media
drwxr-xr-x   2 root root  4096 Apr 19  2012 mnt
drwxr-xr-x  10 root root  4096 Aug  1 10:38 opt
dr-xr-xr-x 418 root root     0 Aug 12 08:26 proc
drwx------  12 root root  4096 Aug 11 21:35 root
drwxr-xr-x  29 root root   920 Aug 12 11:08 run
drwxr-xr-x   2 root root 12288 Aug  8 19:15 sbin
drwxr-xr-x   2 root root  4096 Aug 20  2013 srv
dr-xr-xr-x  13 root root     0 Aug 12 08:26 sys
drwxrwxrwt  15 root root  4096 Aug 12 22:09 tmp
drwxr-xr-x  13 root root  4096 Aug  5 16:32 usr
drwxr-xr-x  15 root root  4096 May 30 14:53 var
lrwxrwxrwx   1 root root    30 Aug 10 08:52 vmlinuz -> boot/vmlinuz-3.13.0-33-generic
lrwxrwxrwx   1 root root    30 Jul 10 19:32 vmlinuz.old -> boot/vmlinuz-3.13.0-32-generic

Я, насколько знаю, никак их не модифицировал.

Хорошо, позвольте мне угадать, вы не можете получить доступ к /home, /tmp и /Downloads.

I. Во-первых, если вы посмотрите на владельца /home и /tmp, вы увидите, что они, по сути, принадлежат 666, так что я полагаю, что Сатана тоже пользователь вашей системы. Эти две папки должны принадлежать root, так что измените владельца на root и затем уберите специальный бит из домашней директории, затем установите “прилипший” бит на /tmp и дайте полные права rwx (эта папка используется многими программами для хранения временных данных):

sudo chown root /home
sudo chown root /tmp
sudo chmod 0755 /home
sudo chmod 1777 /tmp

Надеюсь, вы не изменили владельца или права на них рекурсивно, иначе вам придется еще потрудиться, чтобы вернуть все в норму.

II. Все остальное выглядит нормально, за исключением этой загадочной директории Downloads, которая не должна быть там. Старайтесь содержать свою файловую систему в порядке и не иметь в корневом каталоге вещи, которые не принадлежат напрямую root. Также, если вы посмотрите на эту директорию Downloads, вы не сможете ее запустить с чем-нибудь, кроме UID=0 (root) судя по этим правам.
Я думаю, это ваша директория Downloads из /home/starkers, но перепроверьте, прежде чем делать что-то, чтобы не потерять данные. Если это действительно упомянутая директория Downloads, вы должны переместить ее туда, где она должна быть, и дать на нее права на выполнение:

sudo mv Downloads /home/starkers
sudo chmod +x /home/starkers/Downloads

Снова, делайте это только в случае отсутствия директории Downloads в /home/starkers

III. Совет:
Linux имеет свойство ломаться, если вы не знаете, что делаете, работая как root. Поэтому Ubuntu требует команды sudo, чтобы заставить вас дважды подумать перед тем, как нажать RETURN на команде. Если вы собираетесь использовать Linux как основную операционную систему, я предлагаю создать второй экземпляр Linux (например, в virtualbox), где вы сможете проводить все нужные тесты без страха навредить основной ОС.

Ответ или решение

Решение проблем, связанных с некорректными правами доступа в ОС Linux, является важной задачей для любого IT-специалиста. Ошибка с использованием команды sudo chmod -R может привести к проблемам с доступом ко многим программам и файлам. Давайте разберёмся, как исправить ситуацию и какие рекомендованные права доступа следует устанавливать для каталога.

Теория: Понимание прав доступа в Linux

В операционных системах на базе Linux права доступа определяются для пользователей и групп, включая владельца файла, группу и всех остальных пользователей. Каждый из этих элементов может обладать правами на чтение (r), запись (w) и выполнение (x). Эти права определяются с помощью трехзначного числа, таких как 755, где каждый знак соответствует правам для владельца, группы и остальных пользователей соответственно.

  1. Чтение (r = 4): Позволяет просматривать содержимое файла или списка файлов в каталоге.
  2. Запись (w = 2): Позволяет изменять или удалять файл или содержимое каталога.
  3. Выполнение (x = 1): Позволяет исполнять файл как программу или перемещаться в каталог.

Пример: Рекомендуемые права доступа для каталогов

На основе предоставленного содержимого файловой системы, вот рекомендованные права доступа для корневых каталогов:

  • /bin, /boot, /dev, /etc, /lib, /lib32, /lib64, /sbin, /usr, /var:
    Рекомендуемые права: drwxr-xr-x (755). Эти каталоги должны быть читаемыми и исполняемыми всеми пользователями, но изменять их могут только владельцы.

  • /home:
    Рекомендуемые права: drwxr-xr-x (755). Необходимо изменить владельца на root, если это ещё не сделано, поскольку этот каталог имеет значение для хранения пользовательских данных.

  • /tmp:
    Временный каталог для хранения данных, которые могут быть изменены, поэтому необходимо установить права drwxrwxrwt (1777), что означает установку "sticky" бита, чтобы только владельцы могли удалять свои файлы.

  • /root:
    Только root должен иметь полный доступ (chmod 700), так как этот каталог является личной директорией суперпользователя.

  • Символические ссылки (/initrd.img, /vmlinuz):
    Рекомендуемые права: lrwxrwxrwx (777). Устанавливаются полные права, учитывая, что они являются ссылками и должны быть доступны без ограничений.

Применение: Корректировка прав доступа

  1. Исправьте права доступа для /home и /tmp, если они нарушены:

    sudo chown root /home
    sudo chmod 0755 /home
    
    sudo chown root /tmp
    sudo chmod 1777 /tmp
  2. Проверьте и обновите права доступа для других каталогов, применив:

    sudo chmod 755 /bin /boot /dev /etc /lib /lib32 /lib64 /mnt /sbin /usr /var
  3. Убедитесь, что /root защищён и доступен только суперпользователю:

    sudo chmod 0700 /root
  4. Управление файлами, не принадлежащими корневому пользователю, требуется особое внимание. Например, для какой-либо вложенной директории Downloads, перенесите её в /home/[user] и исправьте права:

    sudo mv /Downloads /home/[your_username]
    sudo chmod +x /home/[your_username]/Downloads

Совет: Предотвращение ошибок в будущем

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...