В доступе отказано ~, хотя владелец указан как я

13

Каким-то образом мне удалось chmod и забить мой ~ в забвение.

Когда я пытаюсь войти через оболочку, я получаю

bash: ~/.bashrc : Permission denied

Даже после того, как ( как root ) я запустил

chown -hR nroach44 /home/nroach44

и

chmod -R 666 /home/nroach44

или ( как nroach44 )

chmod -R 644 /home/nroach44

Ни одна из этих команд не возвращает ошибок.

Также:

ls -la /home/nroach44

Возвращает много

drw-rw-rw-  1 nroach44 nroach44 4096 --date-- ti:me foldername

Любая помощь?

NRoach44
источник
Спасибо всем! Любое руководство для каких файлов нужны какие разрешения в домашней папке сейчас? :)
NRoach44
/homeдолжна быть drwxrwxr-xи root:rootи в /home/user rw rw -- or r-зависимости , если вы хотите , чтобы другие пользователи читать ваши файлы пользователей. Каталоги и исполняемые файлы с x. Тот же самый внутренний userкаталог не будет проблемой, если у вас есть группа = пользователь (nroach44: nroach44), как у вас (я бы дал 0 (---) разрешений для других).
Лоран

Ответы:

14
chmod -R 666 /home/nroach44

или

chmod -R 644 /home/nroach44

Это сделает все файлы в вашем домашнем каталоге не исполняемыми. Это была не очень хорошая идея;)

Я не знаю, как убрать этот беспорядок, как быстрый обходной путь, который вы можете попробовать сделать как root:

chmod -R 755 /home/nroach44

Эта команда даст права на выполнение всем файлам в вашей домашней папке. Это должно решить ваши насущные проблемы, но это может быть кошмаром безопасности.

Лучшее решение - открыть другую учетную запись пользователя и передать ей файлы и настройки один за другим.

Хавьер Ривера
источник
6
Я не знал, что для открытия каталогов нужны x разрешения. Спасибо!
NRoach44
5

В каталогах должен быть установлен бит выполнения, чтобы вы могли спуститься в каталог. Обычная 666ошибка, даже если вы работаете от имени пользователя root. Это дает всем права на запись.

Чтобы сделать файлы более безопасными, запустите:

chmod -R 640 /home/nroach44

Чтобы снова сделать папки доступными, запустите:

find /home/nroach44 -type d -exec chmod 750 \;

Примечание: я выбрал xx0, потому что некоторые файлы могут быть чувствительными и не читаться другими. Просто чтобы сохранить, удалите разрешения на чтение / запись / выполнение для всего мира.

Lekensteyn
источник
Я только 666 проверял, будет ли это работать или нет :)
NRoach44
4

Поскольку у вас достаточно прав доступа к ~, вам нужно /homeиметь разрешение x для других ( sudo chmod +rx /home) и проверить, в порядке ли разрешения для /home/nroach44/.bashrcфайла.

Еще один момент, каталоги должны иметь x разрешений, чтобы разрешить вход в них, поэтому, чтобы исправить их все, вам нужно запустить sudo chmod -R +X /home/nroach44.

Laurent
источник
Знать, что для входа в папки необходимы разрешения на выполнение, было бы неплохо знать раньше, поэтому спасибо!
NRoach44
Я не знал столицы X+1
Лекенштейн
капитал Xочень полезен, и я был очень рад обнаружить его тоже ... после долгого времени, используя find !!
Лоран
1

Это потому, что вы испортили права доступа ко всем файлам в вашей папке HOME. Пожалуйста, будьте очень осторожны, играя с правами доступа к файлам, используйте chmod и chown очень осторожно, иначе вы можете получить беспорядок.

bash: ~/.bashrc : Permission denied

Я думаю, что вы изменили права доступа ко всем файлам в вашем домашнем каталоге, поэтому разрешение bashrc также изменилось.

Разрешения по умолчанию для сценария ~ / .bashrc:

-rw-r--r-- 1 user1 user1  3353 2012-01-09 12:05 .bashrc

Чтобы объяснить это, вы должны иметь права как на чтение, так и на запись в файл, другие пользователи группы должны иметь возможность читать его, а все остальные также могут его читать.

Так что теперь измените права доступа скрипта bashrc с помощью chmod на 644

chmod 644 ~/.bashrc

если приведенные выше команды дают разрешение отклонено. тогда

беги чоун сначала как sudo

sudo chown user1:usergrp ~/.bashrc

замените user1 на ваше имя пользователя и usergrp на вашу группу пользователей по умолчанию.

Сейчас опять делаю

chmod 644 ~/.bashrc

теперь у вас будут права доступа для скрипта basrc, попробуйте войти в систему и проверить, нет ли других ошибок :)

Раджеш Пантула
источник
0

Каталоги должны быть установлены x бит (для каталога, который бит рассматривается как поисковый бит), чтобы открыть. Поэтому я использую дерево, чтобы я мог получить только набор папок и избежать кошмара, когда все файлы установлены как исполняемые файлы (опция для дерева есть -d List directories only.):

sudo tree -faid /home/nroach44 | xargs -L1 -I{} sudo chmod 755  "{}"

Предупреждение!!! Вы должны иметь это в виду:

  • использование chmod или chown recursive в корневом /каталоге или в системных каталогах разрушит вашу ОС (на самом деле все, что рекурсивно в /каталоге или системных каталогах, опасно)

  • это не очень хорошая практика безопасности, чтобы устанавливать разрешение таким образом

Эдуард Флоринеску
источник