Наследование принадлежности файла на Linux

svcadm включают ssh

Если это не работает, откройте вторую консоль и тип

tail -f /var/svc/log/network-ssh\:default.log

Затем попробуйте еще раз и посмотрите, происходит ли что-нибудь. Если существуют какие-либо проблемы с сервисом, они должны быть перечислены в файле журнала.

1
задан 13 January 2011 в 07:32
5 ответов

POSIX ACLs позволит Вам установить наследуемый ACLs. При установке значения по умолчанию acl для каталога это наследовано вниз стек, поскольку новые файлы создаются.

$ sudo mkdir /tmp/acltest
$ ls -ld /tmp/acltest 
drwxr-xr-x 2 root root 4096 2011-01-13 20:39 /tmp/acltest
$ touch /tmp/acltest
touch: setting times of `/tmp/acltest': Permission denied

В этой точке мой пользователь (daniel) не может создать файлы в этом каталоге. Я установил значение по умолчанию acl для каталога, а также установка пользователя acl на главном каталоге (значение по умолчанию относится к файлам/каталогам, созданным в этом каталоге, не к самому фактическому каталогу),

$ sudo setfacl -m d:u:daniel:rwx /tmp/acltest/
$ sudo setfacl -m u:daniel:rwx /tmp/acltest/

И теперь, я могу создать файл:

$ touch /tmp/acltest/foo
$ ls -la /tmp/acltest/foo 
-rw-r--r-- 1 daniel daniel 0 2011-01-13 20:41 /tmp/acltest/foo

Кроме того, я могу сделать что-либо, что я люблю в файлы, которые другие пользователи создают в этом каталоге:

$ sudo mkdir /tmp/acltest/foo2
$ ls -ld /tmp/acltest/foo2
drwxrwxr-x+ 2 root root 4096 2011-01-13 20:49 /tmp/acltest/foo2
$ sudo touch /tmp/acltest/foo2/bar
$ ls -la /tmp/acltest/foo2/bar 
-rw-rw-r--+ 1 root root 0 2011-01-13 20:43 /tmp/acltest/foo2/bar

Нормальные полномочия Unix не позволят мне коснуться этого, однако ACLs говорят иначе:

$ getfacl /tmp/acltest/foo2/bar
# file: tmp/acltest/foo2/bar
# owner: root
# group: root
user::rw-
user:daniel:rwx         #effective:rw-
group::r-x          #effective:r--
mask::rw-
other::r--

Обратите внимание, что этот файл в подкаталоге/tmp/acltest каталога, и таким образом, нормальные полномочия Unix не позволили бы мне сделать что-либо с этим файлом.

И действительно, пользователь daniel может сделать то, что они любят в этот файл:

$ mv /tmp/acltest/foo2/bar /tmp/acltest/foo2/bar2
$ ls -la /tmp/acltest/foo2/
total 8
drwxrwxr-x+ 2 root root 4096 2011-01-13 20:49 .
drwxrwxr-x+ 3 root root 4096 2011-01-13 20:43 ..
-rw-rw-r--+ 1 root root    0 2011-01-13 20:43 bar2

Обратите внимание, что значение по умолчанию acls только распространит как новые файлы, и каталоги создаются. Необходимо будет сделать операцию рекурсивного множества однажды для установки всего на месте, затем после того, как то значение по умолчанию acl вступит во владение.

Чтобы пользователю acls, необходимо будет удостовериться, что файловая система смонтирована с acl опцией в/etc/fstab.

TL; ACLs POSIX DR позволит Вам устанавливать липкие полномочия пользователя/группы, которые распространяют вниз дерево файловой системы.

Править: Форматирование и монтирует опцию

5
ответ дан 3 December 2019 в 16:54

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

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

Это не имеет никакого смысла - как пользователь может стать веб-сервером? Или Вы пытаетесь описать то, что происходит с PHP safe_mode с отключенной проверкой ценуроза? В этом случае решение состоит в том, чтобы, вероятно, использовать липкий бит группы с safe_mode_gid, однако safe_mode функциональность является deperecated, и необходимо искать другое решение, которое не зависит от него.

много веб-сайтов настраивается на общих хостах

У Вас есть корневой доступ к хостам? Если не затем Вы должны defnitely рассматривать миграцию на специализированный или виртуальный хост, где можно на самом деле управлять этими вещами - если Вы не можете изменить конфигурацию, то Ваша единственная опция состоит в том, чтобы использовать совместно использованные учетные записи.

Необходимо также идти дальше от использования FTP - это - кошмар безопасности и очень трудно автоматизировать.

1
ответ дан 3 December 2019 в 16:54

Единственным путем я когда-либо решал этот вид проблемы, должен иметь корень, выполняющий регулярный cronjob, который устанавливает полномочия на файлах в каталоге веб-сервера. Это довольно ужасно, но это работает хорошо.

0
ответ дан 3 December 2019 в 16:54

Можно использовать umask, устанавливающий для апача.

http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

Файлами по умолчанию, загруженными с помощью Apache, будет interit установка umask сервера.

Но у Вас есть опция установить umask специально для Apache.

Проверьте этот https://stackoverflow.com/questions/428416/setting-the-umask-of-the-apache-user

0
ответ дан 3 December 2019 в 16:54

Вместо того, чтобы выполнить cronjobs для изменения владения Вы могли использовать fsniper: http://freshmeat.net/projects/fsniper

fsniper контролирует каталоги для новых файлов (через inotify) и триггерные сценарии немедленно вместо периодически.

0
ответ дан 3 December 2019 в 16:54

Теги

Похожие вопросы