Как исправить разрешение sudo?

1

Я использую экземпляр AWS EC2 Micro, и у меня возникли проблемы с получением разрешения на root-доступ у пользователя EC2.

Последовал учебник онлайн и выполнил следующие команды:

sudo chgrp ec2-user /etc
sudo chmod 660 /etc

Теперь это говорит мне

-bash: /etc/profile: permission denied

Как мне вернуться к исходным настройкам?

GitRight
источник

Ответы:

1

Сначала давайте посмотрим, что на самом деле сделала ваша команда, чтобы вы знали, что нужно отменить:

sudo chgrp ec2-user /etc
В качестве пользователя root измените группу для каталога / etc / на ec2-user.

sudo chmod 660 /etc
В качестве пользователя root измените разрешения для / etc / на 660.

Другими словами: установите права на rw- rw- ---.

Что означают эти биты?

  • Доступ к rкаталогу означает разрешение на получение списка имен файлов в каталоге. Они не влияют на доступ к файлам в каталоге.
  • Доступ к wкаталогу означает разрешение на:
    • Создание новых файлов в каталоге
    • Удаление файлов в каталоге. (удалить, рм)
    • Переименование файлов в или из каталога
    • Связывание файлов в каталог (ln)
    • Переименование каталога в имя, отличное от того, откуда оно началось
  • Биты «x» влияют на поиск имен в каталоге (например, для их открытия), а также на «cd» в каталоге. Чтобы получить доступ к файлам в каталоге, вам нужно разрешение 'x', а также любые права доступа к самим файлам, относящиеся к требуемой операции.

В вашей системе никто вообще не имеет прав 'x' на / etc /.

Файлы не могут быть просмотрены и открыты. Это включает / etc / profile, который читается (или, скорее, пытается читаться), когда вы запускаете оболочку входа в систему. Чтобы исправить это, установите разрешение x обратно на / etc. Например, chmod +x /etcчто позволит х для всех трех в Уго. (Пользователь, группы, другие)


Некоторые намеки:

  1. Не выполняйте команды (особенно как root / с sudo), если вы не знаете, что означают команды.
  2. chown, chgrp и chmod (смена владельца, смена группы, смена прав) - все они позволяют использовать как числа (восьмеричное представление), так и удобные для человека формы. Например, chmod u+r fileчтобы установить бит r для пользователя . Это намного легче учиться.
Hennes
источник
Огромное спасибо. Очень помогите полной информацией, я открыл Java SSH Client и добавил chmod + x / etc, он дал мне следующее: Последний вход в систему: Вт 16 апреля 06:56:16 2013 от c323400222d11b3ea-cm00222332233e6.cpe.com.cable. rogers.ca -bash: / etc / profile: В доступе отказано [У меня нет имени!] @ ~ â chmod + x / etc chmod: изменение разрешений для `/ etc ': Операция не разрешена [У меня нет имени!] @ ~ â¯
GitRight
У меня нет имени, вероятно, потому что вы не можете прочитать / etc / password (что необходимо для перевода вашего идентификатора на ваше имя пользователя). Вводили ли вы команды, как показано, или изначально использовали также -r (рекурсивно, другими словами, также измените каждый файл в / etc). Можете ли вы добавить вывод ls -ld /etc. А может быть из нескольких файлов?
Hennes
Я новичок в этом, спасибо за ваше терпение. Я использовал CHMOD 600 / и т. Д., Но он сказал недопустимый режим. Есть ли способ вернуться обратно? или каковы точные шаги.
GitRight
Этот случай похож на то, что у меня есть. Не уверен, что их решение работает как-то. superuser.com/questions/469120/…
GitRight
1) Можете ли вы войти в систему как root? Если нет, вам нужно будет загрузить другую ОС (например, liveCD) и смонтировать старый рут, затем измените разрешения. 2) Один из способов заставить работать (но ужасно) ситуацию chmod -R +rx /etc. Это установит каждый файл и каждый вложенный каталог в / etc в удобочитаемую и исполняемую форму, что, вероятно, приведет к работающей системе. Однако предпочтительной целью является сброс к старым разрешениям. Для этого вам потребуется либо переинсталляция (проще всего, особенно на экземпляре EC2), либо другая рабочая машина, чтобы увидеть, каким должно быть разрешение. (и много работы или сценарий, чтобы установить эти разрешения.
Hennes