Смена прав группе файлов и каталогов
Уважаемые гуру любимого Либератума!
Окажите помощь в правильном подборе команды.
Задача проста. Нужно сделать так, чтобы все файлы моего домашнего каталога, принадлежащие мне, получили права следующего вида: мне можно читать и записывать, а остальным нельзя ничего.
Казалось бы, чего проще. Но каталоги тоже попадут в число кандидатов на смену прав и если каталогу не задать прав на запуск/поиск то каталог нельзя будет даже открыть для просмотра содержимого. Тоже, вроде бы, не беда: дать всем объектам права на чтение, запись и поск, а другим ничего. Но так нельзя, ибо тогда все файлы получат бит на исполнение.
Проштудировал справочник консольных команд и нашёл там лишь указание на описанный мной выше нюанс. А решения не дали.
Помогите найти решение этой задачи.
Как говорится: лучше один раз покраснеть и спросить, чем всю жизнь краснеть и не знать.
Спасибо!
melcomtec
4 мая, 2015 - 14:42
Короче, ответ с ЛОРа от Spoofing (может кому ещё будет надо).
$ find ~ -type d -exec chmod 0750 {} \;
$ find ~ -type f -exec chmod 0640 {} \;
pomodor
4 мая, 2015 - 16:31
Если остальным нельзя ничего, тогда ставить нужно 0700 и 0600. 0750 означает, что одногруппники могут бороздить просторы пользовательской директории, а 0640 — одногруппники могут читать содержимое файлов. Другое дело, что в группе больше никого нет, но теоретически там могут появляться дополнительные юзеры. Я на файлы с паролями (например, PHP-файлы с паролем на подключение к MySQL) ставлю строгое 0400.
melcomtec
4 мая, 2015 - 16:50
Спасибо, друг! Паранойя у меня от профессии, так что 0400 мне понравилось :)
melcomtec
6 мая, 2015 - 15:50
Господа интеллигенты ИТ (других тут не водится)!
После ввода этих двух комманд с ЛОРа игра «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 {} \;
Кому понадобится, имейте это ввиду.
pomodor
6 мая, 2015 - 16:42
Вернемся к задаче. Цитирую:
Единственный правильный ответ: поставить 0600 на файлы и 0700 на директории. Либо, надо точнее формулировать задачу.
ЗЫ: Ну а SUID в домашней директории, да еще на проприетарные бинарники — это дыра в безопасности. Тогда уж лучше сразу ставить Вантуз.
pomodor
6 мая, 2015 - 17:14
С чего бы ему оказаться рабочим, если вы же сами установили на все файлы только чтение и запись и запретили исполнение?
А не проще было сделать chmod +x, не? ;)
melcomtec
6 мая, 2015 - 17:51
Правильно. Только ноль впереди нужно убрать :) Это я и имел ввиду. Иначе в PlayOnLinux отваливаются игрушки.
Разобраться нужно, конечно, но факт есть факт: игры в PlayOnLinux после снятия SUID-бита отваливаются :(
melcomtec
6 мая, 2015 - 17:54
Не, друг! Там SUID отвалился чёрт его поймёт на что. По "выхлопу" разобраться надо, но завязано не на саму игрушку (я писал), а на компонент Wine, который ставит сам PlayOnLinux.
pomodor
6 мая, 2015 - 18:01
Как это? А что, нельзя посмотреть на что именно?
find ~/ -perm -4000
melcomtec
6 мая, 2015 - 18:17
Отрабатывает в пустую.
А вот фокус: если не на файлы ставить 600, то игрушка в PlayOnLinux отваливается. А если 700 — работает.
Как думаешь, друг: 700 на файлы в домашней директории это не слишком "дыряво"?
pomodor
6 мая, 2015 - 18:37
Это говорит о том, что нет там никаких файлов с установленным SUID. И не может быть.
«Не на файлы» — это на директории? Ну так 600 на директорию запрещает просмотр ее содержимого. Еще бы.
На все? Даже на те, которые не предполагается запускать? Я думаю, что это п...ц как дыряво! ;) Случайно ткнул не туда и запустил на выполнение файл с непредсказуемым поведением. Лучше сразу кувалдой по компу.
Чингачгук
6 мая, 2015 - 19:30
Друг! Уже ушёл с того ПК, а тут пароля нет :))
Подскажи. В системе два пользователя: админ (запись с возможностью администрировать систему, путём ввода пароля) и простой (без пароля). Wine у обоих. Если теперь админ снесёт у себя Wine, у простого пользователя он тоже удалится или только у админа? Вечер. Чего-то я слегка устал и "туплю".
Чингачгук
6 мая, 2015 - 19:39
а что значит админ удалит у себя? Софт ставится в определенный каталог, а настройки софта для каждого пользователя в его домашний каталог. Удалив софт из /opt например, понятно что для его физически ни для кого не существует. Если же игру установит wine, то скорее всего в каталог юзера /home/юзер/.wine/drive_c, т.е игру еще спасти можно
pomodor
6 мая, 2015 - 19:51
Не очень понял вопрос. Если админ — это root, тогда удаление Wine с компа оставит у пользователей их добро, с которым они работали через Wine, но запустить его уже не получится. Если админ ≠ root, тогда у него не получится ни удалить Wine, ни как-то повлиять на работу Wine у других пользователей.
Чингачгук
6 мая, 2015 - 20:08
Нельзя было применять одни права ко всему домашнему каталогу. Скажи, а если переустановить Wine, PlayOnLinux, Firefox, etc ... то права на их компоненты автоматически изменятся на дефолтные и заменят те, что я напутал :) ?
pomodor
20 мая, 2015 - 16:27
Мне вот что интересно: с одной стороны, Мелкомтек путается с правами доступа, а это основа основ. С другой стороны, в своем блоге он пишет, что «уже много лет я специализируюсь в области безопасности и системного администрирования сетей и систем, преимущественно с использованием GNU/Linux или аналогичного свободного программного обеспечения». Вопрос: а какое должно сложиться у людей впечатление от Линукса, после того, как им этот Линукс установит и настроит вот такой вот «специалист по безопасности», спрашивающий на форуме, чего это у него игрулька не запускается, после того, как он chmod 0400 на все файлы поставил? :) Удивляетесь, чего это у Линукса популярность в 1%? Ну так вот чего! ;)
Чингачгук
20 мая, 2015 - 18:01
зато безопасно!
Комментировать