PDA

Просмотр полной версии : Права доступа к файлам в Linux/Unix


Serge_vs
06.02.2007, 20:06
Как управлять правами доступа к файлам, созданным пользователем?
Конкретнее: пользователь vasya качает из инета файл и записывает в общедоступный каталог /home/public содержимое которого можно читать всем. Но файл попадает туда с аттрибутами 600 (Васе можно читать и писать - остальнім нет доступа) а нужно чтобы его читали ВСЕ. Как заставить FireFox, KMail и др. сохранять файлы чтобы их могли читать другие?

Merkator2006
09.02.2007, 16:37
Как управлять правами доступа к файлам, созданным пользователем?
Конкретнее: пользователь vasya качает из инета файл и записывает в общедоступный каталог /home/public содержимое которого можно читать всем.

Каким образом записывает ???
Может сделать chmod 755 /home/public :)

melco
10.02.2007, 00:02
Merkator2006 правильно сказал. Права доступа директории распостраняются так же и на файлы в этой директории.
То есть юзера находятся в одной группе. Делаешь
chgrp users /home/public
дальше
chmod 750 /home/public
И теперь все юзера группы могут читать файлы в этой директории
или
chmod 755 /home/public
Так все смогут читать и исполнять файлы в этой директории

Басурманин
18.02.2007, 11:21
Merkator2006 правильно сказал. Права доступа директории распостраняются так же и на файлы в этой директории.
То есть юзера находятся в одной группе.

Неправильно сказал.
Права на директорию - отдельно. Права на файлы в этой директории - отдельно. И наличия прав на каталог недостаточно для чтения файлов в этом каталоге.

В самом общем случае для чтения файла пользователю необходимо иметь:

Право "rx" для каталога, в котором расположен файл, и всех вышележащих каталогов
Право, как минимум "r" для файла внутри этого каталога


(право rx для каталога означает "могу посмотреть список файлов в каталоге (право r) и атрибуты всех этих файлов (право x)").


Делаешь
chgrp users /home/public
дальше
chmod 750 /home/public
И теперь все юзера группы могут читать файлы в этой директории

Здесь поправка: могут, если установлены соответствующие права на файл. В нашем случае (права к файлу 600) прав явно недостаточно.



или
chmod 755 /home/public
Так все смогут читать и исполнять файлы в этой директории
Аналогичное замечание. С той добавкой, что права на каталог никак не влияют на возможность/невозможность исполнения файла в этом каталоге.

Merkator2006
18.02.2007, 20:03
Неправильно сказал.
Права на директорию - отдельно. Права на файлы в этой директории - отдельно. И наличия прав на каталог недостаточно для чтения файлов в этом каталоге.


Это всем понятно. Только у человека права уже стоят 600. Может он через самбу файлы записывает, а может параметр umask 20 стоит в загрузке.

Я только предположил, и намекнул (помог) в каком направлении искать проблему.

Serge_vs
20.02.2007, 18:32
Merkator2006 правильно сказал. Права доступа директории распостраняются так же и на файлы в этой директории.
То есть юзера находятся в одной группе. Делаешь
chgrp users /home/public
дальше
chmod 750 /home/public
И теперь все юзера группы могут читать файлы в этой директории
или
chmod 755 /home/public
Так все смогут читать и исполнять файлы в этой директории

файлы записываются линуксовой програмой (обычно firefox или KMail) и читаются через самбу.

это понятно что под рутом можно легко поменять права.
а сможет ли обычный юзер это сделать?
в винде есть наследование прав с каталога на файлЫ. можно ли это исполнить в линухе?

что за команда umask? (man umask ничего хорошего не выдал :( )

Merkator2006
21.02.2007, 12:06
это понятно что под рутом можно легко поменять права.
а сможет ли обычный юзер это сделать?


в винде есть наследование прав с каталога на файлЫ. можно ли это исполнить в линухе?



Пользователь может поменять права на каталоги или файлы, при условии что пользователь владелец.
Права каталога на файлы будут наследоваться, владелец файлов будет тот, кто записал файл. Почти так-же как в Windows.

Проверить ls -l, а заменить chown

Немогу понять Вашу проблему - chmod 777 /home/public и все должно быть хорошо.

Добавлено через 30 минут

что за команда umask? (man umask ничего хорошего не выдал :( )

Set the shell process's file creation mask to mode. Thus, a umask of 022 results in permissions of 755.

Если твой shell chs то смотри файл .cshrc , если bash , то .bashrc ,
в Linux может быть и в файле /etc/profile -- там строчка umask 022

Грубо говоря - какие по права устанвливаются при создании файла. Если файл .cshrc содержит строчку umask 077, то создаваемые файлы по умолчанию сможете прочитать только Вы (и администратор, естественно).

Serge_vs
21.02.2007, 12:48
Пользователь может поменять права на каталоги или файлы, при условии что пользователь владелец.
Права каталога на файлы будут наследоваться, владелец файлов будет тот, кто записал файл. Почти так-же как в Windows.


Изменить права на каталог не помогает - файл не неследует права каталога.
Попробую поэкспериментировать с umask.

anibius
24.03.2007, 16:21
Как управлять правами доступа к файлам, созданным пользователем?
Конкретнее: пользователь vasya качает из инета файл и записывает в общедоступный каталог /home/public содержимое которого можно читать всем. Но файл попадает туда с аттрибутами 600 (Васе можно читать и писать - остальнім нет доступа) а нужно чтобы его читали ВСЕ. Как заставить FireFox, KMail и др. сохранять файлы чтобы их могли читать другие?
РЕШЕНИЕ:ПРОСТО НУЖНО ПЕРЕОДИЧЕСКИ ИЗМЕНЯТЬ ПРАВА ДОСТУПА,НАПРИМЕР КАЖДЫЕ ПОЛЧАСА,с помощью cron:
создаешь задание от рута,или пользователя имеющего полномочия
вида

30 * * * 1-6 chmod -R 777 /opt/work

все теперь все могут делать все что угодно,процесс автоматризирован:)

Serge_vs
04.04.2007, 15:17
РЕШЕНИЕ:ПРОСТО НУЖНО ПЕРЕОДИЧЕСКИ ИЗМЕНЯТЬ ПРАВА ДОСТУПА,НАПРИМЕР КАЖДЫЕ ПОЛЧАСА,с помощью cron:
создаешь задание от рута,или пользователя имеющего полномочия
вида

30 * * * 1-6 chmod -R 777 /opt/work

все теперь все могут делать все что угодно,процесс автоматризирован:)

идея интересная. как пользоваться cron-ом не подскажете, а то мануалы лень читать :-)

bcspm3
05.04.2007, 09:54
как пользоваться cron-ом не подскажете,

Так, вам уже дали строчку. Пропишите её в конфигурационном файле cron-а. Остальное: запуск cron-а и т.д., - уже от вашего дистрибутива зависит.

А вообще, есть ещё и такой вариант обмена:

http://lice.wordpress.com/2007/02/27/file-sharing-between-two-boxes/

А у SAMBA несколько вариантов безопасности. Выберите самый простой (только пароль и всё).

tager
08.04.2007, 19:14
Да ребята вы что то все тут усложнили вообще это можно все сделать в samba-е:roll:

Добавлено через 8 минут
Да ребята вы что то все тут усложнили вообще это можно все сделать в samba-е:roll:

Просто нужно немного пошарить в настройках smba:razz:

byman002
14.04.2007, 09:08
файл smb.conf:
строки посмотри:
в разделе
[global]
create mask = 0666
directory mask = 0777

вроде здесь по крайней мере у меня под samba работает.

_scratch_
14.04.2007, 14:15
2byman002
только это лучше написать не в [global]-секцию, а для той папки, которую нужно расшарить, наверное.