LinuxForum.Fans
Тема

Права доступа к файлам

Автор: kat 17 сообщений 2345 просмотров
#372296

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

#372304
"kat" написал:
Подскажите как это делается?

man 1 chmod
info coreutils 'chmod invocation'


это простые права. Есть ещё ACL, есть специальные ext4 атрибуты. Есть ещё много чего.

Задайте вопрос по-человечески: "я хочу, что-бы Вася <...>, но Петя <...>, а вот Коля <...>".

#379836
drBatty написал:
[quote="kat"]Подскажите как это делается?

man 1 chmod
info coreutils 'chmod invocation'


это простые права. Есть ещё ACL, есть специальные ext4 атрибуты. Есть ещё много чего.

Задайте вопрос по-человечески: "я хочу, что-бы Вася <...>, но Петя <...>, а вот Коля <...>".[/quote]


Добрый день! Как дать полные права пользователю user?

#379840

"Liman" написал:
Как дать полные права пользователю user?
никак. В Linux нет понятия "полные права" (не считая root'а, но это маздай и ламерство).

Полные права и так есть у юзера для _своих_ файлов. Т.е. для любого своего файла(каталоги тоже файлы) юзер может выполнить

[console]chmod +rwx -v filename[/console]
это даст права на любой доступ всем подряд.

Также юзер может давать права:
[console]chmod u+rwx -v filename # только себе
chmod g+rwx -v filename # только группе файла
chmod o+rwx -v filename # только всем прочим
chmod +r -v filename # разрешить только чтения всем(для каталогов это просмотр списка)
chmod +w -v filename # только изменение(для каталогов это создание/удаление файлов)
chmod +x -v filename # только исполнение (для каталогов без этого права в каталог будет не войти)
chmod go-rwx -v filename # запретить любой доступ всем, кроме хозяина[/console]
Также юзер может менять группу файла(chgrp), но только для своих файлов, и только на те группы, в которые он входит.

Есть и некоторые другие права(см man chmod).

Для ext2/3/4 есть специальные дополнительные права(man chattr/lsattr).
#379842

Хорошо, спасибо!

#379850

chgrp

Ну и man chown до кучи.

#379863

"yars" написал:
Ну и man chown до кучи.
chown не нужен. Не нужно менять владельца, ни к чему хорошему это не приведёт.

PS: chown нужен только для исправления последствий рака, вызванного работай под рутом. Или я что-то не знаю?
#379874

drBatty, я к тому, что этой командой тоже можно менять группу.

#379894

yars, круто. Никогда бы не додумался, что для смены группы можно юзать команду "сменить хозяина", при наличии команды "сменить группу".

#379917

drBatty, ну так-то да, просто одну операцию можно выполнить несколькими способами™ :)

#379923

yars, да я чего? Говорю же: "круто, я не знал". Я думал, что chown работает только от имени рута(про то, что оно умеет группу я знал).

#379924

drBatty, chown может и руту отдать (root:root), только от пользователя обратно уже не забрать :)

#379928

"yars" написал:
chown может и руту отдать (root:root)
не. Не может:
[console]$ chown -v root:root zzzz
chown: изменение владельца «zzzz»: Операция не позволена
не удалось изменить владельца «zzzz» с drb:users на root:root
[/console]
#379931

drBatty, странно. Не вижу технических причин препятствовать этому.

#379932
"yars" написал:
странно. Не вижу технических причин препятствовать этому.

Почему же странно? На мой взгляд гораздо «страннее» выглядела бы возможность создать файл (исполняемый), присвоить ему права root и, соответственно, запустить его с этими правами.

#379935

yars, атрибуты файла может только хозяин менять. Все. Кроме хозяина. Хозяина файла очевидно может менять только root.

Команда chown меняет именно хозяина.

#379936

"Lupo Alberto" написал:
Почему же странно? На мой взгляд гораздо «страннее» выглядела бы возможность создать файл (исполняемый), присвоить ему права root и, соответственно, запустить его с этими правами.
не. Файл запускается с правами того, кто запускает. Исключение: SUID bit. Вот с эти битом права процесса будут не такие, как у запустившего, а такие как у файла. (файлы /bin/ping, /bin/su, /usr/bin/sudo и т.п.)
Войдите или зарегистрируйтесь, чтобы ответить.