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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

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

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

Оффлайн DarkArchangel

  • Автор темы
  • Любитель
  • *
  • Сообщений: 96
    • Просмотр профиля
Доброго всем вечера. Появилась такая задача: запретить юзеру запись и удаление некоторых файлов, находящихся в его домашнем каталоге. Вроде всё просто, однако итог получается не совсем тем, что мне нужен... Вот простой пример.
$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 »
GA-EP35-DS3/e6600@3,4 GHz+Scythe Mugen/4GB PC6400/AMD Radeon 6770, open-source driver/2tb Hitachi deskstar 7200 rpm + Seagate 2 Tb DL003, Ubuntu 14.04 x32 with 3.14 linux kernel

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

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

И ещё такой вопрос, в порядке оффтопа... Никак не могу придумать, чем при исполнении bash-скрипта поменять текущую папку на папку, в которой находится скрипт.
Например, скрипт запускается с флешки, примонтированной в /media/disk/script.sh, из домашнего каталога пользователя. Что необходимо вписать в сценарий, чтобы текущая (т.е. домашняя) папка сменилась на ту, в которой находится запускаемый файл?
GA-EP35-DS3/e6600@3,4 GHz+Scythe Mugen/4GB PC6400/AMD Radeon 6770, open-source driver/2tb Hitachi deskstar 7200 rpm + Seagate 2 Tb DL003, Ubuntu 14.04 x32 with 3.14 linux kernel

Оффлайн tikhenko

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

 

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