Новые сообщения с форума

RSS-материал
Общайтесь, познавайте, учитесь!
Обновлено: 41 мин. 16 сек. назад

Настройка квот для анонимного доступа к виртуальному хосту proftpd

Wed, 23/05/2012 - 15:28
Доброго времени суток!
ниже приведена секция описывающая работу виртуального хоста из файла virtuals.conf
Цитата:<VirtualHost ***>
ServerAdmin ***
ServerName "***"
TransferLog /var/log/proftpd/xfer/ftp.server.com
TransferRate RETR 1
MaxLoginAttempts 3
RequireValidShell no
DefaultRoot ~
AllowOverwrite yes
#setting where from to take parametrs for quota
QuotaLimitTable file:/home/ftp/ftpquota.limittab
QuotaTallyTable file:/home/ftp/ftpquota.tallytab
<Anonymous ~/tmp>
User anonymous_u
Group anonymous
#UserAlias anonymous_u ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser on anonymous_u
DirFakeGroup on anonymous_u
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
#DisplayLogin welcome.msg
#DisplayChdir .message
# Limit WRITE
<Directory />
<Limit WRITE>
AllowAll
</Limit>
</Directory>
# Allow STORE
<Directory />
<Limit STORE>
AllowAll
</Limit>
</Directory>
</Anonymous>
Модуль mod_quotatab.c в proftpd.conf активирован
Цитата:<IfModule mod_quotatab.c>
QuotaEngine on
</IfModule>

Сами таблицы
Цитата:root@:/home/ftp# ftpquota --show-records --type=limit
-------------------------------------------
Name: anonymous_u
Quota Type: User
Per Session: False
Limit Type: Hard
Uploaded bytes: 15728640.00
Downloaded bytes: unlimited
Transferred bytes: unlimited
Uploaded files: 4294967295
Downloaded files: 4294967295
Transferred files: unlimited
root@students:/home/ftp#

root@xxx:/home/ftp# ftpquota --show-records --type=tally
-------------------------------------------
Name: anonymous_u
Quota Type: User
Uploaded bytes: 10485760.00
Downloaded bytes: 10485760.00
Transferred bytes: 0.00
Uploaded files: 4294967295
Downloaded files: 0
Transferred files: 0
А вот листинг сессии на сервере
Цитата:xxx@students:~$ ftp xxx
Connected to xxx.
220 ProFTPD 1.3.3a Server (Vitia) [::ffff:xxx]
Name (xxx:xxx): anonymous_u
331 Anonymous login ok, send your complete email address as your password
Password:
230 Anonymous access granted, restrictions apply
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quote site quota
202 No quotas in effect
ftp>

И вот это то и не понятно - почему квоты не установились???

Настройка модема Мегафона в Oracle Linux

Tue, 22/05/2012 - 22:55
Доброго времени суток! Я новичок, с GNU/Linux общаюсь впервые. Не получается насроить USB-модем HUAWEI Е352 от Мегафона под Oracle Linux 6.2. Модем видит, диск тоже, при попытке запустить исполняемые файлы каталога Linux выдает ошибку. Сценарии (как я понял) install в терминале не открывает.

В принципе, в мануале указаны совместимые версии - Ubuntu 10.04/9.10/9.04; OpenSuse 11.2, Red Flag 7.0 - но хотелось бы его запустить под Fedora/RHEL/Oracle Linux. Кто знает как - помогите, пожалуйста. Если это невозможно - посоветуйте версию из упомянутых совместимых для ноутбука для работы с расчетными таблицами/интернетом/баз данных.
___________________
Спасибо.

Нужно перенести программу с windows под linux

Tue, 22/05/2012 - 18:47
Нужно перенести клиент-серверную, не сложную программу под linux, готов заплатить.
если кто готов взяться, могу скинуть программу и её описание на майл, программа не сложная, 4-х логических блоков:
• пользовательский интерфейс;
• сетевой клиент, отвечающий за передачу данных по сети;
• сервер соединений, отвечающий за прием данных от других компьютеров;
• модуль шифрования, реализующий алгоритм шифрования Anubis с 128-ми битным ключом.

denisgalimoff@yandex.ru
санкт-петербург телефон 89217941106

Установка убунты 10.10 на виртуальную машину

Tue, 22/05/2012 - 00:14
Пытаюсь поставить убунту (10.10 для нетбука) на виртуальную машину. На одном из этапов требуется корневая файловая система, но самого root'а нет в точке монтирования. Подскажите что можно взять вместо него?

pthread_cond_timedeait()

Mon, 21/05/2012 - 16:13
Всем привет , столкнулся с проблемой .
Есть код


#include <pthread.h>
//#include "/home/abraziv/Desktop/glibc-2.14/nptl/sysdeps/pthread"
#include <stdio.h>
#include <time.h>
#include <stdio.h>
#include <sys/time.h>
#include <errno.h>

void out(int );
void* compute_thread (void*);
int lab_pthread_cond_timedwait(pthread_cond_t * ,pthread_mutex_t *, unsigned int );
pthread_mutex_t my_sync;
pthread_cond_t rx;
unsigned int tw = 100;

struct timespec timetowait ;

int retcode = 1 ;

int thread_done = 0;
int x=1;

main( )
{
pthread_t tid;
pthread_attr_t attr;
pthread_attr_init (&attr);
pthread_mutex_init (&my_sync, NULL);

pthread_cond_init (&rx, NULL);

pthread_create(&tid, &attr, compute_thread, (void *)NULL);

pthread_mutex_lock(&my_sync);

out(3);

while (!thread_done)
{
lab_pthread_cond_timedwait(&rx, &my_sync, tw );

pthread_cond_wait(&rx, &my_sync );
}
out(4);
x++;

pthread_mutex_unlock(&my_sync);
out(5);
exit(0);
}


void* compute_thread(void* dummy)
{

out(6);
pthread_mutex_lock (&my_sync);
out(8);
x++;
sleep(2);
out(9);
thread_done = 1;
pthread_cond_signal (&rx);
out(10);
pthread_mutex_unlock (&my_sync);
out(11);
return;
}

void out(int sh)
{

printf("%d rx.__data.__lock %d\n",sh,rx.__data.__lock );
printf("%d rx.__data.__futex %d\n",sh,rx.__data.__futex );
printf("%d rx.__data.__total_seq %d\n",sh,rx.__data.__total_seq );
printf("%d rx.__data.__wakeup_seq %d\n",sh,rx.__data.__wakeup_seq );
printf("%d rx.__data.__woken_seq %d\n",sh,rx.__data.__woken_seq );
printf("%d rx.__data.__nwaiters %d\n",sh,rx.__data.__nwaiters );
printf("%d rx.__data.__mutex %d\n",sh,rx.__data.__mutex );
printf("%d rx.__data.__broadcast_seq %d\n",sh,rx.__data.__broadcast_seq );
printf("%d my_sync.__data.__lock %d\n",sh,my_sync.__data.__lock );
printf("%d my_sync.__data.__nwaiters %d\n",sh,my_sync.__data.__count );
printf("%d my_sync.__data.__mutex %d\n",sh,my_sync.__data.__owner );
printf("%d my_sync.__data.__broadcast_seq %d\n\n",sh,my_sync.__data.__nusers );

}


lab_pthread_cond_timedwait(pthread_cond_t *rx,pthread_mutex_t *my_sync, unsigned int timetowait)
{

}
[/C]

Мне необходимо написать функцию , подобную pthread_cond_timedwait(), которая по истечению заданого времени (например 1 сек ) времени подымала какой либо флаг. Проблема заключается в том , что эта функция должна работать без участия выполняющихся потоков . Т.е. один поток захватывает мьютекс потом натыкается pthread_cond_wait(&rx, &my_sync ) и блокируется на этой условной переменной , после переключения другой поток начинает выполнять функцию compute_thread() . и поподает на sleep(2) , засыпает на 2 или более сек . И т.к. 2 или более сек больше чем 1 (аргумент моей функции) выставлется бит , например в __data.__woken_seq .
Это можно сделать по аналогии с функцией pthread_cond_timedwait()




struct _condvar_cleanup_buffer
{
int oldtype;
pthread_cond_t *cond;
pthread_mutex_t *mutex;
unsigned int bc_seq;
};

int
__pthread_cond_timedwait (cond, mutex, abstime)
pthread_cond_t *cond;
pthread_mutex_t *mutex;
const struct timespec *abstime;
{
struct _pthread_cleanup_buffer buffer;
struct _condvar_cleanup_buffer cbuffer;
int result = 0;

/* Catch invalid parameters. */
if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
return EINVAL;

int pshared = (cond->__data.__mutex == (void *) ~0l)
? LLL_SHARED : LLL_PRIVATE;

/* Make sure we are alone. */
lll_lock (cond->__data.__lock, pshared);

/* Now we can release the mutex. */
int err = __pthread_mutex_unlock_usercnt (mutex, 0);
if (err)
{
lll_unlock (cond->__data.__lock, pshared);
return err;
}

/* We have one new user of the condvar. */
++cond->__data.__total_seq;
++cond->__data.__futex;
cond->__data.__nwaiters += 1 << COND_NWAITERS_SHIFT;

/* Remember the mutex we are using here. If there is already a
different address store this is a bad user bug. Do not store
anything for pshared condvars. */
if (cond->__data.__mutex != (void *) ~0l)
cond->__data.__mutex = mutex;

/* Prepare structure passed to cancellation handler. */
cbuffer.cond = cond;
cbuffer.mutex = mutex;

/* Before we block we enable cancellation. Therefore we have to
install a cancellation handler. */
__pthread_cleanup_push (&buffer, __condvar_cleanup, &cbuffer);

/* The current values of the wakeup counter. The "woken" counter
must exceed this value. */
unsigned long long int val;
unsigned long long int seq;
val = seq = cond->__data.__wakeup_seq;
/* Remember the broadcast counter. */
cbuffer.bc_seq = cond->__data.__broadcast_seq;

while (1)
{
struct timespec rt;
{
#ifdef __NR_clock_gettime
INTERNAL_SYSCALL_DECL (err);
int ret;
ret = INTERNAL_VSYSCALL (clock_gettime, err, 2,
(cond->__data.__nwaiters
& ((1 << COND_NWAITERS_SHIFT) - 1)),
&rt);
# ifndef __ASSUME_POSIX_TIMERS
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (ret, err), 0))
{
struct timeval tv;
(void) gettimeofday (&tv, NULL);

/* Convert the absolute timeout value to a relative timeout. */
rt.tv_sec = abstime->tv_sec - tv.tv_sec;
rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
}
else
# endif
{
/* Convert the absolute timeout value to a relative timeout. */
rt.tv_sec = abstime->tv_sec - rt.tv_sec;
rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
}
#else
/* Get the current time. So far we support only one clock. */
struct timeval tv;
(void) gettimeofday (&tv, NULL);

/* Convert the absolute timeout value to a relative timeout. */
rt.tv_sec = abstime->tv_sec - tv.tv_sec;
rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
#endif
}
if (rt.tv_nsec < 0)
{
rt.tv_nsec += 1000000000;
--rt.tv_sec;
}
/* Did we already time out? */
if (__builtin_expect (rt.tv_sec < 0, 0))
{
if (cbuffer.bc_seq != cond->__data.__broadcast_seq)
goto bc_out;

goto timeout;
}

unsigned int futex_val = cond->__data.__futex;

/* Prepare to wait. Release the condvar futex. */
lll_unlock (cond->__data.__lock, pshared);

/* Enable asynchronous cancellation. Required by the standard. */
cbuffer.oldtype = __pthread_enable_asynccancel ();

/* Wait until woken by signal or broadcast. */
err = lll_futex_timed_wait (&cond->__data.__futex,
futex_val, &rt, pshared);

/* Disable asynchronous cancellation. */
__pthread_disable_asynccancel (cbuffer.oldtype);

/* We are going to look at shared data again, so get the lock. */
lll_lock (cond->__data.__lock, pshared);

/* If a broadcast happened, we are done. */
if (cbuffer.bc_seq != cond->__data.__broadcast_seq)
goto bc_out;

/* Check whether we are eligible for wakeup. */
val = cond->__data.__wakeup_seq;
cond->__data.__wakeup_seq
if (val != seq && cond->__data.__woken_seq != val)
break;

/* Not woken yet. Maybe the time expired? */
if (__builtin_expect (err == -ETIMEDOUT, 0))
{
timeout:
/* Yep. Adjust the counters. */
++cond->__data.__wakeup_seq;
++cond->__data.__futex;

/* The error value. */
result = ETIMEDOUT;
break;
}
}

/* Another thread woken up. */
++cond->__data.__woken_seq;

bc_out:

cond->__data.__nwaiters -= 1 << COND_NWAITERS_SHIFT;

/* If pthread_cond_destroy was called on this variable already,
notify the pthread_cond_destroy caller all waiters have left
and it can be successfully destroyed. */
if (cond->__data.__total_seq == -1ULL
&& cond->__data.__nwaiters < (1 << COND_NWAITERS_SHIFT))
lll_futex_wake (&cond->__data.__nwaiters, 1, pshared);

/* We are done with the condvar. */
lll_unlock (cond->__data.__lock, pshared);

/* The cancellation handling is back to normal, remove the handler. */
__pthread_cleanup_pop (&buffer, 0);

/* Get the mutex before returning. */
err = __pthread_mutex_cond_lock (mutex);

return err ?: result;
}

[/C]

Но я незнаю какую часть кода необходимо вытащить, есть предположения , но я не слишком силён в программирование . Спасибо заранее.


Re: Не принимает пароль от пользователей с консоли

Mon, 21/05/2012 - 15:59
chmod проверил все норм.
Локально - если можно подробно?

http://www.rhd.ru/docs/manuals/enterprise/RHEL-4-Manual/secu rity-guide/s1-wstation-privileges.html

тут подробно приведено как можно отключить авторизацию в командной строке, проверил все норм ничего не прописано.

Re: Archlinux - как динамически учесть изменения в конфигурационных файлах

Sun, 20/05/2012 - 05:52
В данный момент никак не могу настроить в консоли русский шрифт. Вначале он появлялся, а потом стали появляться квадратики. Пытался по-всякому записывать настройки в rc.conf, ничего не получилось. При этом надоело перезагружаться. Вот и подумал, может быть как-то можно без перезагрузки. Умные люди посоветовали: init 1, действительно работает, и компьютер перезагружать не надо.

Re: Sun Microsystems sun4u Sun Fire V215

Sat, 19/05/2012 - 20:39
Хорошо,спасибо! Дабы сэкономить время, подскажите как можно отключить этот мониторинг? Может если не програмным путем, то путем перемычек или там еще чего?

Re: Sun Microsystems sun4u Sun Fire V215

Sat, 19/05/2012 - 20:30
arfeo писал(а) Сбт, 19 Май 2012 13:40Почему странно? Тоесть Вы предлогаете отключить мониторинг вольтажа на системной плате? Первым делом попробую всё-таки поменять батарейку..Может быть и правда глюк, а с какой периодичностью вольтаж проверяется сенсором? Или постоянно идет мониторинг и как только напряжение падает ниже нормы, то сразу идет оповещение и выключение?


Да - постоянно идет мониторинг
Попробуйте поменять батарейку - а то мало ли

Re: кто-то пишет в /var

Sat, 19/05/2012 - 13:41
iostat показывает что пишется в /var
логов не пишется, занятое место на диске не увеличивается

Re: Sun Microsystems sun4u Sun Fire V215

Sat, 19/05/2012 - 13:40
Почему странно? Тоесть Вы предлогаете отключить мониторинг вольтажа на системной плате? Первым делом попробую всё-таки поменять батарейку..Может быть и правда глюк, а с какой периодичностью вольтаж проверяется сенсором? Или постоянно идет мониторинг и как только напряжение падает ниже нормы, то сразу идет оповещение и выключение?

Re: Archlinux - как динамически учесть изменения в конфигурационных файлах

Sat, 19/05/2012 - 13:27
tumanovalex писал(а) Чтв, 17 Май 2012 21:20Подскажите, пожалуйста, как после изменения конфигурационных файлов, например rc.conf, без перезагрузки применить сделанные в нем изменения и продолжать работу.

А зачем вам это?
rc.conf - это же в основном конфигурационные скрипты и параметры, которые выполняются при запуске системы?

Re: Sun Microsystems sun4u Sun Fire V215

Sat, 19/05/2012 - 13:25
arfeo писал(а) Птн, 18 Май 2012 17:33Добрый день! Происходит рандомное отключение сервера, гуглил, пока мысли о батарейке,но строка из алома ""VOLTAGE_SENSOR @ MB.BAT.V_BAT is within normal range." вроде как указывает,что всё ок,помогите разобраться,вот логи!

MAY 14 07:52:24 tpii1: 0004006f: "SC initiating soft host system shutdown due to fault at MB.BAT.V_BAT."
MAY 14 07:52:25 tpii1: 00040000: "SC Request to Power Off Host."
MAY 14 07:52:25 tpii1: 00040069: "VOLTAGE_SENSOR @ MB.BAT.V_BAT has exceeded low soft shutdown threshold."
MAY 14 07:52:26 tpii1: 0004006e: "VOLTAGE_SENSOR @ MB.BAT.V_BAT is within normal range."
MAY 14 07:53:25 tpii1: 0004004f: "Indicator PS0.SERVICE is now ON"
MAY 14 07:53:30 tpii1: 00040029: "Host system has shut down."
MAY 14 07:54:19 tpii1: 0004004f: "Indicator PS0.SERVICE is now OFF"
MAY 14 07:54:19 tpii1: 0004004f: "Indicator PS0.DC_OK is now OFF"
MAY 14 14:36:35 tpii1: 0007000c: "Cannot run fan viability test when managed system power is off

Странно, что у вас вообще из-за батарейки могут быть подобные траблы
Я бы на вашем месте все же поменял батарейку.
"VOLTAGE_SENSOR" - говорит о том, что напруга нормальная
НО! Вдруг по каким-то причинам она или пропадает на время или просто глюк сенсора?
Я бы вообще отключил, по возможности, реакцию на этот сенсор

Re: кто-то пишет в /var

Sat, 19/05/2012 - 13:20
mihail_13 писал(а) Птн, 18 Май 2012 21:53При работе моей программы в /var (живет на отдельном разделе) пишется до 3Mb/s. Это точно не запись логов. Как определить что туда пишется (при этом объем свободного места не меняется).
Программа (через mysql) пишет на диски много данных, но не в /var.


В /var может писаться и кэш какой-нибудь
Вы видите что именно пишется в /var?

кто-то пишет в /var

Fri, 18/05/2012 - 21:53
При работе моей программы в /var (живет на отдельном разделе) пишется до 3Mb/s. Это точно не запись логов. Как определить что туда пишется (при этом объем свободного места не меняется).
Программа (через mysql) пишет на диски много данных, но не в /var.

Archlinux - пропали русские буквы после установки wicd

Fri, 18/05/2012 - 21:18
После включения в демоны dbus и wicd для нормальной работы wicd в консольном режиме сбился шрифт, появились вместо русских букв маленькие квадратики. До этого все было нормально, в текстовом редакторе nano интерфейс был русскими буквами. Причем этот эффект наблюдал на двух компьютерах, на которых в конце концов удалось установить wicd. Руссификация в файле rc.conf сделана по Ctrl+Shift, как описано в руководстве для начинающих. Подскажите, пожалуйста, как с этим бороться.

Sun Microsystems sun4u Sun Fire V215

Fri, 18/05/2012 - 17:33
Добрый день! Происходит рандомное отключение сервера, гуглил, пока мысли о батарейке,но строка из алома ""VOLTAGE_SENSOR @ MB.BAT.V_BAT is within normal range." вроде как указывает,что всё ок,помогите разобраться,вот логи!

MAY 14 07:52:24 tpii1: 0004006f: "SC initiating soft host system shutdown due to fault at MB.BAT.V_BAT."
MAY 14 07:52:25 tpii1: 00040000: "SC Request to Power Off Host."
MAY 14 07:52:25 tpii1: 00040069: "VOLTAGE_SENSOR @ MB.BAT.V_BAT has exceeded low soft shutdown threshold."
MAY 14 07:52:26 tpii1: 0004006e: "VOLTAGE_SENSOR @ MB.BAT.V_BAT is within normal range."
MAY 14 07:53:25 tpii1: 0004004f: "Indicator PS0.SERVICE is now ON"
MAY 14 07:53:30 tpii1: 00040029: "Host system has shut down."
MAY 14 07:54:19 tpii1: 0004004f: "Indicator PS0.SERVICE is now OFF"
MAY 14 07:54:19 tpii1: 0004004f: "Indicator PS0.DC_OK is now OFF"
MAY 14 14:36:35 tpii1: 0007000c: "Cannot run fan viability test when managed system power is off

Мнение о Linux

Thu, 17/05/2012 - 23:29
Привет всем линуксовикам!
Приглашаю Вас посетить новое сообщество "Наш Линукс" на mail.ru и стать его участниками.
Адрес сообщества: http://my.mail.ru/community/ourlinux/

Re: Для новичков - как поставить Linux

Thu, 17/05/2012 - 21:34
Спасибо, попробую

Archlinux - как динамически учесть изменения в конфигурационных файлах

Thu, 17/05/2012 - 21:20
Подскажите, пожалуйста, как после изменения конфигурационных файлов, например rc.conf, без перезагрузки применить сделанные в нем изменения и продолжать работу.