Система dovecot+exim, почта нормально работает но я пишу скрипт, и результат этого скриптаWarning: opendir(/mail/my.doman/bobot) [function.opendir]: failed to open dir: Permission denied in /usr/local/www/my.doman/qouta/size.php on line 8
Warning: readdir(): supplied argument is not a valid Directory resource in /usr/local/www/my.doman/qouta/size.php on line 10
0 mbвот пример: путь где папка с юзерами
drwxr-x--x 3 mailnull wheel 512 10 янв 2010 zorro
drwxr-x--x 3 mailnull wheel 512 10 янв 2010 zoya
drwxr-xr-x 3 mailnull wheel 512 10 янв 2010 zoyakor
drwxr-x--x 3 mailnull wheel 512 10 янв 2010 zoz
drwxr-x--x 3 mailnull wheel 512 10 янв 2010 zsk
drwxr-xr-x 3 mailnull wheel 512 10 янв 2010 ztrocenko
drwxr-x--x 3 mailnull wheel 512 10 янв 2010 zubchenkoвот скрипт
<?php
$size = '';
size_of_dir_num('/mail/my.doman/bobot');
// вместо /home/test1.ru - путь к директории размер которой надо узнать
function size_of_dir_num($path)
{$dir = opendir($path);
global $size;
while($d = readdir($dir))
{
if ($d == '.' || $d == '..') continue;
if (is_file($path.'/'.$d))
{
$size = $size + filesize($path.'/'.$d);
}
else if (is_dir($path.'/'.$d)) size_of_dir_num($path.'/'.$d);
}}
echo ($size / 1024 / 1024);
echo(' mb');
?>
вот права на скрипт
-rwxrwxrwx 1 root wheel 1009 3 авг 14:52 size.phpИ ошибка таже
А причем здесь скрипт? смотреть нужно на директории и то что в них.
>А причем здесь скрипт? смотреть нужно на директории и то что в
>них.так я вот и не знаю как быть я могу сделать chmod -r 777 ну это ж не рекомендуется ?
>А причем здесь скрипт? смотреть нужно на директории и то что в
>них.
>А причем здесь скрипт? смотреть нужно на директории и то что в
>них.так я вот и не знаю как быть я могу сделать chmod -r 777 ну это ж не рекомендуется ?
>А причем здесь скрипт? смотреть нужно на директории и то что в
>них.
ls -l /mail/my.domain/bobot/Maildir/
total 576
drwx------ 5 mailnull wheel 512 8 апр 17:36 .&BB0ENQQ2BDUEOwQwBEIENQQ7BEwEPQQwBE8- &BD8EPgRHBEIEMA-
drwx------ 5 mailnull wheel 512 22 мар 17:08 .&BCAENQRIBDUEPQQ4BDU- &BD8EQAQ+BDEEOwQ1BDw-
drwx------ 5 mailnull wheel 512 1 апр 14:00 .Infected Items
drwx------ 5 mailnull wheel 512 3 авг 15:59 .Sent
drwx------ 5 mailnull wheel 512 15 окт 00:09 .Spam
drwx------ 5 mailnull wheel 512 3 авг 15:59 .Trash
drwx------ 5 mailnull wheel 512 9 фев 20:06 .Trash.Drafts
drwx------ 2 mailnull wheel 3584 3 авг 15:59 cur
-rw------- 1 mailnull wheel 11 12 окт 10:41 dovecot-keywords
-rw------- 1 mailnull wheel 3488 3 авг 15:59 dovecot-uidlist
-rw------- 1 mailnull wheel 8 1 апр 14:00 dovecot-uidvalidity
-rw------- 1 mailnull wheel 0 25 янв 2010 dovecot-uidvalidity.4b5db4cf
-rw------- 1 mailnull wheel 1360 3 авг 15:59 dovecot.index
-rw------- 1 mailnull wheel 75776 3 авг 15:59 dovecot.index.cache
-rw------- 1 mailnull wheel 410000 3 авг 16:43 dovecot.index.log
-rw------- 1 mailnull wheel 32876 15 окт 14:47 dovecot.index.log.2
-rw------- 1 mailnull wheel 1614 3 авг 15:42 maildirsize
drwx------ 2 mailnull wheel 512 3 авг 15:59 new
-rw------- 1 mailnull wheel 130 1 апр 13:31 subscriptions
drwx------ 2 mailnull wheel 512 3 авг 15:42 tmp
Ну если у тебя на dir только x, как ты её хочешь open? Для этого нужно r. А вообще над разрешениями на почтовые ящики крепко подумай ;).
>Ну если у тебя на dir только x, как ты её хочешь
>open? Для этого нужно r. А вообще над разрешениями на почтовые
>ящики крепко подумай ;).так я вот и не знаю как быть я могу сделать chmod -r 777 (это сработает точно) ну это ж не рекомендуется ?
>так я вот и не знаю как быть я могу сделать chmod
>-r 777 (это сработает точно) ну это ж не рекомендуется ?su
echo "mail_uid = mailnull" >> /usr/local/etc/dovecot.conf
echo "mail_gid = mailstor" >> /usr/local/etc/dovecot.conf
chown -R mailnull:mailstor /mail/my.domain
chmod -R 770 /mail/my.domain
/usr/local/etc/rc.d/dovecot restart
pw usermod -n scriptuser -G mailstor
exit
./script
>su
>echo "mail_uid = mailnull" >> /usr/local/etc/dovecot.conf
>echo "mail_gid = mailstor" >> /usr/local/etc/dovecot.conf
>chown -R mailnull:mailstor /mail/my.domain
>chmod -R 770 /mail/my.domain
>/usr/local/etc/rc.d/dovecot restart
>pw usermod -n scriptuser -G mailstor
>exit
>./scriptвот я тут не пойму chown -R mailnull:mailstor /mail/my.domain
---это что мы меняем владельца mailnull на mailstor папки /mail/my.domain ?
>вот я тут не пойму chown -R mailnull:mailstor /mail/my.domain
>
>---это что мы меняем владельца mailnull на mailstor папки /mail/my.domain ?
>:-DDDDDDDDD
ой насмешид...man unix
>вот я тут не пойму chown -R mailnull:mailstor /mail/my.domain
>
>---это что мы меняем владельца mailnull на mailstor папки /mail/my.domain ?
>пипец, ты страшно-тупой
1. не папки, а директории
2. Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...
Внимательно посмотри вот на эти слова [OWNER][:[GROUP]]
>>вот я тут не пойму chown -R mailnull:mailstor /mail/my.domain
>>
>>---это что мы меняем владельца mailnull на mailstor папки /mail/my.domain ?
>>
>
>пипец, ты страшно-тупой
>
>1. не папки, а директории
>2. Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...
>Внимательно посмотри вот на эти слова [OWNER][:[GROUP]]А что умные не знают что деректории и папка это одно и тоже
Если тебе еще нужна помощЬ.
Есть ли у тебя пользователь bobot в системе, которому ты доставляешь почту, или он виртуальный? id bobot.
>Если тебе еще нужна помощЬ.
>Есть ли у тебя пользователь bobot в системе, которому ты доставляешь почту,
>или он виртуальный? id bobot.Да нужна :=)
Нет! он не виртуальный, пользователь есть такой
т.е почтовые ящики тут хранятся путь /mail/my.domain/пользователь/Maildir
>>Если тебе еще нужна помощЬ.
>>Есть ли у тебя пользователь bobot в системе, которому ты доставляешь почту,
>>или он виртуальный? id bobot.
>
>Да нужна :=)
>
>Нет! он не виртуальный, пользователь есть такой
>
>т.е почтовые ящики тут хранятся путь /mail/my.domain/пользователь/MaildirDeadLoco предложил тебе вариант доставки почты виртуальным пользователям. Можешь воспользоваться этим решением, но например системный пользователь, получивший shell доступ не будет напрямую иметь доступ к своей почте. Если тебе этого достаточно, посмотри что предлагает DeadLoco.
Если пользователи системные, и должны опереривоть почтой под своими аккаунтами, то тут тоже не один вариант решения. Короче вопрос в том надо оно тебе или нет :).
>[оверквотинг удален]
>>
>>т.е почтовые ящики тут хранятся путь /mail/my.domain/пользователь/Maildir
>
>DeadLoco предложил тебе вариант доставки почты виртуальным пользователям. Можешь воспользоваться этим решением,
>но например системный пользователь, получивший shell доступ не будет напрямую иметь
>доступ к своей почте. Если тебе этого достаточно, посмотри что предлагает
>DeadLoco.
>Если пользователи системные, и должны опереривоть почтой под своими аккаунтами, то тут
>тоже не один вариант решения. Короче вопрос в том надо оно
>тебе или нет :).Я только что попробовал у меня оказывается вот так (но я ещё не делал как предлагал DeadLoco)
если я запускаю
root# php /usr/local/www/my.doman/qouta/size.php
То работает всё нормальноа если в браузере
www.mydomain/size.php
То ошибка ну как я написал выше какая
>если я запускаю
>root# php /usr/local/www/my.doman/qouta/size.php
>
>То работает всё нормально
>Ну это же исполнение скрипта от рута, ему много чего можно
>а если в браузере
>www.mydomain/size.php
>То ошибка ну как я написал выше какаяА это исполнение скорее всего от пользователя, под которым исполняется веб-сервер. А ему в эту почту ход закрыт.
Я советую тебе забыть на время о веб интерфейсе и подумать о доступе к почтовым ящикам. Перечитай еще раз эту тему и определись с решениями. А потом задавай вопросы, и мы, надеюсь будем помогать.
>[оверквотинг удален]
>>а если в браузере
>>www.mydomain/size.php
>>То ошибка ну как я написал выше какая
>
>А это исполнение скорее всего от пользователя, под которым исполняется веб-сервер. А
>ему в эту почту ход закрыт.
>Я советую тебе забыть на время о веб интерфейсе и подумать о
>доступе к почтовым ящикам. Перечитай еще раз эту тему и определись
>с решениями. А потом задавай вопросы, и мы, надеюсь будем помогать.
>Сделал вот так
chmod -R 777 /mail/my.doman/bobot ---ну это ж нельзя так делатьВсё сработало !!!!!!!
так не работает
chmod -R 770 /mail/my.domain/bobot
вот какие права надо :=0
>[оверквотинг удален]
>делать
>
Хм. Ну надо тебе такие разрешения на почту, дак надо.
У меня по другому:
stat /home/samsonov/mail
File: `/home/samsonov/mail'
Size: 824 Blocks: 1 IO Block: 4096 Каталог
Device: fd00h/64768d Inode: 73714 Links: 19
Access: (0770/drwxrwx---) Uid: (10006/samsonov) Gid: ( 12/ mail)
Access: 2010-08-05 04:40:47.000000000 +0400
Modify: 2010-08-05 17:28:41.000000000 +0400
Change: 2010-08-05 17:28:41.000000000 +0400
ls -la /home/samsonov/mail
итого 131
drwxrwx--- 19 samsonov mail 824 2010-08-05 17:28 ./
drwxr-xr-x 7 samsonov domain users 608 2010-08-04 19:01 ../
......
drwxrwx--- 5 samsonov usermail 296 2010-08-05 13:50 .For\ me/
drwxrwx--- 5 samsonov usermail 296 2010-07-30 12:32 .Importan/
drwxrwx--- 5 samsonov usermail 224 2010-07-26 13:49 .Kadry/
drwxrwx--- 5 samsonov usermail 328 2010-08-05 17:36 .Mail\ delivery/
drwxrwx--- 5 samsonov usermail 296 2010-08-05 17:27 .Otrs/
drwxrwx--- 5 samsonov usermail 296 2010-08-05 17:27 .Queue/
drwxrwx--- 5 samsonov usermail 296 2010-08-05 17:27 .Sent/
drwxrwx--- 5 samsonov usermail 328 2010-08-05 17:27 .Spam\ mail/
drwxrwx--- 5 samsonov usermail 328 2010-08-05 17:27 .Sysadmin/
drwxrwx--- 5 samsonov usermail 328 2010-08-05 17:27 .Trash/
drwxrwx--- 5 samsonov usermail 192 2010-06-21 16:21 INBOX/
drwxrwx--- 5 samsonov usermail 152 2010-06-21 16:26 TEST/
drwxrwx--- 2 samsonov usermail 5808 2010-08-05 17:28 cur/
-rw------- 1 samsonov domain users 10 2010-06-22 17:39 dovecot-keywords
-rw------- 1 samsonov domain users 4981 2010-08-05 17:28 dovecot-uidlist
-rw------- 1 samsonov domain users 8 2010-07-26 13:49 dovecot-uidvalidity
-rw------- 1 samsonov domain users 0 2010-06-22 17:39 dovecot-uidvalidity.4c20bd1e
-rw------- 1 samsonov domain users 1976 2010-08-05 17:28 dovecot.index
-rw------- 1 samsonov domain users 63488 2010-08-05 17:28 dovecot.index.cache
-rw------- 1 samsonov domain users 31008 2010-08-05 17:28 dovecot.index.log
-rwx------ 1 samsonov domain users 188 2010-06-22 11:56 list_folders.sh*
drwxrwx--- 2 samsonov usermail 112 2010-08-05 17:47 new/
-rw------- 1 samsonov domain users 128 2010-07-26 13:27 subscriptions
drwxrwx--- 2 samsonov usermail 48 2010-08-05 17:47 tmp/
ls -la /home/samsonov/mail/cur/
итого 9
drwxrwx--- 2 samsonov usermail 160 2010-08-05 18:37 ./
drwxrwx--- 19 samsonov mail 824 2010-08-05 18:37 ../
-rw-rw---- 1 exim usermail 1139 2010-08-05 16:47 1281019065.M928610P12119.mailsrv:2,S
-rw-rw---- 1 exim usermail 1139 2010-08-05 17:47 1281019065.M928611P12119.mailsrv:2,S
id exim
uid=1000(exim) gid=104(exim) группы=104(exim),12(mail),105(majordomo),108(usermail)
id dovecot
uid=1002(dovecot) gid=12(mail) группы=12(mail),102(kerberos),108(usermail)
id samsonov
uid=10006(samsonov) gid=10004(domain users) группы=10004(domain users),4(adm),11(floppy),17(audio),18(video),19(cdrom),83(plugdev),84(power),86(netdev),108(usermail) ....
С exim почти разобрался, dovecot на очереди :)
>[оверквотинг удален]
>>
>>так не работает
>>
>>chmod -R 770 /mail/my.domain/bobot
>>
>>вот какие права надо :=0
>
>Хм. Ну надо тебе такие разрешения на почту, дак надо.
>У меня по другому:
>не ! я имею ввиду мне такие права не надо это ж вроде не безопасно?
а вот все говорят 770 , а у меня не работает скрипт если права такие на ящик юзера поставить
В Linux разрешения у файла бывают трех видов:
разрешение на чтение этого файла(обозначается буквой r)
разрешение на запись в этот файл(обозначается буквой w)
разрешение на выполнение этого файла (обозначается буквой x)
Разрешения у каталога также бывают трех видов:
разрешение на чтение списка содержимого этого каталога (обозначается буквой r)
разрешение на изменение содержимого списка этого каталога (обозначается буквой w)
разрешение на вход в этот каталог (обозначается буквой x)
Разрешения могут комбинироваться. Для отображения разрешений в комбинации используют порядок "rwx". Для отображения отсутсвия разрешения используют знак "-". Например, комбинация разрешений у файла, обозначаемая "rw-", разрешает чтение этого файла и запись в этот файл. Таких комбинаций разрешений восемь. Для обозначения комбинаций разрешений также используют двоичные и восьмеричные числа. Например комбинация разрешений, обозначаемая "rw-", обозначается двоичным числом 110 или восьмеричным числом 6. Комбинация разрешений, обозначаемя "r--", обозначается двоичном числом 100 или восьмеричным 4. Комбинации разрешений файла или каталога группируются в группу разрешений, состоящую из комбинации разрешений для пользователя - владельца файла или каталога, комбинации разрешений для группы пользователей этого файла или каталога, и комбинации разрешений для остальных пользователей. Например группа разрешений файла, обозначенная "rw-r--r--", разрешает пользователю - владельцу этого файла читать этот файл и писать в него, группе пользователей этого файла читать этот файл и остальным пользователям читать этот файл. Эта группа разрешений обозначается группой восьмеричных чисел 644.
>[оверквотинг удален]
>и восьмеричные числа. Например комбинация разрешений, обозначаемая "rw-", обозначается двоичным числом
>110 или восьмеричным числом 6. Комбинация разрешений, обозначаемя "r--", обозначается двоичном
>числом 100 или восьмеричным 4. Комбинации разрешений файла или каталога группируются
>в группу разрешений, состоящую из комбинации разрешений для пользователя - владельца
>файла или каталога, комбинации разрешений для группы пользователей этого файла или
>каталога, и комбинации разрешений для остальных пользователей. Например группа разрешений файла,
>обозначенная "rw-r--r--", разрешает пользователю - владельцу этого файла читать этот файл
>и писать в него, группе пользователей этого файла читать этот файл
>и остальным пользователям читать этот файл. Эта группа разрешений обозначается группой
>восьмеричных чисел 644.так у меня другого выхода получается что нету только 777
drwxrwxrwxrwx - разрешает пользователю - владельцу этого файла читать писать и выполнять
rwx - группе пользователей этого файла читать и писать и выполнять
rwx - и остальным пользователям читать этот файл и писать и выполнять
>[оверквотинг удален]
>так у меня другого выхода получается что нету только 777
>
>drwxrwxrwx
>
>
>rwx - разрешает пользователю - владельцу этого файла читать писать и выполнять
>
>rwx - группе пользователей этого файла читать и писать и выполнять
>rwx - и остальным пользователям читать этот файл и писать и выполнять
>Ты можешь назначить на файл нужную группу (лечше не wheel), установить на файл разрешения 770 например, и включить в группу нужных пользователей - например apache или www-data или что там у тебя.
>[оверквотинг удален]
>>
>>rwx - разрешает пользователю - владельцу этого файла читать писать и выполнять
>>
>>rwx - группе пользователей этого файла читать и писать и выполнять
>>rwx - и остальным пользователям читать этот файл и писать и выполнять
>>
>
>Ты можешь назначить на файл нужную группу (лечше не wheel), установить на
>файл разрешения 770 например, и включить в группу нужных пользователей -
>например apache или www-data или что там у тебя.всё я сделал
в apache поставил Юзера mailnull группа wheel и права 770 всё нормально работает
>[оверквотинг удален]
>>>
>>
>>Ты можешь назначить на файл нужную группу (лечше не wheel), установить на
>>файл разрешения 770 например, и включить в группу нужных пользователей -
>>например apache или www-data или что там у тебя.
>
>всё я сделал
>
>в apache поставил Юзера mailnull группа wheel и права 770 всё
>нормально работаетМолодец! Не умница, но молодец!
>[оверквотинг удален]
>>>Ты можешь назначить на файл нужную группу (лечше не wheel), установить на
>>>файл разрешения 770 например, и включить в группу нужных пользователей -
>>>например apache или www-data или что там у тебя.
>>
>>всё я сделал
>>
>>в apache поставил Юзера mailnull группа wheel и права 770 всё
>>нормально работает
>
>Молодец! Не умница, но молодец!Спасибо за помощь, знаю может вывел своим не знанием но всё равно спасибо :=)
>[оверквотинг удален]
>>>
>>>всё я сделал
>>>
>>>в apache поставил Юзера mailnull группа wheel и права 770 всё
>>>нормально работает
>>
>>Молодец! Не умница, но молодец!
>
>Спасибо за помощь, знаю может вывел своим не знанием но всё
>равно спасибо :=)Никаво ты не вывел, это системы нас выводят. Прости что мое слово последнее в Этом разговоре.
>Молодец! Не умница, но молодец!Да и не молодец, если подумать. По массе причин, их которых секурность - даже не главная.
>DeadLoco предложил тебе вариант доставки почты виртуальным пользователям.
>Можешь воспользоваться этим решением, но например системный пользователь,
>получивший shell доступ не будет напрямую иметь доступ к своей почте.В экзиме (да и в прочих МТА) можно сделать разную обработку почт для системных и виртуальных юзеров, и системным складывать в мейлбоксы, с личными правами, а виртуальным - в мейлдиры, с едиными правами для поп/имап. Из первого сообщения видно, что у ТС именно виртуальные юзеры:
> вот пример: путь где папка с юзерами
> drwxr-x--x 3 mailnull wheel 512 10 янв 2010 zorro
> drwxr-x--x 3 mailnull wheel 512 10 янв 2010 zoya
> drwxr-xr-x 3 mailnull wheel 512 10 янв 2010 zoyakor
> drwxr-x--x 3 mailnull wheel 512 10 янв 2010 zoz
> drwxr-x--x 3 mailnull wheel 512 10 янв 2010 zsk
> drwxr-xr-x 3 mailnull wheel 512 10 янв 2010 ztrocenko
> drwxr-x--x 3 mailnull wheel 512 10 янв 2010 zubchenkoСобсно, ТС в упор не понимает идеологии юниховых прав доступа. Для него 777 и 770 - просто числа.