Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Изменение прав на файлы и папки в домашнем каталоге  (Прочитано 4662 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DarkArchangel

  • Автор темы
  • Участник
  • *
  • Сообщений: 126
    • Просмотр профиля
Доброго всем вечера. Появилась такая задача: запретить юзеру запись и удаление некоторых файлов, находящихся в его домашнем каталоге. Вроде всё просто, однако итог получается не совсем тем, что мне нужен... Вот простой пример.
$touch /home/user/file.txt
#chown root /home/user/file.txt

#chmod 000 /home/user/file.txt
После проделанных манпуляций user без повышения прав спокойно может удалить файл /home/user/file.txt.

Я понимаю, что "пользователь сам себе рут в своей домашней папке", но возникла ситуация, в которой данный эффект абсолютно нежелателен.
Как обойти данную проблему? Как ещё повысить права рута (или понизить права пользователя)?

Решено благодаря Axa-Ru.
добавить аттрибут "immunable" командой chattr +i <file or folder>
Внимание! После добавления данного аттрибута даже root не может изменять или удалять файл! Для удаления необходимо необходимо убрать этот аттрибут командой chattr -i
« Последнее редактирование: 05 Ноября 2011, 10:06:51 от DarkArchangel »
asus p8h67/intel xeon e3-1230v2+Scythe Mugen/8GB PC12600/AMD Radeon 6770, open-source driver/2tb Hitachi deskstar 7200 rpm + Goodram Iridium 120G, Lubuntu 22.04

Axa-Ru

  • Гость
$ touch file.txt
$ sudo chown root:root file.txt
$ sudo chmod 660 file.txt
$ sudo chattr +i file.txt
$ rm file.txt
rm: remove write-protected regular empty file `file.txt'? y
rm: cannot remove `file.txt': Operation not permitted
$

Оффлайн DarkArchangel

  • Автор темы
  • Участник
  • *
  • Сообщений: 126
    • Просмотр профиля
Прошло... Думал, что всё chmod'om с chown'om да acl'ом ограничивается, а оно вот как оказалось... Спасибо, Axa-Ru.

И ещё такой вопрос, в порядке оффтопа... Никак не могу придумать, чем при исполнении bash-скрипта поменять текущую папку на папку, в которой находится скрипт.
Например, скрипт запускается с флешки, примонтированной в /media/disk/script.sh, из домашнего каталога пользователя. Что необходимо вписать в сценарий, чтобы текущая (т.е. домашняя) папка сменилась на ту, в которой находится запускаемый файл?
asus p8h67/intel xeon e3-1230v2+Scythe Mugen/8GB PC12600/AMD Radeon 6770, open-source driver/2tb Hitachi deskstar 7200 rpm + Goodram Iridium 120G, Lubuntu 22.04

Оффлайн tikhenko

  • Участник
  • *
  • Сообщений: 151
    • Просмотр профиля
Права доступа к файлу контролируют возможность этот файл выполнять, читать и изменять его содержимое. Имя же файла записано в каталоге, а не в самом файле. Т.о. возможность смотреть список файлов, переименовывать их, удалять и перемещать контролируется правами доступа к каталогу.
chattr +i делает файл неизменяемым и неудаляемым.

 

Страница сгенерирована за 0.067 секунд. Запросов: 23.