Смена прав группе файлов и каталогов

Уважаемые гуру любимого Либератума!

Окажите помощь в правильном подборе команды.

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

Казалось бы, чего проще. Но каталоги тоже попадут в число кандидатов на смену прав и если каталогу не задать прав на запуск/поиск то каталог нельзя будет даже открыть для просмотра содержимого. Тоже, вроде бы, не беда: дать всем объектам права на чтение, запись и поск, а другим ничего. Но так нельзя, ибо тогда все файлы получат бит на исполнение.

Проштудировал справочник консольных команд и нашёл там лишь указание на описанный мной выше нюанс. А решения не дали.

Помогите найти решение этой задачи.

Как говорится: лучше один раз покраснеть и спросить, чем всю жизнь краснеть и не знать.

Спасибо!

field_vote: 
Ваша оценка: Нет Средняя: 3 (1 оценка)

Короче, ответ с ЛОРа от Spoofing (может кому ещё будет надо).

$ find ~ -type d -exec chmod 0750 {} \;
$ find ~ -type f -exec chmod 0640 {} \;

Если остальным нельзя ничего, тогда ставить нужно 0700 и 0600. 0750 означает, что одногруппники могут бороздить просторы пользовательской директории, а 0640 — одногруппники могут читать содержимое файлов. Другое дело, что в группе больше никого нет, но теоретически там могут появляться дополнительные юзеры. Я на файлы с паролями (например, PHP-файлы с паролем на подключение к MySQL) ставлю строгое 0400.

Спасибо, друг! Паранойя у меня от профессии, так что 0400 мне понравилось :)

Господа интеллигенты ИТ (других тут не водится)!

После ввода этих двух комманд с ЛОРа игра «Fallout New Vegas Ultimate Edition», установленная под PlayOnLinux, отказалась работать. Сообщение об ошибке было выдано не игрой, а PlayOnLinux. Запуск с ярлыка оказался тоже нерабочий. После полной переустановки игры (благо это не проблема) всё опять заработало.

Судя по отладочной информации проблема была в специфичных ссылках на отдельные библиотеки не системного Wine, а того, который устанавливается самим PlayOnLinux. Думаю, что для исправления ошибки было бы достаточно зайти в контроль версий Wine и «снести/поставить заново» ту версию, что там была. Но что сделано, то сделано.

Пришлось проштудировать заново все книги, содержимое которых я успел подзабыть и вычислить в чём дело.

А всё дело в том, что эти две команды некорректны для домашнего каталога и даже опасны для работоспособности некоторого ПО (например PlayOnLinux) из-за сброса SUIDного бита (ноль перед правами в числовой нотации, например 0750 вместо 750). Если его (этот сброс) убрать, то всё работает корректно. В результате команды примут вид:

$ find ~ -type d -exec chmod 750 {} \;
$ find ~ -type f -exec chmod 640 {} \;

Кому понадобится, имейте это ввиду.

Вернемся к задаче. Цитирую:

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

Единственный правильный ответ: поставить 0600 на файлы и 0700 на директории. Либо, надо точнее формулировать задачу.

ЗЫ: Ну а SUID в домашней директории, да еще на проприетарные бинарники — это дыра в безопасности. Тогда уж лучше сразу ставить Вантуз.

Запуск с ярлыка оказался тоже нерабочий.

С чего бы ему оказаться рабочим, если вы же сами установили на все файлы только чтение и запись и запретили исполнение?

После полной переустановки игры

А не проще было сделать chmod +x, не? ;)

Единственный правильный ответ: поставить 0600 на файлы и 0700 на директории. Либо, надо точнее формулировать задачу.

Правильно. Только ноль впереди нужно убрать :) Это я и имел ввиду. Иначе в PlayOnLinux отваливаются игрушки.

Ну а SUID в домашней директории, да еще на проприетарные бинарники — это дыра в безопасности. Тогда уж лучше сразу ставить Вантуз.

Разобраться нужно, конечно, но факт есть факт: игры в PlayOnLinux после снятия SUID-бита отваливаются :(

А не проще было сделать chmod +x, не? ;)

Не, друг! Там SUID отвалился чёрт его поймёт на что. По "выхлопу" разобраться надо, но завязано не на саму игрушку (я писал), а на компонент Wine, который ставит сам PlayOnLinux.

Там SUID отвалился чёрт его поймёт на что

Как это? А что, нельзя посмотреть на что именно?

find ~/ -perm -4000

find ~/ -perm -4000

Отрабатывает в пустую.

А вот фокус: если не на файлы ставить 600, то игрушка в PlayOnLinux отваливается. А если 700 — работает.

Как думаешь, друг: 700 на файлы в домашней директории это не слишком "дыряво"?

Отрабатывает впустую.

Это говорит о том, что нет там никаких файлов с установленным SUID. И не может быть.

если не на файлы ставить 600, то игрушка в PlayOnLinux отваливается

«Не на файлы» — это на директории? Ну так 600 на директорию запрещает просмотр ее содержимого. Еще бы.

700 на файлы в домашней директории это не слишком "дыряво"?

На все? Даже на те, которые не предполагается запускать? Я думаю, что это п...ц как дыряво! ;) Случайно ткнул не туда и запустил на выполнение файл с непредсказуемым поведением. Лучше сразу кувалдой по компу.

Друг! Уже ушёл с того ПК, а тут пароля нет :))

Подскажи. В системе два пользователя: админ (запись с возможностью администрировать систему, путём ввода пароля) и простой (без пароля). Wine у обоих. Если теперь админ снесёт у себя Wine, у простого пользователя он тоже удалится или только у админа? Вечер. Чего-то я слегка устал и "туплю".

а что значит админ удалит у себя? Софт ставится в определенный каталог, а настройки софта для каждого пользователя в его домашний каталог. Удалив софт из /opt например, понятно что для его физически ни для кого не существует. Если же игру установит wine, то скорее всего в каталог юзера /home/юзер/.wine/drive_c, т.е игру еще спасти можно

Не очень понял вопрос. Если админ — это root, тогда удаление Wine с компа оставит у пользователей их добро, с которым они работали через Wine, но запустить его уже не получится. Если админ ≠ root, тогда у него не получится ни удалить Wine, ни как-то повлиять на работу Wine у других пользователей.

Нельзя было применять одни права ко всему домашнему каталогу. Скажи, а если переустановить Wine, PlayOnLinux, Firefox, etc ... то права на их компоненты автоматически изменятся на дефолтные и заменят те, что я напутал :) ?

Мне вот что интересно: с одной стороны, Мелкомтек путается с правами доступа, а это основа основ. С другой стороны, в своем блоге он пишет, что «уже много лет я специализируюсь в области безопасности и системного администрирования сетей и систем, преимущественно с использованием GNU/Linux или аналогичного свободного программного обеспечения». Вопрос: а какое должно сложиться у людей впечатление от Линукса, после того, как им этот Линукс установит и настроит вот такой вот «специалист по безопасности», спрашивающий на форуме, чего это у него игрулька не запускается, после того, как он chmod 0400 на все файлы поставил? :) Удивляетесь, чего это у Линукса популярность в 1%? Ну так вот чего! ;)

зато безопасно!

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.