quota/0040755000567100000120000000000010317100202011655 5ustar jcameronwheelquota/group_grace_form.cgi0100755000567100000120000000340610147351035015701 0ustar jcameronwheel#!/usr/local/bin/perl # group_grace_form.cgi # Display a form for editing group grace times for some filesystem require './quota-lib.pl'; &ReadParse(); $access{'ggrace'} && &can_edit_filesys($in{'filesys'}) || &error($text{'ggracef_ecannot'}); &ui_print_header(undef, $text{'ggracef_title'}, "", "group_grace"); print "$text{'ggracef_info'}

\n"; @gr = &get_group_grace($in{'filesys'}); print "

\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
",&text('ggracef_graces', $in{'filesys'}),"
$text{'ggracef_block'} \n"; if (&default_grace()) { printf " $text{'default'}\n", $gr[0] ? "" : "checked"; printf "\n", $gr[0] ? "checked" : ""; } print ""; &select_units("bunits", $gr[1]); print "
$text{'ggracef_file'} \n"; if (&default_grace()) { printf " $text{'default'}\n", $gr[2] ? "" : "checked"; printf "\n", $gr[2] ? "checked" : ""; } print ""; &select_units("funits", $gr[3]); print "
\n"; print "
\n"; &ui_print_footer("list_groups.cgi?dir=".&urlize($in{'filesys'}),$text{'ggracef_return'}); sub select_units { @uarr = &grace_units(); print "\n"; } quota/config-hpux0100644000567100000120000000072210256466536014060 0ustar jcameronwheeldisplay_max=100 user_quotaoff_command=quotaoff user_quotaon_command=quotaon user_repquota_command=repquota -v user_grace_command=edquota -t user_quota_command=quota -v quotacheck_command=quotacheck user_edquota_command=edquota user_copy_command=edquota -p sort_mode=0 block_mode=1 show_grace=0 email_msg=Disk usage for user ${USER} on filesystem ${FS} has reached ${PERCENT}% of the allowed quota. ${USED} of disk space is being used, out of a maximum of ${QUOTA}. quota/edit_group_quota.cgi0100755000567100000120000000533510255724520015741 0ustar jcameronwheel#!/usr/local/bin/perl # edit_group_quota.cgi # Display a form for editing the quotas for a group on some filesystem require './quota-lib.pl'; &ReadParse(); $u = $in{'group'}; $fs = $in{'filesys'}; &can_edit_group($u) || &error(&text('egroup_eallowgr', $u)); $access{'ro'} && &error(&text('egroup_eallowgr', $u)); &can_edit_filesys($fs) || &error($text{'egroup_eallowfs'}); &ui_print_header(undef, $text{'egroup_title'}, "", "edit_group_quota"); @quot = &group_quota($u, $fs); $first = (@quot == 0); $bsize = &block_size($fs); $fsbsize = &block_size($fs, 1); print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
",&text('egroup_quotas', &html_escape($u), $fs),"
\n"; if (!$first) { if ($bsize) { print " ", "\n", } else { print " ", "\n", } } print "\n"; "a_input("sblocks", $quot[1], $bsize); print "\n"; "a_input("hblocks", $quot[2], $bsize); if ($access{'diskspace'}) { ($binfo, $finfo) = &filesystem_info($fs, undef, undef, $fsbsize); print "\n"; print "\n"; } print "
$text{'egroup_kused'}",&nice_size($quot[0]*$bsize),"
$text{'egroup_bused'}$quot[0]
",$bsize ? $text{'egroup_sklimit'} : $text{'egroup_sblimit'},"
",$bsize ? $text{'egroup_hklimit'} : $text{'egroup_hblimit'},"
",$bsize ? $text{'euser_kdisk'} : $text{'euser_bdisk'},"$binfo
\n"; if (!$first) { print "\n", } print "\n"; "a_input("sfiles", $quot[4]); print "\n"; "a_input("hfiles", $quot[5]); if ($access{'diskspace'}) { print "\n"; print "\n"; } print "
$text{'egroup_fused'} $quot[3]
$text{'egroup_sflimit'}
$text{'egroup_hflimit'}
$text{'euser_fdisk'}$finfo
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; if ($in{'source'}) { &ui_print_footer("group_filesys.cgi?group=".&urlize($u),$text{'egroup_freturn'}); } else { &ui_print_footer("list_groups.cgi?dir=".&urlize($fs), $text{'egroup_greturn'}); } quota/copy_user_form.cgi0100755000567100000120000000212610113562007015406 0ustar jcameronwheel#!/usr/local/bin/perl # copy_user_form.cgi # Display a form for copying some user's quotas to others require './quota-lib.pl'; &ReadParse(); $access{'filesys'} eq "*" || &error($text{'cuform_ecannot'}); &can_edit_user($in{'user'}) || &error($text{'cuform_euallow'}); &ui_print_header(undef, $text{'cuform_title'}, "", "copy_user"); print "
\n"; print "\n"; print "",&text('cuform_copyto', $in{'user'}),"

\n"; print "

\n"; &ui_print_footer("user_filesys.cgi?user=$in{'user'}", $text{'cuform_return'}); quota/config-openbsd0100644000567100000120000000132510256466546014527 0ustar jcameronwheeluser_quotaoff_command=quotaoff -u user_quotaon_command=quotaon -u group_copy_command=edquota -g -p quotacheck_command=quotacheck user_quota_command=quota -v -u group_grace_command=edquota -t -g user_repquota_command=repquota -u -v user_edquota_command=edquota -u group_quotaoff_command=quotaoff -g group_quotaon_command=quotaon -g group_quota_command=quota -v -g user_copy_command=edquota -u -p group_repquota_command=repquota -g -v display_max=100 group_edquota_command=edquota -g user_grace_command=edquota -t -u sort_mode=0 block_mode=1 show_grace=0 email_msg=Disk usage for user ${USER} on filesystem ${FS} has reached ${PERCENT}% of the allowed quota. ${USED} of disk space is being used, out of a maximum of ${QUOTA}. quota/edit_user_quota.cgi0100755000567100000120000000527710254720524015567 0ustar jcameronwheel#!/usr/local/bin/perl # edit_user_quota.cgi # Display a form for editing the quotas for a user on some filesystem require './quota-lib.pl'; &ReadParse(); $u = $in{'user'}; $fs = $in{'filesys'}; &can_edit_user($u) || &error(&text('euser_eallowus', $u)); $access{'ro'} && &error(&text('euser_eallowus', $u)); &can_edit_filesys($fs) || &error($text{'euser_eallowfs'}); &ui_print_header(undef, $text{'euser_title'}, "", "edit_user_quota"); @quot = &user_quota($u, $fs); $first = (@quot == 0); $bsize = &block_size($fs); $fsbsize = &block_size($fs, 1); print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
",&text('euser_quotas', &html_escape($u), $fs),"
\n"; if (!$first) { if ($bsize) { print " ", "\n", } else { print " ", "\n", } } print "\n"; "a_input("sblocks", $quot[1], $bsize); print "\n"; "a_input("hblocks", $quot[2], $bsize); if ($access{'diskspace'}) { ($binfo, $finfo) = &filesystem_info($fs, undef, undef, $fsbsize); print "\n"; print "\n"; } print "
$text{'euser_kused'}",&nice_size($quot[0]*$bsize),"
$text{'euser_bused'}$quot[0]
",$bsize ? $text{'euser_sklimit'} : $text{'euser_sblimit'},"
",$bsize ? $text{'euser_hklimit'} : $text{'euser_hblimit'},"
",$bsize ? $text{'euser_sdisk'} : $text{'euser_bdisk'},"$binfo
\n"; if (!$first) { print "\n", } print "\n"; "a_input("sfiles", $quot[4]); print "\n"; "a_input("hfiles", $quot[5]); if ($access{'diskspace'}) { print "\n"; print "\n"; } print "
$text{'euser_fused'} $quot[3]
$text{'euser_sflimit'}
$text{'euser_hflimit'}
$text{'euser_fdisk'}$finfo
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; if ($in{'source'}) { &ui_print_footer("user_filesys.cgi?user=".&urlize($u), $text{'euser_freturn'}); } else { &ui_print_footer("list_users.cgi?dir=".&urlize($fs), $text{'euser_ureturn'}); } quota/acl_security.pl0100644000567100000120000001522710223140527014716 0ustar jcameronwheel require 'quota-lib.pl'; # acl_security_form(&options) # Output HTML for editing security options for the quota module sub acl_security_form { local $groups = "as_supported() >= 2; print " $text{'acl_fss'}\n"; print "\n"; printf " %s\n", $_[0]->{'filesys'} eq '*' ? 'checked' : '', $text{'acl_fall'}; printf " %s
\n", $_[0]->{'filesys'} eq '*' ? '' : 'checked', $text{'acl_fsel'}; print " \n"; print " $text{'acl_ro'} \n"; printf " $text{'yes'}\n", $_[0]->{'ro'} ? "checked" : ""; printf " $text{'no'} \n", $_[0]->{'ro'} ? "" : "checked"; print "
\n"; print " $text{'acl_quotaon'} \n"; printf " $text{'yes'}\n", $_[0]->{'enable'} ? "checked" : ""; printf " $text{'no'}\n", $_[0]->{'enable'} ? "" : "checked"; print "$text{'acl_quotanew'} \n"; printf " $text{'yes'}\n", $_[0]->{'default'} ? "checked" : ""; printf " $text{'no'} \n", $_[0]->{'default'} ? "" : "checked"; print " $text{'acl_ugrace'} \n"; printf " $text{'yes'}\n", $_[0]->{'ugrace'} ? "checked" : ""; printf " $text{'no'}\n", $_[0]->{'ugrace'} ? "" : "checked"; print "$text{'acl_vtotal'} \n"; printf " $text{'yes'}\n", $_[0]->{'diskspace'} ? "checked" : ""; printf " $text{'no'} \n", $_[0]->{'diskspace'} ? "" : "checked"; print " $text{'acl_maxblocks'} \n"; printf " %s\n", $_[0]->{'maxblocks'} ? '' : 'checked', $text{'acl_unlimited'}; printf "\n", $_[0]->{'maxblocks'} ? 'checked' : ''; print "\n"; print "$text{'acl_maxfiles'} \n"; printf " %s\n", $_[0]->{'maxfiles'} ? '' : 'checked', $text{'acl_unlimited'}; printf "\n", $_[0]->{'maxfiles'} ? 'checked' : ''; print " \n"; print " $text{'acl_email'} \n"; printf " $text{'yes'}\n", $_[0]->{'email'} ? "checked" : ""; printf " $text{'no'}\n", $_[0]->{'email'} ? "" : "checked"; if ($groups) { print "$text{'acl_ggrace'} \n"; printf " $text{'yes'}\n", $_[0]->{'ggrace'} ? "checked" : ""; printf " $text{'no'}\n", $_[0]->{'ggrace'} ? "" : "checked"; } print "\n"; print "
\n"; print " $text{'acl_uquota'}", " \n"; printf " $text{'acl_uall'}
\n", $_[0]->{'umode'} == 0 ? "checked" : ""; printf " $text{'acl_uonly'}\n", $_[0]->{'umode'} == 1 ? "checked" : ""; printf " %s
\n", $_[0]->{'umode'} == 1 ? $_[0]->{'users'} : "", &user_chooser_button("ucan", 1); printf " $text{'acl_uexcept'}\n", $_[0]->{'umode'} == 2 ? "checked" : ""; printf " %s
\n", $_[0]->{'umode'} == 2 ? $_[0]->{'users'} : "", &user_chooser_button("ucannot", 1); printf " $text{'acl_ugroup'}\n", $_[0]->{'umode'} == 3 ? "checked" : ""; printf " %s
\n", $_[0]->{'umode'} == 3 ? scalar(getgrgid($_[0]->{'users'})) : "", &group_chooser_button("upri", 0); printf " $text{'acl_uuid'}\n", $_[0]->{'umode'} == 4 ? "checked" : ""; printf " -\n", $_[0]->{'umode'} == 4 ? $_[0]->{'umin'} : ""; printf " \n", $_[0]->{'umode'} == 4 ? $_[0]->{'umax'} : ""; if ($groups) { print "
\n"; print " $text{'acl_gquota'}", " \n"; printf "$text{'acl_gall'}
\n", $_[0]->{'gmode'} == 0 ? "checked" : ""; printf "$text{'acl_gnone'}
\n", $_[0]->{'gmode'} == 3 ? "checked" : ""; printf "$text{'acl_gonly'}\n", $_[0]->{'gmode'} == 1 ? "checked" : ""; printf " %s
\n", $_[0]->{'gmode'} == 1 ? $_[0]->{'groups'} : "", &group_chooser_button("gcan", 1); printf "$text{'acl_gexcept'}\n", $_[0]->{'gmode'} == 2 ? "checked" : ""; printf " %s \n", $_[0]->{'gmode'} == 2 ? $_[0]->{'groups'} : "", &group_chooser_button("gcannot", 1); } } # acl_security_save(&options) # Parse the form for security options for the quota module sub acl_security_save { if ($in{'filesys_def'}) { $_[0]->{'filesys'} = "*"; } else { $_[0]->{'filesys'} = join(" ", split(/\0/, $in{'filesys'})); } $_[0]->{'ro'} = $in{'ro'}; $_[0]->{'umode'} = $in{'umode'}; $_[0]->{'users'} = $in{'umode'} == 0 ? "" : $in{'umode'} == 1 ? $in{'ucan'} : $in{'umode'} == 2 ? $in{'ucannot'} : $in{'umode'} == 3 ? scalar(getgrnam($in{'upri'})) : ""; $_[0]->{'umin'} = $in{'umin'}; $_[0]->{'umax'} = $in{'umax'}; $_[0]->{'gmode'} = $in{'gmode'}; $_[0]->{'groups'} = $in{'gmode'} == 0 ? "" : $in{'gmode'} == 1 ? $in{'gcan'} : $in{'gcannot'}; $_[0]->{'enable'} = $in{'enable'}; $_[0]->{'default'} = $in{'default'}; $_[0]->{'email'} = $in{'email'}; $_[0]->{'ugrace'} = $in{'ugrace'}; $_[0]->{'ggrace'} = $in{'ggrace'}; $_[0]->{'diskspace'} = $in{'diskspace'}; $_[0]->{'maxblocks'} = $in{'maxblocks_def'} ? undef : $in{'maxblocks'}; $_[0]->{'maxfiles'} = $in{'maxfiles'}; } quota/useradmin_update.pl0100644000567100000120000000455210205074433015562 0ustar jcameronwheel do 'quota-lib.pl'; # useradmin_create_user(&details) # Sets quotas on chosen filesystems sub useradmin_create_user { local ($anysync) = grep { /^sync_/ } (keys %config); return if (!$anysync); local ($k, $fs, $i, %fslist); foreach $fs (&list_filesystems()) { if ($fs->[4] && $fs->[5]) { $fslist{$fs->[0]}++; } } foreach $k (keys %config) { if ($k =~ /^sync_(\S+)$/ && $fslist{$1}) { # found a filesystem to set quotas on $fs = $1; @quot = split(/\s+/, $config{$k}); &edit_user_quota($_[0]->{'user'}, $fs, @quot); } } } # useradmin_delete_user(&details) # Zero the quotas of a deleted user sub useradmin_delete_user { foreach $fs (&list_filesystems()) { if ($fs->[4] && $fs->[5]) { $fslist{$fs->[0]}++; } } $n = &user_filesystems($_[0]->{'user'}); for($i=0; $i<$n; $i++) { $f = $filesys{$i,'filesys'}; if ($fslist{$f}) { # user has quota, and filesystem is local &edit_user_quota($_[0]->{'user'}, $f, 0, 0, 0, 0); } } } # useradmin_modify_user(&details) # Quotas are stored by UID, so no need to change anything # when a username changes. sub useradmin_modify_user { # XXX should change if UID changes? } # useradmin_create_group(&details) # Sets quotas on chosen filesystems sub useradmin_create_group { local ($anysync) = grep { /^gsync_/ } (keys %config); return if (!$anysync); return if (!defined(&edit_group_quota)); local ($k, $fs, $i, %fslist); foreach $fs (&list_filesystems()) { if ($fs->[4] && $fs->[5]) { $fslist{$fs->[0]}++; } } foreach $k (keys %config) { if ($k =~ /^gsync_(\S+)$/ && $fslist{$1}) { # found a filesystem to set quotas on $fs = $1; @quot = split(/\s+/, $config{$k}); &edit_group_quota($_[0]->{'group'}, $fs, @quot); } } } # useradmin_delete_group(&details) # Zero the quotas of a deleted group sub useradmin_delete_group { return if (!defined(&edit_group_quota)); foreach $fs (&list_filesystems()) { if ($fs->[4] && $fs->[5]) { $fslist{$fs->[0]}++; } } $n = &group_filesystems($_[0]->{'group'}); for($i=0; $i<$n; $i++) { $f = $filesys{$i,'filesys'}; if ($fslist{$f}) { # group has quota, and filesystem is local &edit_group_quota($_[0]->{'group'}, $f, 0, 0, 0, 0); } } } # useradmin_modify_group(&details) # Quotas are stored by UID, so no need to change anything # when a group name changes. sub useradmin_modify_group { return if (!defined(&edit_group_quota)); # XXX should change if UID changes? } 1; quota/edgrace.pl0100755000567100000120000000074610201373404013623 0ustar jcameronwheel#!/usr/local/bin/perl # edgrace.pl # Run by edquota to edit the grace times for some filesystem require './quota-lib.pl'; $fs = $ENV{'QUOTA_FILESYS'}; $bt = $ENV{'QUOTA_BTIME'}; $bu = $ENV{'QUOTA_BUNITS'}; $ft = $ENV{'QUOTA_FTIME'}; $fu = $ENV{'QUOTA_FUNITS'}; $f = $ARGV[0]; open(FILE, $f); while() { $qdata .= $_; } close(FILE); $nqdata = &edit_grace_file($qdata, $fs, $bt, $bu, $ft, $fu); &open_tempfile(FILE, "> $f"); &print_tempfile(FILE, $nqdata); &close_tempfile(FILE); quota/config.info.es0100644000567100000120000000315510312732320014415 0ustar jcameronwheelline1=Opciones configurables,11 display_max=Máximo número de usuario o grupos a mhttps://localhost:10000/translator/module_config_edit.cgi?r=en&a=quota&t=esostrar,0 threshold_pc=Porcentaje por encima del cual se subrayará la cuota usada,3,No mostrar sort_mode=Clasificar usuarios y grupo por,1,0-Bloques usados,2-Nombre,1-Orden de repquota block_mode=Mostrar cuotas en,1,1-Kilobytes (Si es posible),0-Bloques email_msg=Mensaje de email para los usuarios que sobrepasen su cuota,9,80,5,\t email_subject=Asunto del mensaje de email,3,Por defecto line2=Configuración del sistema,11 show_grace=¿Mostrar tiempos de gracia si están disponibles?,1,1-Sí,0-No user_repquota_command=Comando para listar usuarios en un sistema de archivos,0 group_repquota_command=Comando para listar grupos en un sistema de archivos,0 user_edquota_command=Comando para editar cuota de usuario,0 group_edquota_command=Comando para editar cuota de grupo,0 user_quota_command=Comando para revisar cuota de un usuario,0 group_quota_command=Comando para revisar cuota de un grupo,0 user_copy_command=Comando para copiar cuota de un usuario,0 group_copy_command=Comando para copiar cuota de un grupo,0 user_quotaon_command=Comando para activar cuotas de usuario,0 group_quotaon_command=Comando para activar cuotas de grupo,0 user_quotaoff_command=Comando para desactivar cuotas de usuario,0 group_quotaoff_command=Comando para desactivar cuotas de grupo,0 quotacheck_command=Comando para revisar cuotas,0 user_grace_command=Comando para editar tiempo de gracia de usuario,0 group_grace_command=Comando para editar tiempos de gracia de grupo,0 quota/config.info.it0100644000567100000120000000300310265406645014431 0ustar jcameronwheelline1=Opzioni configurabili,11 display_max=Massimo numero di utenti o gruppi da visualizzare,0 threshold_pc=Evidenziare le quote usate che raggiungono la soglia percentuale del,3,Non visualizzare sort_mode=Ordina gli utenti e gruppi per,1,0-Blocchi usati,2-Nome,1-Ordine da repquota block_mode=Visualizza quote in,1,1-Kilobyte (dove possibile),0-Blocchi email_msg=Messaggio email per gli utenti che oltrepassano la quota,9,80,5,\t email_subject=Soggetto per il messaggio email,3,Default line2=Configurazione di sistema,11 show_grace=Visualizza i tempi di dilazione se disponibili?,1,1-Si,0-No user_repquota_command=Comando per elencare gli utenti su un filesystem,0 group_repquota_command=Comando per elencare i gruppi su un filesystem,0 user_edquota_command=Comando per modificare le quote utenti,0 group_edquota_command=Comando per modificare una quota gruppo,0 user_quota_command=Comando per esaminare una quota utente,0 group_quota_command=Comando per esaminare una quota gruppo,0 user_copy_command=Comando per copiare le quote utenti,0 group_copy_command=Comando per copiare una quota gruppo,0 user_quotaon_command=Comando per attivare le quote utente,0 group_quotaon_command=Comando per attivare le quote gruppo,0 user_quotaoff_command=Comando per disattivare le quote utente,0 group_quotaoff_command=Comando per disattivare le quote gruppo,0 quotacheck_command=Comando per esaminare le quote,0 user_grace_command=Comando per modificare i tempi di dilazione,0 group_grace_command=Comando per modificare i tempi di dilazione gruppo,0 quota/save_user_quota.cgi0100755000567100000120000000241710254721651015573 0ustar jcameronwheel#!/usr/local/bin/perl # save_user_quota.cgi # Update the quota for some user require './quota-lib.pl'; &ReadParse(); $bsize = &block_size($in{'filesys'}); &can_edit_user($in{'user'}) || &error($text{'suser_euser'}); $access{'ro'} && &error($text{'suser_euser'}); &can_edit_filesys($in{'filesys'}) || &error($text{'suser_efs'}); if ($bsize) { $in{'sblocks'} = "a_parse("sblocks", $bsize); $in{'hblocks'} = "a_parse("hblocks", $bsize); } !$access{'maxblocks'} || !$in{'sblocks_def'} && $in{'sblocks'} <= $access{'maxblocks'} && !$in{'hblocks_def'} && $in{'hblocks'} <= $access{'maxblocks'} || &error(&text('suser_emaxblocks', $access{'maxblocks'})); !$access{'maxfiles'} || !$in{'sfiles_def'} && $in{'sfiles'} <= $access{'maxfiles'} && !$in{'hfiles_def'} && $in{'hfiles'} <= $access{'maxfiles'} || &error(&text('suser_emaxfiles', $access{'maxfiles'})); &edit_user_quota($in{'user'}, $in{'filesys'}, $in{'sblocks_def'} ? 0 : $in{'sblocks'}, $in{'hblocks_def'} ? 0 : $in{'hblocks'}, $in{'sfiles_def'} ? 0 : $in{'sfiles'}, $in{'hfiles_def'} ? 0 : $in{'hfiles'}); &webmin_log("save", "user", $in{'user'}, \%in); if ($in{'source'}) { &redirect("user_filesys.cgi?user=".&urlize($in{'user'})); } else { &redirect("list_users.cgi?dir=".&urlize($in{'filesys'})); } quota/copy_user.cgi0100755000567100000120000000245410113561761014375 0ustar jcameronwheel#!/usr/local/bin/perl # copy_user.cgi # Copy some user's quota to a number of others require './quota-lib.pl'; &ReadParse(); $whatfailed = $text{'cuser_efail'}; $access{'filesys'} eq "*" || &error($text{'cuser_ecannot'}); &can_edit_user($in{'user'}) || &error($text{'cuser_euallow'}); $access{'ro'} && &error($text{'cuser_euallow'}); if ($in{'dest'} == 0) { # Copy to all users setpwent(); while(@uinfo = getpwent()) { push(@copyto, $uinfo[0]); } endpwent() if ($gconfig{'os_type'} ne 'hpux'); } elsif ($in{'dest'} == 1) { # Copy to selected users @copyto = split(/\s+/, $in{'users'}); } elsif ($in{'dest'} == 2) { # Copy to members of groups setpwent(); while(@uinfo = getpwent()) { $ingroup{$uinfo[3]} .= "$uinfo[0] "; } endpwent() if ($gconfig{'os_type'} ne 'hpux'); foreach $g (split(/\s+/, $in{'groups'})) { @ginfo = getgrnam($g); push(@copyto, split(/\s+/, $ingroup{$ginfo[2]})); push(@copyto, split(/\s+/, $ginfo[3])); } } @copyto = &unique(@copyto); @copyto = grep { $_ ne $in{'user'} } @copyto; if (!@copyto) { &error($text{'cuser_enouser'}); } foreach $c (@copyto) { &can_edit_user($c) || &error(&text('cuser_eallowto', $c)); } # Do the copy ©_user_quota($in{'user'}, @copyto); &webmin_log("copy", "user", $in{'user'}, \%in); &redirect("user_filesys.cgi?user=$in{'user'}"); quota/list_groups.cgi0100755000567100000120000001260210255724411014733 0ustar jcameronwheel#!/usr/local/bin/perl # list_groups.cgi # Lists all the groups with quotas on some filesystem require './quota-lib.pl'; &ReadParse(); $f = $in{'dir'}; $whatfailed = $text{'lgroups_failed'}; &can_edit_filesys($f) || &error($text{'lgroups_eallow'}); $form = 0; # List quotas &ui_print_header(undef, $text{'lgroups_title'}, "", "list_groups"); $n = &filesystem_groups($f); $bsize = &block_size($f); $fsbsize = &block_size($f); if ($n > $config{'display_max'} && !$access{'ro'}) { print "",&text('lgroups_toomany', $f),"
\n"; } elsif ($n) { print &ui_subheading(&text('lgroups_quotas', $f)); &show_buttons(); print "\n"; print "\n"; ($binfo, $finfo) = &filesystem_info($f, \%group, $n, $fsbsize); $cols1 = 3 + ($config{'show_grace'} ? 1 : 0); $cols2 = 3 + ($config{'show_grace'} ? 1 : 0); print "\n"; print "\n"; print "\n"; print "\n"; print "\n" if ($config{'show_grace'}); print "\n"; print "\n"; print "\n" if ($config{'show_grace'}); print "\n"; @order = (0 .. $n-1); if ($config{'sort_mode'} == 0) { @order = sort { $group{$b,'ublocks'} <=> $group{$a,'ublocks'} } @order; } elsif ($config{'sort_mode'} == 2) { @order = sort { $group{$a,'group'} cmp $group{$b,'group'} } @order; } foreach $i (@order) { next if (!&can_edit_group($group{$i,'group'})); print "\n"; if ($access{'ro'}) { print "\n"; } else { print "\n"; } local $ublocks = $group{$i,'ublocks'}; if ($bsize) { $ublocks = &nice_size($ublocks*$bsize); } if ($group{$i,'hblocks'} && $group{$i,'ublocks'} > $group{$i,'hblocks'}) { print "\n"; } elsif ($group{$i,'sblocks'} && $group{$i,'ublocks'} > $group{$i,'sblocks'}) { print "\n"; } else { print "\n"; } &print_limit($group{$i,'sblocks'}, 0); &print_limit($group{$i,'hblocks'}, 0); &print_grace($group{$i,'gblocks'}) if ($config{'show_grace'}); print "\n"; &print_limit($group{$i,'sfiles'}, 1); &print_limit($group{$i,'hfiles'}, 1); &print_grace($group{$i,'gfiles'}) if ($config{'show_grace'}); print "\n"; } print "
\n"; if ($access{'diskspace'}) { print "",$bsize ? $text{'lgroups_kbs'} : $text{'lgroups_blocks'}, " ($binfo)\n"; } print " \n"; if ($access{'diskspace'}) { print "$text{'lgroups_files'} ($finfo)\n" } print "
$text{'lgroups_group'}$text{'lgroups_used'} $text{'lgroups_soft'}$text{'lgroups_hard'}$text{'lusers_grace'}$text{'lgroups_used'} $text{'lgroups_soft'}$text{'lgroups_hard'}$text{'lusers_grace'}
$group{$i,'group'}", "$group{$i,'group'}", &html_escape($ublocks),"", &html_escape($ublocks),"",&html_escape($ublocks),"$group{$i,'ufiles'}
\n"; } else { print "",&text('lgroups_noquota', $f),"
\n"; } &show_buttons(); if ($access{'default'}) { print "
\n"; print &text('lgroups_info', $text{'lusers_useradmin'}); print "

\n"; @dquot = split(/\s+/, $config{"gsync_$f"}); print "

\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$text{'lgroups_newgroup'}
\n"; print "
$text{'lusers_sblimit'} \n"; "a_input("sblocks", $dquot[0], $bsize); print "
$text{'lusers_hblimit'} \n"; "a_input("hblocks", $dquot[1], $bsize); print "
\n"; print "
$text{'lusers_sflimit'} \n"; "a_input("sfiles", $dquot[2]); print "
$text{'lusers_hflimit'} \n"; "a_input("hfiles", $dquot[3]); print "
\n"; print "
\n"; } &ui_print_footer("", $text{'lgroups_return'}); sub show_buttons { print "\n"; if (!$access{'ro'}) { print "\n"; print "\n"; print "\n"; print "\n"; $form++; } else { print "\n"; } if ($access{'ggrace'}) { print "\n"; print "\n"; print "\n"; $form++; } else { print "\n"; } print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print " ", &group_chooser_button("group", 0, $form),"
\n"; print "\n"; print "
\n"; print "
\n"; $form++; } quota/config-freebsd0100644000567100000120000000132510256466534014504 0ustar jcameronwheeluser_quotaoff_command=quotaoff -u user_quotaon_command=quotaon -u group_copy_command=edquota -g -p quotacheck_command=quotacheck user_quota_command=quota -v -u group_grace_command=edquota -t -g user_repquota_command=repquota -u -v user_edquota_command=edquota -u group_quotaoff_command=quotaoff -g group_quotaon_command=quotaon -g group_quota_command=quota -v -g user_copy_command=edquota -u -p group_repquota_command=repquota -g -v display_max=100 group_edquota_command=edquota -g user_grace_command=edquota -t -u sort_mode=0 block_mode=1 show_grace=0 email_msg=Disk usage for user ${USER} on filesystem ${FS} has reached ${PERCENT}% of the allowed quota. ${USED} of disk space is being used, out of a maximum of ${QUOTA}. quota/user_filesys.cgi0100755000567100000120000000632410176325316015104 0ustar jcameronwheel#!/usr/local/bin/perl # user_filesys.cgi # List all filesystems for which some user has quotas require './quota-lib.pl'; &ReadParse(); $u = $in{'user'}; &can_edit_user($u) || &error(&text('ufilesys_ecannot', $u)); &ui_print_header(undef, $text{'ufilesys_title'}, "", "user_filesys"); foreach $f (&list_filesystems()) { if ($f->[4]%2 && $f->[5] && &can_edit_filesys($f->[0])) { push(@fslist, $f->[0]); $fslist{$f->[0]}++; } } # Make sure all block sizes are the same $n = &user_filesystems($u); for($i=0; $i<$n; $i++) { $bsize = &block_size($filesys{$i,'filesys'}); if ($last_bsize && $last_bsize != $bsize) { $variable_bsize++; } } if ($n) { print &ui_subheading(&text('ufilesys_all', &html_escape($u))); print "\n"; print "\n"; $cols = 3 + ($config{'show_grace'} ? 1 : 0); if (!$variable_bsize) { print "\n"; } else { print "\n"; } print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n" if ($config{'show_grace'}); print "\n"; print "\n"; print "\n" if ($config{'show_grace'}); print "\n"; for($i=0; $i<$n; $i++) { $f = $filesys{$i,'filesys'}; $bsize = &block_size($f); print "\n"; if ($fslist{$f} && !$access{'ro'}) { print "\n"; } else { print "\n"; } if ($bsize) { print "\n"; } else { print "\n"; } &print_limit($filesys{$i,'sblocks'}); &print_limit($filesys{$i,'hblocks'}); &print_grace($filesys{$i,'gblocks'}) if ($config{'show_grace'}); print "\n"; &print_limit($filesys{$i,'sfiles'}, 1); &print_limit($filesys{$i,'hfiles'}, 1); &print_grace($filesys{$i,'gfiles'}) if ($config{'show_grace'}); print "\n"; } print "

$text{'ufilesys_space'}$text{'ufilesys_blocks'}$text{'ufilesys_files'}
$text{'ufilesys_fs'}$text{'ufilesys_used'} $text{'ufilesys_soft'}$text{'ufilesys_hard'}$text{'ufilesys_grace'}$text{'ufilesys_used'} $text{'ufilesys_soft'}$text{'ufilesys_hard'}$text{'ufilesys_grace'}
$f$f",&nice_size($filesys{$i,'ublocks'}*$bsize),"$filesys{$i,'ublocks'}$filesys{$i,'ufiles'}

\n"; } else { print "",&text('ufilesys_nouquota', $u),"

\n"; } if (!$access{'ro'}) { print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; if ($access{'filesys'} eq "*") { print "\n"; print "\n"; print "\n"; } print "
\n"; print "
\n"; print "
\n"; } &ui_print_footer("", $text{'ufilesys_return'}); quota/linux-lib.pl0100644000567100000120000004017310317100202014117 0ustar jcameronwheel# linux-lib.pl # Quota functions for all linux version # quotas_init() sub quotas_init { if (&has_command("quotaon") && &has_command("quotaoff")) { return undef; } else { return "The quotas package does not appear to be installed on ". "your system\n"; } } # quotas_supported() # Returns 1 for user quotas, 2 for group quotas or 3 for both sub quotas_supported { return 3; } # free_space(filesystem, [blocksize]) # Returns an array containing btotal, bfree, ftotal, ffree sub free_space { local(@out, @rv); $out = `df -k $_[0]`; $out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/; if ($_[1]) { push(@rv, int($1*1024/$_[1]), int($2*1024/$_[1])); } else { push(@rv, $1, $2); } $out = `df -i $_[0]`; $out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/; push(@rv, $1, $2); return @rv; } # quota_can(&mnttab, &fstab) # Can this filesystem type support quotas? # 0 = No quota support (or not turned on in /etc/fstab) # 1 = User quotas only # 2 = Group quotas only # 3 = User and group quotas sub quota_can { return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) + ($_[1]->[3] =~ /grpquota/ ? 2 : 0); } # quota_now(&mnttab, &fstab) # Are quotas currently active? # 0 = Not active # 1 = User quotas active # 2 = Group quotas active # 3 = Both active # Adding 4 means they cannot be turned off (such as for XFS) sub quota_now { local $rv = 0; local $dir = $_[0]->[0]; local %opts = map { $_, 1 } split(/,/, $_[0]->[3]); if ($_[0]->[2] eq "xfs") { # For XFS, assume enabled if setup in fstab $rv += 1 if ($opts{'quota'} || $opts{'usrquota'} || $opts{'uqnoenforce'}); $rv += 2 if ($opts{'grpquota'} || $opts{'gqnoenforce'}); return $rv + 4; } if ($_[0]->[4]%2 == 1) { # test user quotas if (-r "$dir/quota.user" || -r "$dir/aquota.user") { local $stout = &supports_status($dir, "user"); if ($stout =~ /is\s+(on|off)/) { # Can use output from -p mode if ($stout =~ /is\s+on/) { $rv += 1; } } else { # Fall back to testing by running quotaon $out = `$config{'user_quotaon_command'} $dir 2>&1`; if ($out =~ /Device or resource busy/i) { # already on.. $rv += 1; } elsif ($out =~ /Package not installed/i) { # No quota support! return 0; } else { # was off.. need to turn on again `$config{'user_quotaoff_command'} $dir 2>&1`; } } } } if ($_[0]->[4] > 1) { # test group quotas if (-r "$dir/quota.group" || -r "$dir/aquota.group") { local $stout = &supports_status($dir, "group"); if ($stout =~ /is\s+(on|off)/) { # Can use output from -p mode if ($stout =~ /is\s+on/) { $rv += 2; } } else { # Fall back to testing by running quotaon $out = `$config{'group_quotaon_command'} $dir 2>&1`; if ($out =~ /Device or resource busy/i) { # already on.. $rv += 2; } elsif ($out =~ /Package not installed/i) { # No quota support! return 0; } else { # was off.. need to turn on again `$config{'group_quotaoff_command'} $dir 2>&1`; } } } } return $rv; } # supports_status(dir, mode) sub supports_status { if (!defined($supports_status_cache{$_[0],$_[1]})) { local $stout = `$config{$_[1].'_quotaon_command'} -p $_[0] 2>&1`; $supports_status_cache{$_[0],$_[1]} = $stout =~ /is\s+(on|off)/ ? $stout : 0; } return $supports_status_cache{$_[0],$_[1]}; } # quotaon(filesystem, mode) # Activate quotas and create quota files for some filesystem. The mode can # be 1 for user only, 2 for group only or 3 for user and group sub quotaon { local($out, $qf, @qfile, $flags, $version); return if (&is_readonly_mode()); # Check which version of quota is being used $out = `quota -V 2>&1`; if ($out =~ /\s(\d+\.\d+)/) { $version = $1; } if ($_[1]%2 == 1) { # turn on user quotas local $qf = $version >= 2 ? "aquota.user" : "quota.user"; if (!-s "$_[0]/$qf") { # Setting up for the first time local $ok = 0; if (&has_command("convertquota") && $version >= 2) { # Try creating a quota.user file and converting it &open_tempfile(QUOTAFILE, ">>$_[0]/quota.user", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, "$_[0]/quota.user"); &system_logged("convertquota -u / 2>&1"); $ok = 1 if (!$?); &unlink_file("$_[0]/quota.user"); } if (!$ok) { # Try to create an [a]quota.user file &open_tempfile(QUOTAFILE, ">>$_[0]/$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, "$_[0]/$qf"); &run_quotacheck($_[0]) || &run_quotacheck($_[0], "-u -f") || &run_quotacheck($_[0], "-u -f -m") || &run_quotacheck($_[0], "-u -f -m -c"); } } $out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { # turn on group quotas local $qf = $version >= 2 ? "aquota.group" : "quota.group"; if (!-s "$_[0]/$qf") { # Setting up for the first time local $ok = 0; if (!$ok && &has_command("convertquota") && $version >= 2) { # Try creating a quota.group file and converting it &open_tempfile(QUOTAFILE, ">>$_[0]/quota.group", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, "$_[0]/quota.group"); &system_logged("convertquota -g / 2>&1"); $ok = 1 if (!$?); &unlink_file("$_[0]/quota.group"); } if (!$ok) { # Try to create an [a]quota.group file &open_tempfile(QUOTAFILE, ">>$_[0]/$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, "$_[0]/$qf"); &run_quotacheck($_[0]) || &run_quotacheck($_[0], "-u -f") || &run_quotacheck($_[0], "-u -f -m") || &run_quotacheck($_[0], "-u -f -m -c"); } } $out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } # run_quotacheck(filesys, args) sub run_quotacheck { local $out =&backquote_logged("$config{'quotacheck_command'} $_[1] $_[0] 2>&1"); return $? || $out =~ /cannot remount|please stop/i ? 0 : 1; } # quotaoff(filesystem, mode) # Turn off quotas for some filesystem sub quotaoff { return if (&is_readonly_mode()); local($out); if ($_[1]%2 == 1) { $out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { $out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } # user_filesystems(user) # Fills the array %filesys with details of all filesystem some user has # quotas on sub user_filesystems { return &parse_quota_output("$config{'user_quota_command'} ".quotemeta($_[0])); } # group_filesystems(user) # Fills the array %filesys with details of all filesystem some group has # quotas on sub group_filesystems { return &parse_quota_output("$config{'group_quota_command'} ".quotemeta($_[0])); } sub parse_quota_output { local($n, $_, %mtab); %mtab = &get_mtab_map(); open(QUOTA, "$_[0] |"); $n=0; while() { chop; if (/^(Disk|\s+Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line $filesys{$n,'filesys'} = $mtab{$1}; local $nl = ; $nl =~/^\s+(\S+)\s+(\S+)\s+(\S+)(.{8}\s+)(\S+)\s+(\S+)\s+(\S+)(.*)/ || /^.{15}.(.{7}).(.{7}).(.{7})(.{8}.)(.{7}).(.{7}).(.{7})(.*)/; $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'gblocks'} = $4; $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'gfiles'} = $8; $filesys{$n,'gblocks'} = &trunc_space($filesys{$n,'gblocks'}); $filesys{$n,'gfiles'} = &trunc_space($filesys{$n,'gfiles'}); $n++; } elsif (/^\s*(\S+)\s+(\S+)\s+(\S+)\s+(\S+)(.{8}\s+)(\S+)\s+(\S+)\s+(\S+)(.*)/ || /^(.{15}).(.{7}).(.{7}).(.{7})(.{8}.)(.{7}).(.{7}).(.{7})(.*)/) { # Single quota line $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'gblocks'} = $5; $filesys{$n,'ufiles'} = int($6); $filesys{$n,'sfiles'} = int($7); $filesys{$n,'hfiles'} = int($8); $filesys{$n,'gfiles'} = $9; $dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g; $filesys{$n,'filesys'} = $mtab{$dev}; $filesys{$n,'gblocks'} = &trunc_space($filesys{$n,'gblocks'}); $filesys{$n,'gfiles'} = &trunc_space($filesys{$n,'gfiles'}); $n++; } } close(QUOTA); return $n; } # filesystem_users(filesystem) # Fills the array %user with information about all users with quotas # on this filesystem. This may not be all users on the system.. sub filesystem_users { return &parse_repquota_output( "$config{'user_repquota_command'} $_[0]", "user"); } sub filesystem_groups { return &parse_repquota_output( "$config{'group_repquota_command'} $_[0]", "group"); } sub parse_repquota_output { local($rep, @rep, $n, $what, $u, @uinfo); $what = $_[1]; $rep = `$_[0] 2>&1`; if ($?) { return -1; } local $st = &supports_status($_[0], $what); if (!$st) { # Older system, need to build username map to identify truncation if ($what eq 'user') { setpwent(); while(@uinfo = getpwent()) { $hasu{$uinfo[0]}++; } endpwent(); } else { setgrent(); while(@uinfo = getgrent()) { $hasu{$uinfo[0]}++; } endgrent(); } } @rep = split(/\n/, $rep); @rep = @rep[3..$#rep]; local $nn = 0; local %already; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /^\s*(\S.*\S)\s+[\-\+]{2}\s+(\S+)\s+(\S+)\s+(\S+)(.{7})\s+(\S+)\s+(\S+)\s+(\S+)(.*)/ || $rep[$n] =~ /([^\-\s]\S*)\s*[\-\+]{2}(.{8})(.{8})(.{8})(.{7})(.{8})(.{6})(.{6})(.*)/) { $$what{$nn,$what} = $1; $$what{$nn,'ublocks'} = int($2); $$what{$nn,'sblocks'} = int($3); $$what{$nn,'hblocks'} = int($4); $$what{$nn,'gblocks'} = $5; $$what{$nn,'ufiles'} = int($6); $$what{$nn,'sfiles'} = int($7); $$what{$nn,'hfiles'} = int($8); $$what{$nn,'gfiles'} = $9; if (!$st && $$what{$nn,$what} !~ /^\d+$/ && !$hasu{$$what{$nn,$what}}) { # User/group name was truncated! Try to find him.. foreach $u (keys %hasu) { if (substr($u, 0, length($$what{$nn,$what})) eq $$what{$nn,$what}) { # found him.. $$what{$nn,$what} = $u; last; } } } next if ($already{$$what{$nn,$what}}++); # skip dupe users $$what{$nn,'gblocks'} = &trunc_space($$what{$nn,'gblocks'}); $$what{$nn,'gfiles'} = &trunc_space($$what{$nn,'gfiles'}); $nn++; } } return $nn; } # edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_quota_file { local($rv, $line, %mtab, @m, @line); %mtab = &get_mtab_map(); @line = split(/\n/, $_[0]); for(my $i=0; $i<@line; $i++) { if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{&resolve_links("$1")} eq $_[1]) { # Found old-style lines to change $rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n"; $line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/; $rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n"; } elsif ($line[$i] =~ /^device\s+(\S+)\s+\((\S+)\):/i && $2 eq $_[1]) { # Even newer-style line to change $rv .= "$line[$i]\n"; $line[++$i] =~ /^used\s+(\S+),\s+limits:\s+soft=(\d+)\s+hard=(\d+)/i; $rv .= "Used $1, limits: soft=$_[2] hard=$_[3]\n"; $line[++$i] =~ /^used\s+(\S+) inodes,\s+limits:\s+soft=(\d+)\s+hard=(\d+)/i; $rv .= "Used $1 inodes, limits: soft=$_[4] hard=$_[5]\n"; } elsif ($line[$i] =~ /^\s+(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)$/ && $mtab{&resolve_links("$1")} eq $_[1]) { # New-style line to change $rv .= " $1 $2 $_[2] $_[3] $5 $_[4] $_[5]\n"; } else { # Leave this line alone $rv .= "$line[$i]\n"; } } return $rv; } # quotacheck(filesystem, mode) # Runs quotacheck on some filesystem sub quotacheck { local $out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1"); if ($?) { # Try with the -f and -m options if ($_[1] == 1) { $out = &backquote_logged("$config{'quotacheck_command'} -u -f -m $_[0] 2>&1"); } else { $out = &backquote_logged("$config{'quotacheck_command'} -g -f -m $_[0] 2>&1"); } if ($?) { # Try with the -F option if ($_[1] == 1) { $out = &backquote_logged("$config{'quotacheck_command'} -u -F $_[0] 2>&1"); } else { $out = &backquote_logged("$config{'quotacheck_command'} -g -F $_[0] 2>&1"); } } return $out if ($?); } return undef; } # copy_user_quota(user, [user]+) # Copy the quotas for some user to many others sub copy_user_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'user_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # copy_group_quota(group, [group]+) # Copy the quotas for some group to many others sub copy_group_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'group_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # get_user_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_user_grace { return &parse_grace_output($config{'user_grace_command'}, $_[0]); } # get_group_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_group_grace { return &parse_grace_output($config{'group_grace_command'}, $_[0]); } # default_grace() # Returns 0 if grace time can be 0, 1 if zero grace means default sub default_grace { return 0; } sub parse_grace_output { local(@rv, %mtab, @m); %mtab = &get_mtab_map(); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$_[0] 2>&1 |"); while() { if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{&resolve_links("$1")} eq $_[1]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } elsif (/^\s+(\S+)\s+(\d+)(\S+)\s+(\d+)(\S+)/ && $mtab{&resolve_links("$1")} eq $_[1]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } elsif (/^device\s+(\S+)\s+\((\S+)\):/i && $2 eq $_[1]) { if ( =~ /^block\s+grace:\s+(\S+)\s+(\S+)\s+inode\s+grace:\s+(\S+)\s+(\S+)/i) { @rv = ($1, $name_to_unit{$2}, $3, $name_to_unit{$4}); last; } } } close(GRACE); return @rv; } # edit_grace_file(data, filesystem, btime, bunits, ftime, funits) sub edit_grace_file { local($rv, $line, @m, %mtab, @line); %mtab = &get_mtab_map(); @line = split(/\n/, $_[0]); for(my $i=0; $i<@line; $i++) { $line = $line[$i]; if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{&resolve_links("$1")} eq $_[1]) { # replace this line $line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}"; } elsif ($line =~ /^\s+(\S+)\s+(\d+)(\S+)\s+(\d+)(\S+)/ && $mtab{&resolve_links("$1")} eq $_[1]) { # replace new-style line $line = " $1 $_[2]$unit_to_name{$_[3]} $_[4]$unit_to_name{$_[5 ]}"; } elsif ($line =~ /^device\s+(\S+)\s+\((\S+)\):/i && $2 eq $_[1]) { # replace even newer-style line $rv .= "$line\n"; $line = "Block grace: $_[2] $unit_to_name{$_[3]} Inode grace: $_[4] $unit_to_name{$_[5]}"; $i++; } $rv .= "$line\n"; } return $rv; } # grace_units() # Returns an array of possible units for grace periods sub grace_units { return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'}, $text{'grace_days'}); } # fs_block_size(dir, device, filesystem) # Returns the size of blocks on some filesystem, or undef if unknown. # Consult the dumpe2fs command where possible. sub fs_block_size { if ($_[2] eq "ext2" || $_[2] eq "ext3") { return 1024; # This code isn't needed, because the quota block size is # not the same as the filesystem block size!! #if (&has_command("dumpe2fs")) { # local $out = `dumpe2fs -h $_[1] 2>&1`; # if (!$? && $out =~ /block size:\s+(\d+)/i) { # return $1; # } # } } elsif ($_[0] eq "xfs") { return 1024; } return undef; } %name_to_unit = ( "second", 0, "seconds", 0, "minute", 1, "minutes", 1, "hour", 2, "hours", 2, "day", 3, "days", 3, ); foreach $k (keys %name_to_unit) { $unit_to_name{$name_to_unit{$k}} = $k; } # Returns a hash mapping mount points to devices sub get_mtab_map { local $mm = $module_info{'usermin'} ? "usermount" : "mount"; &foreign_require($mm, "$mm-lib.pl"); local ($m, %mtab); foreach $m (&foreign_call($mm, "list_mounted", 1)) { if ($m->[3] =~ /loop=([^,]+)/) { $mtab{&resolve_links("$1")} = $m->[0]; } else { $mtab{&resolve_links($m->[1])} = $m->[0]; } } return %mtab; } 1; quota/config.info.zh_TW.Big50100644000567100000120000000126710067670062015643 0ustar jcameronwheeldisplay_max=Åã¥Üªº³Ì¤j¨Ï¥ÎªÌ©Î¸s²Õ¼Æ¥Ø,0 user_repquota_command=¦C¥XÀɮרt²Î¤W¨Ï¥ÎªÌªº«ü¥O,0 group_repquota_command=¦C¥XÀɮרt²Î¤W¸s²Õªº«ü¥O,0 user_edquota_command=½s¿è¨Ï¥ÎªÌ°tÃBªº«ü¥O,0 group_edquota_command=½s¿è¸s²Õ°tÃBªº«ü¥O,0 user_quota_command=Àˬd¨Ï¥ÎªÌ°tÃBªº«ü¥O,0 group_quota_command=Àˬd¸s²Õ°tÃBªº«ü¥O,0 user_copy_command=«þ¨©¨Ï¥ÎªÌ°tÃBªº«ü¥O,0 group_copy_command=«þ¨©¸s²Õ°tÃBªº«ü¥O,0 user_quotaon_command=±Ò°Ê¨Ï¥ÎªÌ°tÃBªº«ü¥O,0 group_quotaon_command±Ò°Ê¸s²Õ°tÃBªº«ü¥O,0 user_quotaoff_command=Ãö³¬¨Ï¥ÎªÌ°tÃBªº«ü¥O,0 group_quotaoff_command=Ãö³¬¸s²Õ°tÃBªº«ü¥O,0 quotacheck_command=Àˬd°tÃBªº«ü¥O,0 user_grace_command=½s¿è¨Ï¥ÎªÌ¼e­­®É¶¡ªº«ü¥O,0 group_grace_command=½s¿è¸s²Õ¼e­­®É¶¡ªº«ü¥O,0 quota/module.info0100644000567100000120000000151010317100730014017 0ustar jcameronwheeldesc_ko_KR.euc=µð½ºÅ© ÇÒ´ç risk=low medium high desc_ru_SU=äÉÓËÏ×ÙÅ Ë×ÏÔÙ desc_zh_TW.Big5=ºÏºÐ°tÃB desc_pl=Quota na dyskach desc_de=Festplatten-Quotas name=Quota desc_zh_CN=´ÅÅÌÏÞ¶î desc_pt=Quotas de Disco category=system desc_tr=Disk Kotalarý os_support=solaris redhat-linux mandrake-linux slackware-linux debian-linux suse-linux united-linux hpux freebsd open-linux unixware turbo-linux openbsd corel-linux cobalt-linux msc-linux generic-linux gentoo-linux irix netbsd macos trustix-linux sol-linux coherent-linux desc=Disk Quotas desc_es=Cuotas de Disco desc_sv=Diskquota desc_fr=Quotas des Disques desc_ja_JP.euc=¥Ç¥£¥¹¥¯¤Î³ä¤êÅö¤Æ depends=mount desc_ru_RU=Äèñêîâûå êâîòû desc_ca=Quotes de Disc desc_nl=Harddisk Quota longdesc=Setup and edit user or group disk quotas for local filesystems. readonly=1 desc_it=Quote Disco version=1.231 quota/unixware-lib.pl0100744000567100000120000001462610256142374014651 0ustar jcameronwheel# unixware-lib.pl # Quota functions for UnixWare 7 # quotas_init() sub quotas_init { return undef; } # quotas_supported() # Returns 1 for user quotas, 2 for group quotas or 3 for both sub quotas_supported { return 1; } # free_space(filesystem) # Returns an array containing btotal, bfree, ftotal, ffree sub free_space { local($out); $out = `df -t $_[0]`; $out =~ /(\d+) blocks\s+(\d+) files\n.*\s+(\d+) blocks\s+(\d+) files/; return ($3, $1, $4, $2); } # quota_can(&mnttab, &fstab) # Can this filesystem type support quotas? # 0 = No quota support (or not turned on in /etc/fstab) # 1 = User quotas only # 2 = Group quotas only # 3 = User and group quotas sub quota_can { return $_[0]->[2] eq "ufs" || $_[0]->[2] eq "vxfs" ? 1 : 0; } # quota_now(&mnttab, &fstab) # Are quotas currently active? # 0 = Not active # 1 = User quotas active # 2 = Group quotas active # 3 = Both active sub quota_now { return $_[0]->[3] =~ /,quota/ || $_[0]->[3] =~ /^quota/ ? 1 : 0; } # filesystem_users(filesystem) # Fills the array %user with information about all users with quotas # on this filesystem. This may not be all users on the system.. sub filesystem_users { local($rep, @rep, $n, %hasu, $u); $rep = &backquote_logged("$config{'user_repquota_command'} $_[0] 2>&1"); if ($?) { return -1; } setpwent(); while(@uinfo = getpwent()) { $hasu{$uinfo[0]}++; } endpwent() if ($gconfig{'os_type'} ne 'hpux'); @rep = split(/\n/, $rep); @rep = @rep[3..$#rep]; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /(\S+)\s+..\s+(\d+)\s+(\d+)\s+(\d+).*(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{7})(.{7})(.{7}).{13}(.{7})(.{7})(.{7})/) { $user{$n,'user'} = $1; $user{$n,'ublocks'} = int($2); $user{$n,'sblocks'} = int($3); $user{$n,'hblocks'} = int($4); $user{$n,'ufiles'} = int($5); $user{$n,'sfiles'} = int($6); $user{$n,'hfiles'} = int($7); $user{$n,'user'} =~ s/^#//g; if ($user{$n,'user'} !~ /^\d+$/ && !$hasu{$user{$n,'user'}}) { # Username was truncated! Try to find him.. foreach $u (keys %hasu) { if (substr($u, 0, length($user{$n,'user'})) eq $user{$n,'user'}) { # found him.. $user{$n,'user'} = $u; last; } } } } } return $n; } # edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_quota_file { local($rv, $line); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^fs (\S+) blocks \(soft = (\d+), hard = (\d+)\) inodes \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) { # found line to change $line = "fs $_[1] blocks (soft = $_[2], hard = $_[3]) inodes (soft = $_[4], hard = $_[5])"; } $rv .= "$line\n"; } return $rv; } # quotaon(filesystem, mode) # Activate quotas and create quota file for some filesystem. The mode can # be 1 for user only, 2 for group only or 3 for user and group sub quotaon { return if (&is_readonly_mode()); local($qf, $out); $qf = "$_[0]/quotas"; if (!(-r $qf)) { &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, $qf); } $out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # quotaoff(filesystem, mode) # Turn off quotas for some filesystem sub quotaoff { return if (&is_readonly_mode()); local($out); $out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # quotacheck(filesystem, mode) # Runs quotacheck on some filesystem sub quotacheck { $out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # copy_user_quota(user, [user]+) # Copy the quotas for some user to many others sub copy_user_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'user_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # user_filesystems(user) # Fills the array %filesys with details of all filesystems some user has # quotas on sub user_filesystems { local($n, $_); open(QUOTA, "$config{'user_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line! $filesys{$n,'filesys'} = $1; =~ /^.{13}(.{7})(.{7})(.{7}).{12}(.{7})(.{7})(.{7})/; $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'ufiles'} = int($4); $filesys{$n,'sfiles'} = int($5); $filesys{$n,'hfiles'} = int($6); $n++; } elsif (/^(.{13})(.{7})(.{7})(.{7}).{12}(.{7})(.{7})(.{7})/) { $filesys{$n,'filesys'} = $1; $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'filesys'} =~ s/\s+$//g; $n++; } } close(QUOTA); return $n; } # get_user_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day, 4=week, 5=month sub get_user_grace { local(@rv); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'user_grace_command'} |"); while() { if (/^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[0]) { if ($2 == 0) { push(@rv, 0, 0); } else { push(@rv, $2, $name_to_unit{$3}); } if ($4 == 0) { push(@rv, 0, 0); } else { push(@rv, $4, $name_to_unit{$5}); } } } close(GRACE); return @rv; } # default_grace() # Returns 0 if grace time can be 0, 1 if zero grace means default sub default_grace { return 1; } # edit_grace_file(data, filesystem, btime, bunits, ftime, funits) sub edit_grace_file { local($rv, $line); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[1]) { # replace this line $line = "fs $_[1] blocks time limit = $_[2] $unit_to_name{$_[3]}, files time limit = $_[4] $unit_to_name{$_[5]}"; } $rv .= "$line\n"; } return $rv; } # grace_units() # Returns an array of possible units for grace periods sub grace_units { return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'}, $text{'grace_days'}, $text{'grace_weeks'}, $text{'grace_months'}); } %name_to_unit = ( "sec", 0, "secs", 0, "min", 1, "mins", 1, "hour", 2, "hours", 2, "day", 3, "days", 3, "week", 4, "weeks", 4, "month", 5, "months", 5 ); foreach $k (keys %name_to_unit) { $unit_to_name{$name_to_unit{$k}} = $k; } 1; quota/lang/0040755000567100000120000000000010267561350012621 5ustar jcameronwheelquota/lang/es0100644000567100000120000003065210312732320013142 0ustar jcameronwheelacl_email=¿Puede configurar notificaciones por email? acl_fall=Todos los sistemas de archivo acl_fsel=Los seleccionados... acl_fss=Sistemas de archivo que este usuario puede editar acl_gall=Todos los grupos acl_gexcept=Todos excepto los grupos acl_ggrace=¿Puede editar tiempos de gracia de grupos? acl_gnone=Ningún grupo acl_gonly=Sólo los grupos acl_gquota=Grupos a los que este usuario puede editar cuotas acl_maxblocks=Máxima cuota de bloques que conceder acl_maxfiles=Máxima cuota de ficheros que conceder acl_quotanew=¿Puede configurar cuotas para nuevos usuarios? acl_quotaon=¿Puede activar y desactivar las cuotas? acl_ro=¿Sólo puede ver la cuota y no editarla? acl_uall=Todos los usuarios acl_uexcept=Todos excepto los usuarios acl_ugrace=¿Puede editar tiempos de gracia de usuarios? acl_ugroup=Usuarios con grupo primario acl_unlimited=Ilimitado acl_uonly=Sólo los usuarios acl_uquota=Usuarios a los que este usuario puede editar cuotas acl_uuid=Usuarios con UID en el rango acl_vtotal=¿Puede ver espacio total en disco? activate_eallow=No estás autorizado a activar o desactivar cuotas en este sistema de archivos activate_eoff=No pude apagar las cuotas activate_eon=No pude encender las cuotas cgform_all=Todos los grupos en tu sistema cgform_contain=Grupos conteniendo usuarios cgform_copyto=Copiar cuotas para $1 en TODOS los sistemas de archivo a.. cgform_doit=Copiar cgform_ecannot=No puedes copiar cuotas cgform_egroup=No estás autorizado a copiar las cuotas de este grupo cgform_return=Cuota de grupo cgform_select=Grupos seleccionados cgform_title=Copiar Cuotas cgroup_eallowto=No estás autorizado a copiar cuotas a '$1' cgroup_ecannot=No puedes copiar las cuotas cgroup_efail=No pude copiar las cuotas cgroup_egallow=No estás autorizado a copiar las cuotas de este grupo cgroup_enogroup=No hay grupos a donde copiar check_done=... Hecho. check_ecannot=No puedes revisar cuotas en este sistema de archivos check_return=lista $1 check_rgroup=grupo check_running=El comando quotacheck se está ejecutando ahora para revisar el bloque y uso de archivo en $1. Esto puede llevar un largo tiempo si el sistema de archivos es muy grande... check_ruser=usuario check_title=Revisar Cuotas cuform_all=Todos los usuarios en tu sistema cuform_copyto=Copiar cuotas para $1 en TODOS los sistemas de archivo a... cuform_doit=Copiar cuform_ecannot=No puedes copiar cuotas cuform_euallow=No estás autorizado a copiar las cuotas de este usuario cuform_members=Miembros del grupos selectos cuform_return=cuota de usuario cuform_select=Usuarios seleccionados cuform_title=Copiar Cuotas cuser_eallowto=No esta autorizado a copiar cuotas a '$1' cuser_ecannot=No puedes copiar cuotas cuser_efail=No pude copiar cuotas cuser_enouser=No hay usuarios a donde copiar cuser_euallow=No estás autorizado a copiar las cuotas de este usuario egroup_bused=Bloques Usados egroup_eallowfs=No estás autorizado a editar cuotas en este sistema de archivos egroup_eallowgr=No estás autorizado a editar cuotas para '$1' egroup_freturn=lista de sistemas de archivo egroup_fused=Archivos Usados egroup_greturn=lista de grupos egroup_hblimit=Límite de Bloques por Hard egroup_hflimit=Límite de Archivos por Hard egroup_hklimit=Límite duro kilobyte egroup_kused=Kilobytes usados egroup_listall=Listar Todas las Cuotas egroup_quotas=Cuota para $1 en $2 egroup_sblimit=Límite de Bloques por Soft egroup_sflimit=Límite de Archivos por Soft egroup_sklimit=Límite blando kilobyte egroup_title=Editar Cuota egroup_update=Actualizar email_ecannot=No está autorizado a modificar las opciones de email email_edomain=Dominio de correo no válido o sin introducir email_efrom=De: dirección no válido o sin introducir email_einterval=Intervalo no válido o sin introducir email_epercent=Porcentaje de uso no válido o sin introducir email_err=Fallo al salvar opciones de email email_msg=El uso de disco del usuario $1 en el sistema de archivos $2 ha alcanzado el $3% de la cuota \npermitida.\n\n$4 del espacio de disco se está usando, de un máximo de $5. email_subject=Cuota de disco excedida euser_bdisk=Bloques Disponibles en Disco euser_bused=Bloques Usados euser_eallowfs=No estás autorizado a editar cuotas en este sistema de archivos euser_eallowus=No estás autorizado a editar cuotas para '$1' euser_fdisk=Archivos Disponibles en Disco euser_freturn=lista de sistemas de archivo euser_fused=Archivos Usados euser_hblimit=Límite de Bloques por Hard euser_hflimit=Límite de Archivos por Hard euser_hklimit=Límite duro kilobyte euser_kdisk=Kilobytes disponibles en disco euser_kused=Kilobytes usados euser_listall=Listar Todas las Cuotas euser_quotas=Cuota para $1 en $2 euser_sblimit=Límite de Bloques por Soft euser_sdisk=Espacio disponible en disco euser_sflimit=Límite de Archivos por Soft euser_sklimit=Límite blando kilobyte euser_title=Editar Cuota euser_update=Actualizar euser_ureturn=lista de usuarios gfilesys_all=Todas las Cuotas para gfilesys_blocks=Bloques gfilesys_copy=Copiar Cuotas gfilesys_ecannot=No puedes editar cuotas para '$1' gfilesys_edit=Editar Cuota En: gfilesys_files=Archivos gfilesys_fs=Sistema de Archivos gfilesys_hard=Límite por Hard gfilesys_kbs=Kilobytes gfilesys_nogquota=El grupo $1 no tiene cuotas en ningún sistema de archivos gfilesys_return=lista de sistemas de archivo gfilesys_soft=Límite por Soft gfilesys_space=Espacio en disco gfilesys_title=Cuotas de Grupo gfilesys_used=Usado ggracef_block=Para cuota de bloque ggracef_ecannot=No puedes editar tiempos de gracia en este sistema de archivos ggracef_file=Para cuota de archivo ggracef_graces=Tiempos de Gracia de Grupo para $1 ggracef_info=Cada sistema de archivos tiene un tiempo de gracia para las cuotas de bloques y archivos. El tiempo de gracia determina cuánto puede un grupo permanecer sobre el límite de soft antes de que no se le permita crear más archivos. ggracef_return=lista de grupos ggracef_title=Tiempos de Gracia ggracef_update=Actualizar ggraces_eedit=No puedes editar tiempos de gracia en este sistema de archivos ggraces_enumber='$1' no es un número ggraces_esave=No pude salvar tiempos de gracia grace_days=Días grace_hours=Horas grace_minutes=Minutos grace_months=Meses grace_seconds=Segundos grace_weeks=Semanas index_action=Acción index_active=Activa index_disable=Desactivar Cuotas index_egroup=Editar Cuotas de Grupo: index_enable=Activar Cuotas index_euser=Editar Cuotas de Usuario: index_fs=Sistema de Archivos index_inactive=Inactiva index_mount=Montado Desde index_mountmod=Puede habilitar las cuotas para un sistema de archivos en el módulo Sistemas de archivo de Disco y de Red index_mountonly=Sólo se puede activar durante el montaje index_nosupport=No hay sistemas de archivo locales que puedan soportar cuotas index_qboth=Cuotas de Usuario y Grupo index_qgroup=Cuotas de Grupo index_quser=Cuotas de Usuario index_return=índice index_status=Estado index_title=Cuotas de Disco index_type=Tipo lgroups_blocks=Bloques lgroups_check=Revisar Cuotas lgroups_eallow=No estás autorizado a editar cuotas en este sistema de archivos lgroups_equota=Editar Cuota Para: lgroups_failed=No pude listar grupos lgroups_files=Archivos lgroups_grace=Editar Tiempos de Gracia lgroups_group=Grupos lgroups_hard=Límite por Hard lgroups_info=Webmin puede configurarse para que configure automáticamente las cuotas en este sistema de archivos, cuando se crea un nuevo grupo Unix. Esto sólo funcionará cuando se use para añadir los grupos el módulo Webmin $1. lgroups_kbs=Kilobytes lgroups_newgroup=Cuotas de Nuevo Grupo lgroups_noquota=No hay grupos que tengan cuotas en $1 lgroups_quotas=Todas las Cuotas de Grupo en $1 lgroups_return=listar sistema de archivos lgroups_soft=Límite por Soft lgroups_space=Espacio en disco lgroups_title=Cuotas de Sistema de Archivos lgroups_toomany=Demasiados grupos tienen cuotas en $1 para mostrarlas en una página lgroups_used=Usado log_activate_g=Cuotas de grupo activadas en $1 log_activate_u=Cuotas de usuario activadas en $1 log_activate_ug=Cuotas de usuario y grupo activadas en $1 log_check=Revisadas cuotas en $1 log_copy_g=Copiadas cuotas de grupo $1's log_copy_u=Copiadas cuotas de usuario $1's log_deactivate_g=Cuotas de grupo desactivadas en $1 log_deactivate_u=Cuotas de usuario desactivadas en $1 log_deactivate_ug=Cuotas de usuario y grupo desactivadas en $1 log_email=Cambiar opciones de email en $1 log_grace_g=Cambiados períodos de gracia de grupo en $1 log_grace_u=Cambiados períodos de gracia de usuario en $1 log_gsync=Cuotas de nuevos grupos cambiadas en $1 log_save=Cuotas cambiadas para $1 en $2 log_sync=Cuotas de nuevo usuario cambiadas en $1 luser_virtualmin=¿Tomar dominio de Virtualmin? lusers_apply=Aplicar lusers_blocks=Bloques lusers_bsize=Tamaño de bloque de cuota : $1 bytes lusers_check=Revisar Cuotas lusers_domain=Dominio para direcciones de usuario lusers_eallow=No estás autorizado a editar cuotas en este sistema de archivos lusers_egrace=Editar Tiempos de Gracia lusers_email=¿Mandar email a los usuarios? lusers_emailheader=Mandar email a los usuarios que se aproximen a su cuota lusers_equota=Editar Cuota Para: lusers_failed=No pude listar usuarios lusers_files=Archivos lusers_from=De: dirección para el email lusers_grace=Gracia lusers_hard=Límite por Hard lusers_hblimit=Límite de Bloque por Hard lusers_hflimit=Límite de Archivo por Hard lusers_hours=horas lusers_info=Webmin puede ser configurado para poner automáticamente las cuotas en este sistema de archivos cada vez que un nuevo usuario de Unix sea creado. Esto sólo funcionará cuando los $1 el módulo de Webmin es utilizado para añadir usarios. lusers_interval=Intervalo entre mensajes lusers_kbs=Kilobytes lusers_ltype=Tipo de límite lusers_newuser=Nuevas Cuotas de Usuario lusers_noquota=No hay usuarios que tengan cuotas lusers_pc_hblocks=Duro % lusers_percent=Avisar cuando el uso alcanza lusers_qoutas=Todas las Cuotas de Usuario aquí $1 lusers_return=lista de sistemas de archivo lusers_sblimit=Límite de Bloque por Soft lusers_sflimit=Límite de Archivo por Soft lusers_soft=Límite por Soft lusers_space=Espacio en disco lusers_title=Cuotas de Sistema de Archivos lusers_toomany=Demasiados usuarios tiene cuotas aquí $1 para ser mostradas en una página lusers_used=Usado lusers_user=Usuario lusers_useradmin=Usuarios y Grupos quota_unlimited=Ilimitada sgroup_efs=No estás autorizado a editar las cuotas en este sistema de archivos sgroup_egroup=No estás autorizado a editar las cuotas para este grupo ssync_ecannot=No puedes poner la cuota por defecto para este sistema de archivos suser_efs=No estás autorizado a editar las cuotas en este sistema de archivos suser_emaxblocks=No tiene permiso para conceder límites de bloques superiores a $1 suser_emaxfiles=No tiene permiso para conceder límites de ficheros superiores a $1 suser_euser=No estás autorizado a editar las cuotas de este usuario ufilesys_all=Todas las Cuotas para $1 ufilesys_blocks=Bloques ufilesys_copy=Copiar Cuotas ufilesys_ecannot=No puedes editar cuotas para '$1' ufilesys_edit=Editar Cuota En: ufilesys_files=Archivos ufilesys_fs=Sistema de Archivos ufilesys_grace=Gracia ufilesys_hard=Límite por Hard ufilesys_kbs=Kilobytes ufilesys_nouquota=El usuario $1 no tiene cuotas en este sistema de archivos ufilesys_return=lista de sistema de archivos ufilesys_soft=Límite por Soft ufilesys_space=Espacio en disco ufilesys_title=Cuotas de Usuario ufilesys_used=Usado ugracef_block=Para cuota de bloque ugracef_ecannot=No puedes editar tiempos de gracia en este sistema de archivos ugracef_file=Para cuota de archivo ugracef_graces=Tiempos de Gracia de Usuario $1 ugracef_info=Cada sistema de archivos tiene un tiempo de gracia para las cuotas de bloque y de archivo. El tiempo de gracia determina cuánto puede permanecer un usuario sobre el límite de soft antes de que no se le permita crear más archivos. ugracef_return=lista de usuarios ugracef_title=Tiempos de Gracia ugracef_update=Actualizar ugraces_eedit=No puedes editar tiempos de gracia en este sistema de archivos ugraces_enumber='$1' no es un número ugraces_esave=No pude salvar tiempos de gracia quota/lang/sv0100644000567100000120000002044707202162047013173 0ustar jcameronwheelquota_unlimited=Obegränsad acl_fss=Filsystem som denna användare får ändra i acl_fall=Alla filsystem acl_fsel=Angivna ... acl_quotaon=Kunna slå på och av quota? acl_quotanew=Kunna ställa in quota för nya användare? acl_ugrace=Kunna ändra tidsintervall för användare? acl_vtotal=Kunna se totalt diskutrymme? acl_ggrace=Kunna ändra tidsintervall för grupper? acl_uquota=Användare som denna användare får ändra quota för acl_gquota=Grupper som denna användare får ändra quota för acl_uall= Alla användare acl_uonly= Endast användarna acl_uexcept= Alla användare utom acl_ugroup= Användare med primär grupp acl_gall= Alla grupper acl_gnone= Inga grupper acl_gonly= Endast grupperna acl_gexcept= Alla grupper utom activate_eallow=Du får inte slå på och av quota på detta filsystem activate_eon=Det gick inte att slå på quota activate_eoff=Det gick inte att slå av quota check_title=Kontrollera quota check_return=Lista över $1 check_ecannot=Du får inte kontrollera quota på detta filsystem check_running=Kommandot quotacheck körs nu för att kontrollera block- och filanvändningen på $1. Om det är ett stort filsystem kan detta ta en stund ... check_done=... Klart. check_rgroup=grupp check_ruser=användare cgroup_efail=Det gick inte att kopiera quota cgroup_ecannot=Du får inte kopiera quota cgroup_egallow=Du får inte kopiera denna grupps quota cgroup_enogroup=Du har inte angivit någon grupp att kopiera till cgroup_eallowto=Du får inte kopiera quota till '$1' cgform_title=Kopiera quota cgform_return=gruppquota cgform_ecannot=Du får inte kopiera quota cgform_egroup=Du får inte kopiera denna grupps quota cgform_copyto=Kopiera quota för $1 på ALLA filsystem till ... cgform_all=Alla grupper på ditt system cgform_select=Angivna grupper cgform_contain=Grupper med följande användare cgform_doit=Kopiera cuser_efail=Det gick inte att kopiera quota cuser_ecannot=Du får inte kopiera quota cuser_euallow=Du får inte kopiera denna användares quota cuser_enouser=Du har inte angivit någon användare att kopiera till cuser_eallowto=Du får inte kopiera quota till '$1' cuform_title=Kopiera quota cuform_return=användarquota cuform_ecannot=Du får inte kopiera quota cuform_euallow=Du får inte kopiera denna användares quota cuform_copyto=Kopiera quota för $1 på ALLA filsystem till ... cuform_all=Alla användare på ditt system cuform_select=Angivna användare cuform_members=Medlemmar i angivna grupper cuform_doit=Kopiera egroup_title=Ändra quota egroup_freturn=filsystemslista egroup_greturn=grupplista egroup_eallowgr=Du får inte ändra quota för '$1' egroup_eallowfs=Du får inte ändra quota på detta filsystem egroup_quotas=Quota för $1$2 egroup_bused=Använda block egroup_sblimit=Mjuk blockgräns egroup_hblimit=Hård blockgräns egroup_fused=Använda filer egroup_sflimit=Mjuk filgräns egroup_hflimit=Hård filgräns egroup_update=Uppdatera egroup_listall=Lista alla quota euser_title=Ändra quota euser_freturn=filsystemslista euser_ureturn=användarlista euser_eallowus=Du får inte ändra quota för '$1' euser_eallowfs=Du får inte ändra quota på detta filsystem euser_quotas=Quota för $1$2 euser_bused=Använda block euser_sblimit=Mjuk blockgräns euser_hblimit=Hård blockgräns euser_fused=Använda filer euser_sflimit=Mjuk filgräns euser_hflimit=Hård filgräns euser_update=Uppdatera euser_listall=Lista alla quota gfilesys_title=Gruppquota gfilesys_return=filsystemslista gfilesys_ecannot=Du får inte ändra quota för '$1' gfilesys_all=Alla quota för gfilesys_blocks=Block gfilesys_files=Filer gfilesys_fs=Filsystem gfilesys_used=Använda gfilesys_soft=Mjuk gräns gfilesys_hard=Hård gräns gfilesys_nogquota=Gruppen $1 har ingen quota på något filsystem gfilesys_edit=Ändra quota på: gfilesys_copy=Kopiera quota ggracef_title=Tidsintervall ggracef_return=grupplista ggracef_ecannot=Du får inte ändra tidsintervall på detta filsystem ggracef_info=Varje filsystem har ett tidsintervall för block- och filquota. Detta tidsintervall anger hur länge en grupp får överskrida sin mjuka gräns innan den hindras att skapa fler filer. ggracef_graces=Grupptidsintervall för $1 ggracef_block=För blockquota ggracef_file=För filquota ggracef_update=Uppdatera ggraces_esave=Det gick inte att spara tidsintervall ggraces_eedit=Du får inte ändra tidsintervall på detta filsystem ggraces_enumber='$1' är inte ett antal index_quser=Användarquota index_qgroup=Gruppquota index_qboth=Användar- och gruppquota index_active=Aktiv index_disable=Slå av quota index_inactive=Inaktiv index_enable=Slå på quota index_title=Diskquota index_fs=Filsystem index_type=Typ index_mount=Monterad från index_status=Status index_action=Funktion index_return=index index_euser=Ändra användarquota: index_egroup=Ändra gruppquota: index_nosupport=Inget lokalt filsystem stödjer quota lgroups_failed=Det gick inte att lista grupper lgroups_eallow=Du får inte ändra quota på detta filsystem lgroups_title=Filsystemsquota lgroups_return=filsystemslista lgroups_toomany=Det är för många grupper som har quota på $1 för att det ska gå att visa på en sida lgroups_quotas=Alla gruppquota på $1 lgroups_blocks=Block lgroups_files=Filer lgroups_group=Grupp lgroups_used=Använd lgroups_soft=Mjuk gräns lgroups_hard=Hård gräns lgroups_noquota=Ingen grupp har quota på $1 lgroups_equota=Ändra quota för: lgroups_grace=Ändra tidsintervall lgroups_check=Kontrollera quota sgroup_egroup=Du får inte ändra quota för denna grupp sgroup_efs=Du får inte ändra quota på detta filsystem ssync_ecannot=Du får inte ställa in standardquota för detta filsystem suser_euser=Du får inte ändra quota för denna användare suser_efs=Du får inte ändra quota på detta filsystem ufilesys_title=Användarquota ufilesys_return=filsystemslista ufilesys_ecannot=Du får inte ändra quota för '$1' ufilesys_all=All quota för $1 ufilesys_blocks=Block ufilesys_files=Filer ufilesys_fs=Filsystem ufilesys_used=Använd ufilesys_soft=Mjuk gräns ufilesys_hard=Hård gräns ufilesys_nouquota=Användare $1 har ingen quota på något filsystem ufilesys_edit=Ändra quota på: ufilesys_copy=Kopiera quota ugracef_title=Tidsintervall ugracef_return=användarlista ugracef_ecannot=Du får inte ändra tidsintervall på detta filsystem ugracef_info=Varje filsystem har ett tidsintervall för block- och filquota. Detta tidsintervall anger hur länge en användare får överskrida sin mjuka gräns innan den hindras att skapa fler filer. ugracef_graces=Användartidsintervall för $1 ugracef_block=För blockquota ugracef_file=För filquota ugracef_update=Uppdatera ugraces_esave=Det gick inte att spara tidsintervall ugraces_eedit=Du får inte ändra tidsintervall på detta filsystem ugraces_enumber='$1' är inte ett antal lusers_failed=Det gick inte att lista användare lusers_eallow=Du får inte ändra quota på detta filsystem lusers_title=Filsystemsquota lusers_return=filsystemslista lusers_toomany=Det är för många användare som har quota på $1 för att det ska gå att visa på en sida lusers_qoutas=All användarquota på $1 lusers_blocks=Block lusers_files=Filer lusers_user=Användare lusers_used=Använd lusers_soft=Mjuk gräns lusers_hard=Hård gräns lusers_noquota=Ingen användare har quota på $1 lusers_equota=Ändra quota för: lusers_egrace=Ändra tidsintervall lusers_check=Kontrollera quota lusers_info=Webmin kan ställas in att automatiskt sätta quota på detta filsystem när en ny Unix-användare skapas. Detta fungerar endast då Webmin-modulen $1 används för att lägga till användare. lusers_useradmin=Användare och grupper lusers_newuser=Quota för nya användare lusers_sblimit=Mjuk blockgräns lusers_hblimit=Hård blockgräns lusers_sflimit=Mjuk filgräns lusers_hflimit=Hård filgräns lusers_apply=Ta i drift grace_seconds=Sekunder grace_minutes=Minuter grace_hours=Timmar grace_days=Dagar grace_weeks=Veckor grace_months=Månader log_activate_u=Slog på användarquota på $1 log_activate_g=Slog på gruppquota på $1 log_activate_ug=Slog på användar- och gruppquota på $1 log_deactivate_u=Slog av användarquota $1 log_deactivate_g=Slog av gruppquota på $1 log_deactivate_ug=Slog av användar- och gruppquota på $1 log_save=Ändrade quota för $1 på $2 log_sync=Ändrade quota för nya användare på $1 log_grace_u=Ändrade tidsintervall för användare på $1 log_grace_g=Ändrade tidsintervall för grupper på $1 log_check=Kontrollerade quota på $1 log_copy_u=Kopierade användaren $1s quota log_copy_g=Kopierade gruppen $1s quota quota/lang/zh_CN0100644000567100000120000001545507630064656013563 0ustar jcameronwheelquota_unlimited=²»ÏÞ acl_fss=Õâ¸öÓû§¿É±à¼­µÄÎļþϵͳ acl_fall=ËùÓÐÎļþϵͳ acl_fsel=ÒÑÑ¡µÄ.. acl_quotaon=ÊÇ·ñ¿ÉÆôÓúͽûÓôÅÅÌÅä¶î£¿ acl_quotanew=ÊÇ·ñΪÐÂÓû§ÅäÖôÅÅÌÅä¶î£¿ acl_ugrace=ÊÇ·ñ¿É±à¼­Óû§¿íÏÞ´ÎÊý£¿ acl_vtotal=ÊÇ·ñ¿É²é¿´´ÅÅÌ×ܿռ䣿 acl_ggrace=ÊÇ·ñ¿É±à¼­×é¿íÏÞ´ÎÊý£¿ acl_uquota=Õâ¸öÓû§¿ÉÒԱ༭Æä´ÅÅÌÅä¶îµÄÓû§ÖÐ acl_gquota=Õâ¸öÓû§¿ÉÒԱ༭Æä´ÅÅÌÅä¶îµÄ×é acl_uall=ËùÓÐÓû§ acl_uonly=ΨһÓû§ acl_uexcept=ËùÓÐÓû§³ýÁË acl_ugroup=Ö÷×éÖеÄÓû§ acl_gall=ËùÓÐ×é acl_gnone=ûÓÐ×é acl_gonly=Ψһ×é acl_gexcept=ËùÓÐ×é³ýÁË acl_uuid=´øÓÐUIDµÄÓû§·¶Î§ acl_maxblocks=×î´óµÄ¿ÉÊÚȨ¿éÅäÖà acl_maxfiles=×î´ó¿ÉÊÚȨµÄÎļþÅä¶î acl_unlimited=²»ÏÞ activate_eallow=ÄúûÓÐÔÚ±¾ÎļþϵͳÉÏÆôÓúͽûÓôÅÅÌÅä¶îµÄȨÏÞ activate_eon=´ò¿ªÅä¶îʧ°Ü activate_eoff=¹Ø±ÕÅä¶îʧ°Ü check_title=¼ì²éÅä¶î check_return=$1 Áбí check_ecannot=ÄúûÓмì²é±¾ÎļþϵͳµÄÅä¶îµÄȨÏÞ check_running=ÏÖÔÚÕýÔÚÔËÐÐquotacheckÃüÁîÒÔ¼ì²é$1ÉϵĴÅÅÌ¿éºÍÎļþµÄÀûÓÃÇé¿ö¡£¶ÔÓÚ´óÐÍÎļþϵͳ£¬ÕâÐèÒªºÜ³¤Ê±¼ä.. check_done=... Íê³É¡£ check_rgroup=×é check_ruser=Óû§ cgroup_efail=¿½±´Åä¶îʧ°Ü cgroup_ecannot=ÄúûÓп½±´Åä¶îµÄȨÏÞ cgroup_egallow=ÄúûÓп½±´Õâ¸ö×éµÄÅä¶îµÄȨÏÞ cgroup_enogroup=ûÓпɿ½±´µÄ×éµ½ cgroup_eallowto=ÄúûÓп½±´Åä¶îµ½ '$1'µÄȨÏÞ cgform_title=¿½±´Åä¶î cgform_return=×éÅä¶î cgform_ecannot=ÄúÎÞ·¨¿½±´Åä¶î cgform_egroup=ÄúûÓп½±´Õâ¸ö×éµÄÅä¶îµÄȨÏÞ cgform_copyto=¿½±´ËùÓÐÎļþϵͳÉÏ$1µÄÅä¶î cgform_all=ϵͳÉϵÄËùÓÐ×é cgform_select=Ñ¡¶¨×é cgform_contain=°üº¬Óû§µÄ×é cgform_doit=¿½±´ cuser_efail=¿½±´Åä¶îʧ°Ü cuser_ecannot=ÄúûÓп½±´Åä¶îµÄȨÏÞ cuser_euallow=ÄúûÓп½±´Õâ¸öÓû§µÄÅä¶îµÄȨÏÞ cuser_enouser=ûÓÐÓû§¿½±´µ½ cuser_eallowto=ÄúûÓп½±´Åä¶îµ½'$1'µÄȨÏÞ cuform_title=¿½±´Åä¶î cuform_return=Óû§Åä¶î cuform_ecannot=ÄúÎÞ·¨¿½±´Åä¶î cuform_euallow=ÄúûÓп½±´Õâ¸öÓû§Åä¶îµÄȨÏÞ cuform_copyto=¿½±´$1ÔÚËùÓÐÎļþϵͳµÄÅä¶îµ½ ... cuform_all=ϵͳÉϵÄËùÓÃÓû§ cuform_select=Ñ¡¶¨µÄÓû§ cuform_members=Ñ¡¶¨×éµÄ³ÉÔ± cuform_doit=¿½±´ egroup_title=±à¼­Åä¶î egroup_freturn=ÎļþϵͳÁбí egroup_greturn=×éÁбí egroup_eallowgr=ÄúûÓб༭ '$1'µÄÅä¶îµÄȨÏÞ egroup_eallowfs=ÄúûÓб༭´ËÎļþϵͳÉϵÄÅä¶îµÄȨÏÞ egroup_quotas=$1ÔÚ$2ÉϵÄÅä¶î egroup_bused=ÒÑÓÿé egroup_sblimit=ÈíÐÔ¿éÏÞÖÆ egroup_hblimit=Ó²ÐÔ¿éÏÞÖÆ egroup_fused=ʹÓõÄÎļþ egroup_sflimit=ÈíÎļþÏÞÖÆ egroup_hflimit=Ó²ÎļþÏÞÖÆ egroup_update=¸üРegroup_listall=ÁгöËùÓÐÅä¶î euser_title=±à¼­Åä¶î euser_freturn=ÎļþϵͳÁбí euser_ureturn=Óû§Áбí euser_eallowus=ÄúûÓб༭'$1'µÄÅä¶îµÄȨÏÞ euser_eallowfs=ÄúûÓб༭±¾ÎļþϵͳµÄÅä¶îµÄȨÏÞ euser_quotas=$1ÔÚ$2ÉϵÄÅä¶î euser_bused=ÒÑÓÿé euser_bdisk=´ÅÅÌÉÏ¿ÉÓõĿé euser_sblimit=ÈíÐÔ¿éÏÞÖÆ euser_hblimit=Ó²ÐÔ¿éÏÞÖÆ euser_fused=ÒÑÓÃÎļþ euser_fdisk=´ÅÅÌÉÏ¿ÉÓõÄÎļþ euser_sflimit=ÈíÐÔÎļþÏÞÖÆ euser_hflimit=Ó²ÐÔÎļþÏÞÖÆ euser_update=¸üРeuser_listall=ÁбíËùÓÃÅä¶î gfilesys_title=×éÅä¶î gfilesys_return=ÎļþÁбí gfilesys_ecannot=ÄúûÓб༭'$1'µÄÎļþÅä¶îµÄȨÏÞ gfilesys_all=$1µÄËùÓÐÅä¶î gfilesys_blocks=¿é gfilesys_files=Îļþ gfilesys_fs=Îļþϵͳ gfilesys_used=ÒÑÓà gfilesys_soft=ÈíÐÔÏÞÖÆ gfilesys_hard=Ó²ÐÔÏÞÖÆ gfilesys_nogquota=×é $1 ÔÚÈκÎÎļþϵͳÉ϶¼Ã»ÓÐÅä¶î gfilesys_edit=±à¼­ÏÞ¶îÓÚ£º gfilesys_copy=¿½±´Åä¶î ggracef_title=¿íÏÞʱ¼ä ggracef_return=×éÁбí ggracef_ecannot=ÄúûÓб༭´ËÎļþϵͳ¿íÏÞʱ¼äµÄȨÏÞ ggracef_info=ÿ¸öÎļþϵͳ¶¼ÓжԿéºÍÎļþÅä¶îµÄ¿íÏÞʱ¼ä¡£¿íÏÞʱ¼ä¾ö¶¨Ò»¸ö×é±»½ûÖ¹´´½¨¸ü¶àÎļþ֮ǰ´¦ÓÚÈíÐÔÏÞÖÆ×´Ì¬µÄʱ¼ä³¤¶Ì¡£ ggracef_graces=$1µÄ×é¿íÏÞʱ¼ä ggracef_block=¶Ô¿éÅä¶î ggracef_file=¶ÔÎļþÅä¶î ggracef_update=¸üРggraces_esave=±£´æ¿íÏÞʱ¼äʧ°Ü ggraces_eedit=ÄúûÓб༭´ËÎļþϵͳµÄ¿íÏÞʱ¼äµÄȨÏÞ ggraces_enumber='$1' ²»ÊÇÊý×Ö index_quser=Óû§Åä¶î index_qgroup=×éÅä¶î index_qboth=Óû§ºÍ×éÅä¶î index_active=»î¶¯µÄ index_disable=½ûÓÃÅä¶î index_inactive=²»»î¶¯µÄ index_enable=ÆôÓÃÅä¶î index_mountonly=½öÄÜÔÚ¼ÓÔØÊ±Æô¶¯ index_title=´ÅÅÌÅä¶î index_fs=Îļþϵͳ index_type=ÀàÐÍ index_mount=¼ÓÔØ×Ô index_status=״̬ index_action=¶¯×÷ index_return=Ë÷Òý index_euser=±à¼­Óû§Åä¶î£º index_egroup=±à¼­×éÅä¶î£º index_nosupport=±¾µØÎļþϵͳ²»Ö§³ÖÅä¶î lgroups_failed=Áгö×éʧ°Ü lgroups_eallow=ÄúûÓб༭Õâ¸öÎļþϵͳÉϵÄÅä¶îµÄȨÏÞ lgroups_title=ÎļþϵͳÅä¶î lgroups_return=ÎļþϵͳÁбí lgroups_toomany=ÔÚ$1ÉÏÓÐÅä¶îµÄ×éÌ«¶à£¬Ò»Ò³ÎÞ·¨È«ÃæÏÔʾ¡£ lgroups_quotas=ËùÓÐ×éÔÚ$1ÉϵÄÅä¶î lgroups_blocks=¿é lgroups_files=Îļþ lgroups_group=×é lgroups_used=ÒÑÓà lgroups_soft=ÈíÐÔÏÞÖÆ lgroups_hard=Ó²ÐÔÏÞÖÆ lgroups_noquota=ûÓÐ×éÔÚ$1ÉÏÓÐÅä¶î lgroups_equota=±à¼­Åä¶îΪ£º lgroups_grace=±à¼­¿íÏÞʱ¼ä lgroups_check=¼ì²éÅä¶î sgroup_egroup=ÄúûÓб༭Õâ¸ö×éµÄÅä¶îµÄȨÏÞ sgroup_efs=ÄúûÓб༭Õâ¸öÎļþϵͳµÄÅä¶îµÄȨÏÞ ssync_ecannot=ÄúûÓÐÉèÖÃÕâ¸öÎļþϵͳµÄĬÈÏÅä¶îµÄȨÏÞ suser_euser=ÄúûÓб༭Õâ¸öÓû§µÄÅä¶îµÄȨÏÞ suser_efs=ÄúûÓб༭Õâ¸öÎļþϵͳµÄÅä¶îµÄȨÏÞ suser_emaxblocks=ÄúûÓÐÊÚȨ¸ø$1Çø¿éÏÞÖÆµÄȨÏÞ suser_emaxfiles=ÄúûÓÐÊÚȨ¸ø$1ÎļþÏÞÖÆµÄȨÏÞ ufilesys_title=Óû§Åä¶î ufilesys_return=ÎļþϵͳÁбí ufilesys_ecannot=ÄúûÓб༭'$1'µÄÅä¶îµÄȨÏÞ ufilesys_all=$1µÄËùÓÐÅä¶î ufilesys_blocks=¿é ufilesys_files=Îļþ ufilesys_fs=Îļþϵͳ ufilesys_used=ÒÑÓà ufilesys_soft=ÈíÐÔÏÞÖÆ ufilesys_hard=Ó²ÐÔÏÞÖÆ ufilesys_nouquota=Óû§$1 ÔÚÈκÎÎļþϵͳ¶¼Ã»ÓÐÅä¶î ufilesys_edit=±à¼­Åä¶îÔÚ£º ufilesys_copy=¿½±´Åä¶î ugracef_title=¿íÏÞʱ¼ä ugracef_return=Óû§Áбí ugracef_ecannot=ÄúûÓб༭±¾ÎļþϵͳµÄµÄ¿íÏÞʱ¼äµÄȨÏÞ ugracef_info=ÿ¸öÎļþϵͳ¶¼ÓжԿéºÍÎļþÅä¶îµÄ¿íÏÞʱ¼ä¡£¿íÏÞʱ¼ä¾ö¶¨Ò»¸öÓû§±»½ûÖ¹´´½¨¸ü¶àÎļþ֮ǰ´¦ÓÚÈíÏÞÖÆ×´Ì¬µÄʱ¼ä³¤¶Ì¡£ ugracef_graces=$1µÄÓû§¿íÏÞʱ¼ä ugracef_block=Ϊ¿éµÄÅä¶î ugracef_file=¶ÔÎļþÅä¶î ugracef_update=¸üРugraces_esave=±£´æ¿íÏÞʱ¼äʧ°Ü ugraces_eedit=ÄúûÓб༭±¾ÎļþϵͳÉϵĿíÏÞʱ¼äµÄȨÏÞ ugraces_enumber='$1' ²»ÊÇÊý×Ö lusers_failed=ÁгöÓû§Ê§°Ü lusers_eallow=ÄúûÓб༭±¾ÎļþϵͳÉϵÄÅä¶îµÄȨÏÞ lusers_title=ÎļþϵͳÅä¶î lusers_return=ÎļþϵͳÁбí lusers_toomany=$1ÉÏÓÐÅä¶îµÄÓû§Ì«¶à£¬Ò»Ò³ÎÞ·¨È«²¿ÏÔʾ¡£ lusers_qoutas=$1ÉϵÄËùÓÐÓû§Åä¶î lusers_blocks=¿é lusers_files=Îļþ lusers_user=Óû§ lusers_used=ÒÑÓà lusers_soft=ÈíÐÔÏÞÖÆ lusers_hard=Ó²ÐÔÏÞÖÆ lusers_noquota=ûÓÐÓû§ÔÚ$1 ÉÏÓÐÅä¶î lusers_equota=±à¼­Åä¶îÕë¶Ô£º lusers_egrace=±à¼­¿íÏÞʱ¼ä lusers_check=¼ì²éÅä¶î lusers_info=´´½¨Ð Unix Óû§ºó£¬Webmin ¿ÉÒÔ±»ÅäÖÃ×Ô¶¯ÔÚ±¾ÎļþϵͳÉÏÉèÖÃÅä¶î¡£Ö»ÓÐÔÚʹÓà $1 Webmin Ä£¿éÌí¼ÓÓû§Ê±´Ë¹¦ÄܲÅÉúЧ¡£ lusers_useradmin=Óû§ºÍ×é lusers_newuser=ÐÂÓû§Åä¶î lusers_sblimit=ÈíÐÔ¿éÏÞÖÆ lusers_hblimit=Ó²ÐÔ¿éÏÞÖÆ lusers_sflimit=ÈíÐÔÎļþÏÞÖÆ lusers_hflimit=Ó²ÐÔÎļþÏÞÖÆ lusers_apply=Ó¦Óà grace_seconds=Ãë grace_minutes=·ÖÖÓ grace_hours=Сʱ grace_days=Ìì grace_weeks=ÐÇÆÚ grace_months=Ô log_activate_u=ÒÑÔÚ $1 ÉÏÆôÓÃÓû§Åä¶î log_activate_g=ÒÑÔÚ $1 ÉÏÆôÓÃ×éÅä¶î log_activate_ug=ÒÑÔÚ $1 ÉÏÆôÓÃÓû§ºÍ×éÅä¶î log_deactivate_u=ÒÑÔÚ $1 ÉϽûÓÃÓû§Åä¶î log_deactivate_g=ÒÑÔÚ $1 ÉϽûÓÃ×éÅä¶î log_deactivate_ug=ÒÑÔÚ $1 ÉϽûÓÃÓû§ºÍ×éÅä¶î log_save=ÔÚ $2 Éϸıä $1 µÄÅä¶î log_sync=ÔÚ $1 ÉϸıäÐÂÓû§µÄÅä¶î log_grace_u=ÔÚ $1 ÉϸıäÓû§¿íÏÞʱ¼ä log_grace_g=ÔÚ $1 Éϸıä×é¿íÏÞʱ¼ä log_check=ÔÚ $1 Éϼì²éÅä¶î log_copy_u=¿½±´Óû§ $1 µÄÅä¶î log_copy_g=¿½±´×é $1 µÄÅä¶î quota/lang/en0100644000567100000120000002425610267561350013154 0ustar jcameronwheelquota_unlimited=Unlimited acl_fss=Filesystems this user can edit acl_fall=All filesystems acl_fsel=Selected.. acl_ro=Can only view quota, not edit? acl_quotaon=Can enable and disable quotas? acl_quotanew=Can configure quotas for new users? acl_ugrace=Can edit user grace times? acl_vtotal=Can view total disk space? acl_ggrace=Can edit group grace times? acl_uquota=Users this user can edit quotas for acl_gquota=Groups this user can edit quotas for acl_uall= All users acl_uonly= Only users acl_uexcept= All except users acl_ugroup= Users with primary group acl_gall= All groups acl_gnone= No groups acl_gonly= Only groups acl_gexcept= All except groups acl_uuid=Users with UID in range acl_maxblocks=Maximum grantable block quota acl_maxfiles=Maximum grantable file quota acl_unlimited=Unlimited acl_email=Can setup email notifications? activate_eallow=You are not allowed to enable or disable quotas on this filesystem activate_eon=Failed to turn on quotas activate_eoff=Failed to turn off quotas check_title=Check Quotas check_return=$1 list check_ecannot=You cannot check quotas on this filesystem check_running=The quotacheck command is now being run to check the block and file usage on $1. This may take a long time for a very large filesystem... check_done=... Done. check_rgroup=group check_ruser=user cgroup_efail=Failed to copy quotas cgroup_ecannot=You cannot copy quotas cgroup_egallow=You are not allowed to copy the quotas of this group cgroup_enogroup=No groups to copy to cgroup_eallowto=You are not allowed to copy quotas to '$1' cgform_title=Copy Quotas cgform_return=group quota cgform_ecannot=You cannot copy quotas cgform_egroup=You are not allowed to copy the quotas of this group cgform_copyto=Copy quotas for $1 on ALL filesystems to ... cgform_all=All groups on your system cgform_select=Selected groups cgform_contain=Groups containing users cgform_doit=Copy cuser_efail=Failed to copy quotas cuser_ecannot=You cannot copy quotas cuser_euallow=You are not allowed to copy the quotas of this user cuser_enouser=No users to copy to cuser_eallowto=You are not allowed to copy quotas to '$1' cuform_title=Copy Quotas cuform_return=user quota cuform_ecannot=You cannot copy quotas cuform_euallow=You are not allowed to copy the quotas of this user cuform_copyto=Copy quotas for $1 on ALL filesystems to ... cuform_all=All users on your system cuform_select=Selected users cuform_members=Members of selected groups cuform_doit=Copy egroup_title=Edit Quota egroup_freturn=filesystem list egroup_greturn=group list egroup_eallowgr=You are not allowed to edit quotas for '$1' egroup_eallowfs=You are not allowed to edit quotas on this filesystem egroup_quotas=Quota for $1 on $2 egroup_bused=Blocks used egroup_kused=Kilobytes used egroup_sblimit=Soft nlock Limit egroup_hblimit=Hard nlock Limit egroup_sklimit=Soft kilobyte limit egroup_hklimit=Hard kilobyte limit egroup_fused=Files used egroup_sflimit=Soft file Limit egroup_hflimit=Hard file Limit egroup_update=Update egroup_listall=List All Quotas euser_title=Edit Quota euser_freturn=filesystem list euser_ureturn=user list euser_eallowus=You are not allowed to edit quotas for '$1' euser_eallowfs=You are not allowed to edit quotas on this filesystem euser_quotas=Quota for $1 on $2 euser_bused=Blocks used euser_kused=Kilobytes used euser_bdisk=Available blocks on disk euser_kdisk=Available kilobytes on disk euser_sdisk=Available space on disk euser_sblimit=Soft block limit euser_hblimit=Hard block limit euser_sklimit=Soft kilobyte limit euser_hklimit=Hard kilobyte limit euser_fused=Files used euser_fdisk=Available files on disk euser_sflimit=Soft file limit euser_hflimit=Hard file limit euser_update=Update euser_listall=List All Quotas gfilesys_title=Group Quotas gfilesys_return=filesystems list gfilesys_ecannot=You cannot edit quotas for '$1' gfilesys_all=All Quotas for $1 gfilesys_blocks=Blocks gfilesys_kbs=Kilobytes gfilesys_space=Disk space gfilesys_files=Files gfilesys_fs=Filesystem gfilesys_used=Used gfilesys_soft=Soft Limit gfilesys_hard=Hard Limit gfilesys_nogquota=Group $1 does not have quotas on any filesystem gfilesys_edit=Edit Quota On: gfilesys_copy=Copy Quotas ggracef_title=Grace Times ggracef_return=group list ggracef_ecannot=You cannot edit grace times on this filesystem ggracef_info=Each filesystem has a grace time for block and file quotas. The grace time determines how long a group can remain over the soft limit before no more files are allowed to be created. ggracef_graces=Group Grace Times for $1 ggracef_block=For block quota ggracef_file=For file quota ggracef_update=Update ggraces_esave=Failed to save grace times ggraces_eedit=You cannot edit grace times on this filesystem ggraces_enumber='$1' is not a number index_quser=User Quotas index_qgroup=Group Quotas index_qboth=User and Group Quotas index_active=Active index_disable=Disable Quotas index_inactive=Inactive index_enable=Enable Quotas index_mountonly=Can only enable at mount index_title=Disk Quotas index_fs=Filesystem index_type=Type index_mount=Mounted From index_status=Status index_action=Action index_return=index index_euser=Edit User Quotas: index_egroup=Edit Group Quotas: index_nosupport=No local filesystems can support quotas. index_mountmod=You can enable quotas for a filesystem in the Disk and Network Filesystems module. lgroups_failed=Failed to list groups lgroups_eallow=You are not allowed to edit quotas on this filesystem lgroups_title=Filesystem Quotas lgroups_return=filesystems list lgroups_toomany=Too many groups have quotas on $1 to display on one page lgroups_quotas=All Group Quotas on $1 lgroups_blocks=Blocks lgroups_kbs=Kilobytes lgroups_space=Disk space lgroups_files=Files lgroups_group=Group lgroups_used=Used lgroups_soft=Soft Limit lgroups_hard=Hard Limit lgroups_noquota=No groups have quotas on $1 lgroups_equota=Edit Quota For: lgroups_grace=Edit Grace Times lgroups_check=Check Quotas lgroups_info=Webmin can be configured to automatically set the quotas on this filesystem when a new Unix group is created. This will only work when the $1 Webmin module is used to add groups. lgroups_newgroup=New Group Quotas sgroup_egroup=You are not allowed to edit quotas for this group sgroup_efs=You are not allowed to edit quotas on this filesystem ssync_ecannot=You cannot set the default quota for this filesystem suser_euser=You are not allowed to edit quotas for this user suser_efs=You are not allowed to edit quotas on this filesystem suser_emaxblocks=You are not allowed to grant block limits above $1 suser_emaxfiles=You are not allowed to grant file limits above $1 ufilesys_title=User Quotas ufilesys_return=filesystems list ufilesys_ecannot=You cannot edit quotas for '$1' ufilesys_all=All Quotas for $1 ufilesys_blocks=Blocks ufilesys_kbs=Kilobytes ufilesys_space=Disk space ufilesys_files=Files ufilesys_fs=Filesystem ufilesys_used=Used ufilesys_soft=Soft Limit ufilesys_hard=Hard Limit ufilesys_nouquota=User $1 does not have quotas on any filesystem ufilesys_edit=Edit Quota On: ufilesys_copy=Copy Quotas ufilesys_grace=Grace ugracef_title=Grace Times ugracef_return=user list ugracef_ecannot=You cannot edit grace times on this filesystem ugracef_info=Each filesystem has a grace time for block and file quotas. The grace time determines how long a user can remain over the soft limit before no more files are allowed to be created. ugracef_graces=User Grace Times for $1 ugracef_block=For block quota ugracef_file=For file quota ugracef_update=Update ugraces_esave=Failed to save grace times ugraces_eedit=You cannot edit grace times on this filesystem ugraces_enumber='$1' is not a number lusers_failed=Failed to list users lusers_eallow=You are not allowed to edit quotas on this filesystem lusers_title=Filesystem Quotas lusers_return=filesystems list lusers_toomany=Too many users have quotas on $1 to display on one page lusers_qoutas=All User Quotas on $1 lusers_bsize=Quota block size : $1 bytes lusers_blocks=Blocks lusers_kbs=Kilobytes lusers_space=Disk space lusers_files=Files lusers_user=User lusers_used=Used lusers_soft=Soft Limit lusers_hard=Hard Limit lusers_grace=Grace lusers_noquota=No users have quotas on $1 lusers_equota=Edit Quota For: lusers_egrace=Edit Grace Times lusers_check=Check Quotas lusers_info=Webmin can be configured to automatically set the quotas on this filesystem when a new Unix user is created. This will only work when the $1 Webmin module is used to add users. lusers_useradmin=Users and Groups lusers_newuser=New User Quotas lusers_sblimit=Soft limit lusers_hblimit=Hard limit lusers_sflimit=Soft file limit lusers_hflimit=Hard file limit lusers_pc_hblocks=Hard % lusers_apply=Apply lusers_emailheader=Email to users approaching quota lusers_email=Send email to users? lusers_interval=Interval between messages lusers_hours=hours lusers_ltype=Limit type lusers_percent=Warn when usage reaches lusers_domain=Domain for user addresses luser_virtualmin=Get domain from Virtualmin? lusers_from=From: address for email grace_seconds=Seconds grace_minutes=Minutes grace_hours=Hours grace_days=Days grace_weeks=Weeks grace_months=Months log_activate_u=Enabled user quotas on $1 log_activate_g=Enabled group quotas on $1 log_activate_ug=Enabled user and group quotas on $1 log_deactivate_u=Disabled user quotas on $1 log_deactivate_g=Disabled group quotas on $1 log_deactivate_ug=Disabled user and group quotas on $1 log_save=Changed quotas for $1 on $2 log_sync=Changed new user quotas on $1 log_email=Change email options on $1 log_gsync=Changed new groups quotas on $1 log_grace_u=Changed user grace times on $1 log_grace_g=Changed group grace times on $1 log_check=Checked quotas on $1 log_copy_u=Copied user $1's quotas log_copy_g=Copied group $1's quotas email_err=Failed to save email options email_ecannot=You are not allowed to modify email options email_einterval=Missing or invalid interval email_epercent=Missing or invalid usage percentage email_edomain=Missing or invalid mail domain email_efrom=Missing or invalid From: address email_msg=Disk usage for user $1 on filesystem $2 has reached $3% of the\nallowed quota.\n\n$4 of disk space is being used, out of a maximum of $5. email_subject=Disk quota exceeded quota/lang/pt0100644000567100000120000000003207060351556013161 0ustar jcameronwheelquota_unlimited=Ilimitado quota/lang/pl0100644000567100000120000002331207366415362013164 0ustar jcameronwheelquota_unlimited=Brak acl_fss=Systemy plików, które ten u¿ytkownik mo¿e zmieniaæ acl_fall=Wszystkie acl_fsel=Wybrane.. acl_quotaon=Mo¿e w³±czaæ i wy³±czaæ quota? acl_quotanew=Mo¿e zmieniaæ ustawienia quota dla nowych u¿ytkowników? acl_ugrace=Mo¿e zmieniaæ czasy ulgi dla u¿ytkowników? acl_vtotal=Mo¿e ogl±daæ ³±czn± ilo¶æ miejsca na dysku? acl_ggrace=Mo¿e zmieniaæ czasy ulgi dla grup? acl_uquota=Mo¿e zmieniaæ quota dla u¿ytkowników dla acl_gquota=Mo¿e zmieniaæ quota dla grup dla acl_uall= Wszystkich u¿ytkowników acl_uonly= Tylko dla u¿ytkowników acl_uexcept= Wszystkich oprócz u¿ytkowników acl_ugroup= U¿ytkowników z grup± g³ówn± acl_gall= Wszystkich grup acl_gnone= ¯adnej grupy acl_gonly= Tylko dla grup acl_gexcept= Wszystkich oprócz grup acl_uuid=U¿ytkowników o nrach UID z zakresu acl_maxblocks=Maksymalna nadawana warto¶æ quota dla bloków acl_maxfiles=Maksymalna nadawana warto¶æ quota dla plikw acl_unlimited=Nieograniczona activate_eallow=Nie masz uprawnieñ do w³±czania ani wyl±czania quota dla tego systemu plików activate_eon=Nie uda³o siê w³±czyæ quota activate_eoff=Nie uda³o siê wy³±czyæ quota check_title=Sprawd¼ Quota check_return=listy $1 check_ecannot=Nie masz uprawnieñ do weryfikacji poprawno¶ci quota na tym systemie plików check_running=Zosta³ uruchomiony program quotacheck w celu zbadania wykorzystania bloków i plików na $1. Na du¿ym systemie plików mo¿e to zaj±æ sporo czasu... check_done=... Zakoñczono. check_rgroup=grup check_ruser=u¿ytkowników cgroup_efail=Nie uda³o siê skopiowaæ quota cgroup_ecannot=Nie masz uprawnieñ do kopiowania quota cgroup_egallow=Nie masz uprawnieñ do kopiowania quota tej grupy cgroup_enogroup=Nie podano grup, do których kopiowaæ cgroup_eallowto=Nie masz uprawnieñ do kopiowania quota do '$1' cgform_title=Kopiuj quota cgform_return=quota dla grupy cgform_ecannot=Nie masz uprawnieñ do kopiowania quota cgform_egroup=Nie masz uprawnieñ do kopiowania quota tej grupy cgform_copyto=Kopiuj quota dla $1 na WSZYSTKICH systemach plików do ... cgform_all=Wszystkich grup w systemie cgform_select=Wybranych grup cgform_contain=Grup zawieraj±cych u¿ytkowników cgform_doit=Kopiuj cuser_efail=Nie uda³o siê skopiowaæ quota cuser_ecannot=Nie masz uprawnieñ do kopiowania quota cuser_euallow=Nie masz uprawnieñ do kopiowania quota tego u¿ytkownika cuser_enouser=Nie podano u¿ytkowników, do których kopiowaæ cuser_eallowto=Nie masz uprawnieñ do kopiowania quota do '$1' cuform_title=Kopiuj quota cuform_return=quota dla u¿ytkownika cuform_ecannot=Nie masz uprawnieñ do kopiowania quota cuform_euallow=Nie masz uprawnieñ do kopiowania quota tego u¿ytkownika cuform_copyto=Kopiuj quota dla $1 na WSZYSTKICH systemach plików do ... cuform_all=Wszystkich u¿ytkowników systemu cuform_select=Wybranych u¿ytkowników cuform_members=Cz³onków wybranych grup cuform_doit=Kopiuj egroup_title=Zmieñ quota egroup_freturn=listy systemów plików egroup_greturn=listy grup egroup_eallowgr=Nie masz uprawnieñ do zmiany quota dla '$1' egroup_eallowfs=Nie masz uprawnieñ do zmiany quota na tym systemie plików egroup_quotas=Quota dla $1 na $2 egroup_bused=Bloków u¿ywanych egroup_sblimit=Miêkki limit dla bloków egroup_hblimit=Twardy limit dla bloków egroup_fused=Plików u¿ywanych egroup_sflimit=Miêkki limit dla plików egroup_hflimit=Twardy limit dla plików egroup_update=Aktualizuj egroup_listall=Poka¿ wszystkie quota euser_title=Zmieñ quota euser_freturn=listy systemów plików euser_ureturn=listy u¿ytkowników euser_eallowus=Nie masz uprawnieñ do zmiany quota dla '$1' euser_eallowfs=Nie masz uprawnieñ do zmiany quota na tym systemie plików euser_quotas=Quota dla $1 na $2 euser_bused=Bloków u¿ywanych euser_bdisk=Bloków dostêpnych na dysku euser_sblimit=Miêkki limit dla bloków euser_hblimit=Twardy limit dla bloków euser_fused=Plików u¿ywanych euser_fdisk=Plików dostêpnych na dysku euser_sflimit=Miêkki limit dla plików euser_hflimit=Twardy limit dla plików euser_update=Aktualizuj euser_listall=Poka¿ wszystkie quota gfilesys_title=Quota dla grup gfilesys_return=lista systemów plików gfilesys_ecannot=Nie masz uprawnieñ do zmiany quota dla '$1' gfilesys_all=Wszystkie quota dla gfilesys_blocks=Bloków gfilesys_files=Plików gfilesys_fs=System plików gfilesys_used=U¿ywane gfilesys_soft=Miêkki limit gfilesys_hard=Twardy limit gfilesys_nogquota=Grupa $1 nie posiada quota na ¿adnym systemie plików gfilesys_edit=Zmieñ quota na: gfilesys_copy=Kopiuj quota ggracef_title=Czasy ulgi ggracef_return=listy grup ggracef_ecannot=Nie masz uprawnieñ do zmiany czasów ulgi dla tego systemu plików ggracef_info=Ka¿dy system plików posiada czas ulgi dla bloków i dla plików. Czas ulgi ukre¶la jak d³ugo miêkki limit mo¿e byæ przekroczony przez grupê, zanim zostanie zablokowana mo¿liwo¶æ tworzenia nowych plików. ggracef_graces=Czasy ulgi dla grupy dla $1 ggracef_block=Dla quota dla bloków ggracef_file=Dla quota dla plików ggracef_update=Aktualizuj ggraces_esave=Nie uda³o siê zapisaæ czasów ulgi ggraces_eedit=Nie masz uprawnieñ do zmiany czasów ulgi dla tego systemu plików ggraces_enumber='$1' nie jest liczb± index_quser=Quota dla u¿ytkowników index_qgroup=Quota dla grup index_qboth=Quota dla u¿ytkowników i grup index_active=w³±czone index_disable=Wy³±cz quota index_inactive=wy³±czone index_enable=W³±cz quota index_title=Quota na dyskach index_fs=System plików index_type=Rodzaj index_mount=Rezyduj±cy na index_status=Stan index_action=Dzia³anie index_return=indeksu index_euser=Zmieñ quota dla u¿ytkownika: index_egroup=Zmieñ quota dla grupy: index_nosupport=¯aden lokalny system plików nie obs³uguje quota lgroups_failed=Nie uda³o siê pokazaæ listy grup lgroups_eallow=Nie masz uprawnieñ do zmiany quota na tym systemie plików lgroups_title=Quota na systemie plików lgroups_return=listy systemów plików lgroups_toomany=Zbyt wiele grup posiada quota na $1, aby wy¶wietliæ je na jednej stronie lgroups_quotas=Quota wszystkich grup na $1 lgroups_blocks=Bloków lgroups_files=Plików lgroups_group=Grup lgroups_used=U¿ywane lgroups_soft=Miêkki limit lgroups_hard=Twardy limit lgroups_noquota=¯adna grupa nie posiada quota na $1 lgroups_equota=Zmieñ quota dla: lgroups_grace=Zmieñ czasy ulgi lgroups_check=Sprawd¼ quota sgroup_egroup=Nie masz uprawnieñ do zmiany quota dla tej grupy sgroup_efs=Nie masz uprawnieñ do zmiany quota na tym systemie plików ssync_ecannot=Nie masz uprawnieñ do ustawiania domy¶lnych limitów quota dla tego systemu plikow suser_euser=Nie masz uprawnieñ do zmiany quota dla tego u¿ytkownika suser_efs=Nie masz uprawnieñ do zmiany quota na tym systemie plików suser_emaxblocks=Nie masz uprawnieñ do ustawiania ograniczenia quota dla bloków ponad $1 suser_emaxfiles=Nie masz uprawnieñ do ustawiania ograniczenia quota dla plików ponad $1 ufilesys_title=Quota dla u¿ytkowników ufilesys_return=listy systemów plików ufilesys_ecannot=Nie masz uprawnieñ do zmiany quota dla '$1' ufilesys_all=Wszystkie quota dla $1 ufilesys_blocks=Bloków ufilesys_files=Plików ufilesys_fs=System plików ufilesys_used=U¿ywane ufilesys_soft=Miêkki limit ufilesys_hard=Twardy limit ufilesys_nouquota=U¿ytkownik $1 nie posiada quota na zadnym systemie plików ufilesys_edit=Zmieñ quota na: ufilesys_copy=Kopiuj quota ugracef_title=Czasy ulgi ugracef_return=listy u¿ytkowników ugracef_ecannot=Nie masz uprawnieñ do zmiany czasów ulgi dla tego systemu plików ugracef_info=Ka¿dy system plików posiada czas ulgi dla bloków i plików. Czas ulgi ukre¶la jak d³ugo miêkki limit mo¿e byæ przekroczony przez u¿ytkownika, zanim zostanie zablokowana mo¿liwo¶æ tworzenia nowych plików. ugracef_graces=Czasy ulgi dla u¿ytkownika dla $1 ugracef_block=Dla quota dla bloków ugracef_file=Dla quota dla plików ugracef_update=Aktualizuj ugraces_esave=Nie uda³o siê zapisaæ czasów ulgi ugraces_eedit=Nie masz uprawnieñ do zmiany czasów ulgi dla tego systemu plików ugraces_enumber='$1' nie jest liczb± lusers_failed=Failed to list users lusers_eallow=Nie masz uprawnieñ do zmiany quota dla tego systemu plików lusers_title=Quota dla systemu plików lusers_return=listy systemów plików lusers_toomany=Zbyt wielu u¿ytkowników posiada quota na $1, aby wy¶wietliæ ich na jednej stronie lusers_qoutas=Quota wszystkich u¿ytkowników na $1 lusers_blocks=Bloków lusers_files=Plików lusers_user=U¿ytkownik lusers_used=U¿ywane lusers_soft=Miêkki limit lusers_hard=Twardy limit lusers_noquota=¯aden u¿ytkownik nie ma quota na $1 lusers_equota=Zmieñ quota dla: lusers_egrace=Zmieñ czasy ulgi lusers_check=Sprawd¼ quota lusers_info=Webmina mo¿na skonfigurowaæ tak, aby automatycznie ustawia³ quota na tym systemie plików podczas tworzenia nowego u¿ytkownika Uniksa. Bêdzie to dzia³aæ jedynie gdy u¿ytkownicy bêd± dodawani przy u¿yciu modu³u Webmina $1. lusers_useradmin=U¿ytkownicy i grupy lusers_newuser=Quota dla nowego u¿ytkownika lusers_sblimit=Miêkki limit dla bloków lusers_hblimit=Twardy limit dla bloków lusers_sflimit=Miêkki limit dla plików lusers_hflimit=Twardy limit dla plików lusers_apply=Zastosuj grace_seconds=Sekund grace_minutes=Minut grace_hours=Godzin grace_days=Dni grace_weeks=Tygodni grace_months=Miesiêcy log_activate_u=W³±czono quota dla u¿ytkowników na $1 log_activate_g=W³±czono quota dla grup na $1 log_activate_ug=W³±czono quota dla u¿ytkowników i grup na $1 log_deactivate_u=Wy³±czono quota dla u¿ytkowników na $1 log_deactivate_g=Wy³±czono quota dla grup na $1 log_deactivate_ug=Wy³±czono quota dla u¿ytkowników i grup na $1 log_save=Zmieniono quota dla $1 na $2 log_sync=Zmieniono quota dla nowych u¿ytkowników na $1 log_grace_u=Zmieniono czasy ulgi dla u¿ytkowników na $1 log_grace_g=Zmieniono czasy ulgi dla grup na $1 log_check=Sprawdzono quota na $1 log_copy_u=Skopiowano quota u¿ytkownika $1 log_copy_g=Skopiowano quota grupy $1 quota/lang/tr0100644000567100000120000002616610225071063013170 0ustar jcameronwheelacl_email=Eposta bildirilerini düzenleyebilir mi? acl_fall=Bütün dosya sistemleri acl_fsel=Seçililer.. acl_fss=Düzenleyebileceði dosya sistemleri acl_gall=Bütün gruplar acl_gexcept=Bu gruplar hariç acl_ggrace=Grup gecikme zamanlarýný düzenleyebilsin? acl_gnone=Hiçbir grup acl_gonly=Sadece bu gruplar acl_gquota=Kotalarýný düzenleyebileceði gruplar acl_maxblocks=Maksimum izin verebileceði blok kotasý acl_maxfiles=Maksimum izin verebileceði dosya kotasý acl_quotanew=Yeni kullanýcýlar için kotalarý yapýlandýrabilsin? acl_quotaon=Kotalarý açýp kapatabilsin? acl_ro=Kotalarý sadece görebilsin, düzenleyemesin? acl_uall=Bütün kullanýcýlar acl_uexcept=Bu kullanýcýlar hariç acl_ugrace=Kullanýcý gecikme zamanlarýný deðiþtirebilsin? acl_ugroup=Birincil grubu bu olan kullanýcýlar acl_unlimited=Limitsiz acl_uonly=Sadece bu kullanýcýlar acl_uquota=Kotalarýný düzenleyebileceði kullanýcýlar acl_uuid=Bu aralýktaki UID'ye sahip kullanýcýlar acl_vtotal=Toplam disk kapasitesini görebilsin? activate_eallow=Bu dosya sistemindeki kotalarý açýp kapamak için izininiz yoktur activate_eoff=Kotalarýn kapatýlmasýnda hata oluþtu activate_eon=Kotalarýn aktif hale getirilmesinde hata oluþtu cgform_all=Sistemdeki bütün gruplar cgform_contain=Bu kullanýcýlarý içeren gruplar cgform_copyto=Bütün dosya sistemlerinde $1 kotasýný buraya kopyala .. cgform_doit=Kopyala cgform_ecannot=Kotalarý kopyalayamazsýnýz cgform_egroup=Bu grubun kotalarýný kopyalamak için izininiz yoktur cgform_return=grup kotasý cgform_select=Seçili gruplar cgform_title=Kotalarý Kopyala cgroup_eallowto='$1''e kotalarý kopyalamak için izininiz yoktur cgroup_ecannot=Kotalarý kopyalayamazsýnýz cgroup_efail=Kotalarýn kopyalanmasýnda hata oluþtu cgroup_egallow=Bu grubun kotalarýný kopyalamak için izininiz yoktur cgroup_enogroup=Kopyalanacak grup yok check_done=... Tamamlandý. check_ecannot=Bu dosya sistemindeki kotalarý kontrol ettiremezsiniz check_return=$1 listesi check_rgroup=grup check_running=quotacheck komutu þimdi $1'deki dosya ve blok kullanýmlarýný araþtýrýyor. Çok büyük dosya sistemlerinde bu uzun zaman alabilir... check_ruser=kullanýcý check_title=Kotalarý kontrol et cuform_all=Sistemdeki bütün kullanýcýlar cuform_copyto=Bütün dosya sistemlerinde $1 için kotalar kopyalanýyor ... cuform_doit=Kopyala cuform_ecannot=Kotalarý kopyalayamazsýnýz cuform_euallow=Bu kullanýcý için kopyalarý kopyalamak için izininiz yoktur cuform_members=Seçili grubun üyeleri cuform_return=kullanýcý kotasý cuform_select=Seçili kullanýcýlar cuform_title=Kotalarý Kopyala cuser_eallowto='$1'e kotalarý kopyalamak için izininiz yoktur cuser_ecannot=Kotalarý kopyalayamazsýnýz cuser_efail=Kotalarýn kopyalanmasýnda hata oluþtu cuser_enouser=Kopyalanacak kullanýcý yok cuser_euallow=Bu kullanýcýnýn kotalarýný kopyalamak için izininiz yoktur egroup_bused=Kullanýlan Blok egroup_eallowfs=Bu dosya sistemindeki kotalarý düzenlemek için izininiz yoktur egroup_eallowgr='$1'in kotalarýný düzenlemek için izininiz yoktur egroup_freturn=dosya sistemi listesi egroup_fused=Kullanýlan Dosya egroup_greturn=grup listesi egroup_hblimit=Hard nlok Limiti egroup_hflimit=Hard Dosya Limiti egroup_hklimit=Hard kb limiti egroup_kused=Kullanýlan KB egroup_listall=Bütün kotalarý listele egroup_quotas=$2deki $1 için Kota egroup_sblimit=Soft nlok Limiti egroup_sflimit=Soft Dosya Limiti egroup_sklimit=Soft kb limiti egroup_title=Kota Düzenle egroup_update=Güncelle email_ecannot=Eposta seçeneklerini deðiþtirmek için izininiz yoktur email_edomain=Eksik ya da geçersiz eposta alan adý email_einterval=Eksik ya da geçersiz aralýk email_epercent=Eksik ya da geçersiz kullaným yüzdesi email_err=Eposta seçeneklerinin kaydedilmesinde hata oluþtu euser_bdisk=Diskteki kullanýlabilir blok euser_bused=Kullanýlan Blok euser_eallowfs=Bu dosya sistemindeki kotalarý düzenlemek için izininiz yoktur euser_eallowus='$1'in kotalarýný düzenlemek için izininiz yoktur euser_fdisk=Diskteki kullanýlabilir dosya euser_freturn=dosya sistemi listesi euser_fused=Kullanýlan Dosya euser_hblimit=Hard Blok Limiti euser_hflimit=Hard Dosya Limiti euser_hklimit=Hard kb limiti euser_kdisk=Diskteki kullanýlabilir kb euser_kused=Kullanýlan kb euser_listall=Bütün Kotalarý Listele euser_quotas=$2deki $1 için Kota euser_sblimit=Soft Blok Limiti euser_sdisk=Diskteki kullanýlabilir alan euser_sflimit=Soft Dosya Limiti euser_sklimit=Soft kb limiti euser_title=Kota Düzenle euser_update=Güncelle euser_ureturn=kullanýcý listesi gfilesys_all=Bütün Kotalar gfilesys_blocks=Blok gfilesys_copy=Kotalarý Kopyala gfilesys_ecannot='$1' için kotalarý düzenleyemezsiniz gfilesys_edit=Kota Düzenle: gfilesys_files=Dosya gfilesys_fs=Dosya sistemi gfilesys_hard=Hard Limit gfilesys_kbs=Kilobyte gfilesys_nogquota=$1 grubu herhangi bir dosya sisteminde kotaya sahip deðil gfilesys_return=dosya sistemi listesi gfilesys_soft=Soft Limit gfilesys_space=Disk alaný gfilesys_title=Grup Kotalarý gfilesys_used=Kullanýlan ggracef_block=Blok kotasý için ggracef_ecannot=Bu dosya sistemindeki gecikme zamanlarýný düzenleyemezsiniz. ggracef_file=Dosya kotasý için ggracef_graces=$1 için Grup Gecikme Zamanlarý ggracef_info=Her dosya sistemi blok ve dosya için bir gecikme zamanýna sahiptir. Gecikme zamaný kullanýcýnýn soft limiti aþtýðýnda yeni dosyalarý oluþturamadan önceki süreyi belirler. ggracef_return=grup listesi ggracef_title=Gecikme Zamanlarý ggracef_update=Güncelle ggraces_eedit=Bu dosya sistemindeki gecikme zamanlarýný düzenleyemezsiniz ggraces_enumber='$1' bir numara deðildir ggraces_esave=Gecikme zamanlarýnýn kaydedilmesinde hata oluþtu grace_days=Gün grace_hours=Saat grace_minutes=Dakika grace_months=Ay grace_seconds=Saniye grace_weeks=Hafta index_action=Ýþlem index_active=Aktif index_disable=Kotalarý Kapat index_egroup=Grup Kotalarýný Düzenle: index_enable=Kotalarý Aç index_euser=Kullanýcý Kotalarýný Düzenle: index_fs=Dosya sistemi index_inactive=Inaktif index_mount=Baðlandý index_mountmod=Disk ve Að Dosyasistemleri modülü ile bir dosya sisteminde kotalarý aktif hale getirebilirsiniz index_mountonly=Sadece mount yapýlýrken aktif edilebilir index_nosupport=Yerel dosya sisteminde desteklenen kota yok index_qboth=Kullanýcý ve Grup Kotalarý index_qgroup=Grup Kotalarý index_quser=Kullanýcý Kotalarý index_return=indeks index_status=Durum index_title=Disk Kotalarý index_type=Tip lgroups_blocks=Blok lgroups_check=Kotalarý Kontrol Et lgroups_eallow=Bu dosya sisteminde kotalarý düzenlemek için izininiz yoktur lgroups_equota=Bunun için kotayý düzenle: lgroups_failed=Gruplarýn listelenmesinde hata oluþtu lgroups_files=Dosya lgroups_grace=Gecikme Zamanlarýný Düzenle lgroups_group=Grup lgroups_hard=Hard Limit lgroups_info=Webmin yeni bir Unix grubu oluþturulduðunda bu dosya sistemindeki kotalarýný otomatik olarak belirlemek için yapýlandýrýldý. Bu özellik sadece $1 Webmin modülü ile grup eklendiðinde çalýþacaktýr. lgroups_kbs=Kilobyte lgroups_newgroup=Yeni Grup Kotalarý lgroups_noquota=$1'de kotaya sahip grup yok lgroups_quotas=$1'deki Bütün Grup Kotalarý lgroups_return=dosya sistemi listesi lgroups_soft=Soft Limit lgroups_space=Disk alaný lgroups_title=Dosya sistemi kotalarý lgroups_toomany=$1'de 1 sayfada gösterilemeyecek kadar çok kotaya sahip grup var lgroups_used=Kullanýlan log_activate_g=$1'de grup kotalarý aktif hale getirildi log_activate_u=$1'de kullanýcý kotalarý aktif hale getirildi log_activate_ug=$1'de kullanýcý ve grup kotalarý aktif hale getirildi log_check=$1'de kotalar kontrol edildi log_copy_g=Grup $1'in kotalarý kopyalandý log_copy_u=Kullanýcý $1'in kotalarý kopyalandý log_deactivate_g=$1'de grup kotalarý kapatýldý log_deactivate_u=$1'de kullanýcý kotalarý kapatýldý log_deactivate_ug=$1'de kullanýcý ve grup kotalarý kapatýldý log_email=$1 için eposta seçenekleri deðiþtirildi log_grace_g=$1'de grup gecikme zamanlarý deðiþtirildi log_grace_u=$1'de kullanýcý gecikme zamanlarý deðiþtirildi log_gsync=$1 'deki yeni grup kotalarý deðiþtirildi log_save=$2'de $1 için kotalar deðiþtirildi log_sync=$1'de yeni kullanýcý kotalarý deðiþtirildi lusers_apply=Uygula lusers_blocks=Blok lusers_bsize=Kota blok boyutu : $1 byte lusers_check=Kotalarý Kontrol Et lusers_domain=Kullanýcý adresleri için alan adý lusers_eallow=Bu dosya sistemindeki kotalarý düzenlemek için izininiz yoktur lusers_egrace=Gecikme Sürelerini Düzenle lusers_email=Kullanýcýlara eposta gönderilsin mi? lusers_emailheader=Kota dolarken kullanýcýlara eposta gönder lusers_equota=Kotalarý Düzenle: lusers_failed=Kullanýcýlarýn listelenmesinde hata oluþtu lusers_files=Dosya lusers_grace=Süre lusers_hard=Hard Limit lusers_hblimit=Hard Blok Limiti lusers_hflimit=Hard Dosya Limiti lusers_hours=saat lusers_info=Webmin yeni bir Unix kullanýcýsý oluþturulduðunda bu dosya sistemindeki kotasýnýn otomatik olarak ayarlanmasý için yapýlandýrýlabilir. Bu sadece kullanýcý eklenirken Webmin Kullanýcýlar ve Gruplar Modülü kullanýldýðýnda geçerlidir lusers_interval=Mesajlarýn arasý aralýk lusers_kbs=Kilobyte lusers_ltype=Limit tipi lusers_newuser=Yeni Kullanýcý Kotalarý lusers_noquota=Burada kotaya sahip kullanýcý yok lusers_pc_hblocks=Hard % lusers_percent=Kullaným oranýna ulaþtýðýnda uyar lusers_qoutas=$1'deki Bütün Kullanýcý Kotalarý lusers_return=dosya sistemleri listesi lusers_sblimit=Soft Blok Limiti lusers_sflimit=Soft Dosya Limiti lusers_soft=Soft Limit lusers_space=Disk alaný lusers_title=Dosya sistemi kotalarý lusers_toomany=$1 üzerinde bir sayfada gösterilmeyecek kadar fazla kotaya sahip kullanýcý var lusers_used=Kullanýlan lusers_user=Kullanýcý lusers_useradmin=Kullanýcýlar ve Gruplar quota_unlimited=Limitsiz sgroup_efs=Bu dosya sistemindeki kotalarý deðiþtirmek için izininiz yoktur. sgroup_egroup=Bu grubun kotalarý deðiþtirmek için izininiz yoktur ssync_ecannot=Bu dosya sisteminde öntanýmlý kotayý belirleyemezsiniz suser_efs=Bu dosya sistemindeki kotalarý deðiþtirmek için izininiz yoktur. suser_emaxblocks=$1 'in üzerinde blok limiti belirleyemezsiniz suser_emaxfiles=$1 'in üzerinde dosya limiti belirleyemezsiniz suser_euser=Bu kullanýcýnýn kotalarýný deðiþtirmek için izininiz yoktur ufilesys_all=$1 için Bütün Kotalar ufilesys_blocks=Blok ufilesys_copy=Kotalarý Kopyala ufilesys_ecannot='$1' için kotalarý düzenleyemezsiniz ufilesys_edit=Buradaki Kotalarý Düzenle: ufilesys_files=Dosya ufilesys_fs=Dosya Sistemi ufilesys_grace=Gecikme süresi ufilesys_hard=Hard Limit ufilesys_kbs=Kilobyte ufilesys_nouquota=$1 kullanýcýsý bu dosya sisteminde herhangi bir kotaya sahip deðildir ufilesys_return=dosya sistemleri listesi ufilesys_soft=Soft Limit ufilesys_space=Disk alaný ufilesys_title=Kullanýcý Kotalarý ufilesys_used=Kullanýlan ugracef_block=Blok kotalarý için ugracef_ecannot=Bu dosya sistemindeki gecikme sürelerini deðiþtiremezsiniz ugracef_file=Dosya kotalarý için ugracef_graces=$1 için Kullanýcý Gecikme Süreleri ugracef_info=Her dosya sistemi blok ve dosya için bir gecikme zamanýna sahiptir. Gecikme zamaný kullanýcýnýn soft limiti aþtýðýnda daha fazla dosya oluþturamadan önceki süreyi belirler. ugracef_return=kullanýcý listesi ugracef_title=Gecikme Zamanlarý ugracef_update=Güncelle ugraces_eedit=Bu dosya sistemindeki gecikme sürelerini deðiþtiremezsiniz ugraces_enumber='$1' bir sayý deðildir ugraces_esave=Gecikme sürelerinin kaydedilmesinde hata oluþtu quota/lang/ja_JP.euc0100664000567100000120000002132410067670055014304 0ustar jcameronwheelquota_unlimited=̵À©¸Â acl_fss=¤³¤Î¥æ¡¼¥¶¤¬ÊÔ½¸¤Ç¤­¤ë¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à acl_fall=¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à acl_fsel=ÁªÂò.. acl_quotaon=¥¯¥©¡¼¥¿¤òÍ­¸ú/̵¸ú¤Ë¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¤«¡© acl_quotanew=¿·µ¬¥æ¡¼¥¶¤Ë¥¯¥©¡¼¥¿¤òÀßÄê²Äǽ¤Ë¤·¤Þ¤¹¤«¡© acl_ugrace=¥æ¡¼¥¶¤Îͱͽ»þ´Ö¤òÊÔ½¸²Äǽ¤Ë¤·¤Þ¤¹¤«¡© acl_vtotal=¹ç·×¥Ç¥£¥¹¥¯Îΰè¤òɽ¼¨²Äǽ¤Ë¤·¤Þ¤¹¤«¡© acl_ggrace=¥°¥ë¡¼¥×¤Îͱͽ»þ´Ö¤òÊÔ½¸²Äǽ¤Ë¤·¤Þ¤¹¤«¡© acl_uquota=¤³¤Î¥æ¡¼¥¶¤¬¥¯¥©¡¼¥¿¤òÊÔ½¸²Äǽ¤Ê¥æ¡¼¥¶ acl_gquota=¤³¤Î¥æ¡¼¥¶¤¬¥¯¥©¡¼¥¿¤òÊÔ½¸²Äǽ¤Ê¥°¥ë¡¼¥× acl_uall= ¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶ acl_uonly= ¼¡¤Î¥æ¡¼¥¶¤Î¤ß acl_uexcept= ¼¡¤Î¥æ¡¼¥¶°Ê³°¤¹¤Ù¤Æ acl_ugroup= ¥×¥é¥¤¥Þ¥ê ¥°¥ë¡¼¥×¤Î¥æ¡¼¥¶ acl_gall= ¤¹¤Ù¤Æ¤Î¥°¥ë¡¼¥× acl_gnone= ¥°¥ë¡¼¥×¤Ê¤· acl_gonly= ¥°¥ë¡¼¥×¤Î¤ß acl_gexcept= ¥°¥ë¡¼¥×°Ê³°¤¹¤Ù¤Æ activate_eallow=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ï¥¯¥©¡¼¥¿¤òÍ­¸ú/̵¸ú¤Ë¤Ç¤­¤Þ¤»¤ó activate_eon=¥¯¥©¡¼¥¿¤ò¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ activate_eoff=¥¯¥©¡¼¥¿¤òÈó¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ check_title=¥¯¥©¡¼¥¿¤Î¸¡ºº check_return=$1 ¥ê¥¹¥È check_ecannot=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ï¥¯¥©¡¼¥¿¤ò¸¡ºº¤Ç¤­¤Þ¤»¤ó check_running=quotacheck ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ$1¤Î¥Ö¥í¥Ã¥¯¤È¥Õ¥¡¥¤¥ë»ÈÍÑΨ¤òÄ´¤Ù¤Þ¤¹¡£¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤¬Èó¾ï¤ËÂ礭¤¤¾ì¹ç¤Ï¤«¤Ê¤ê»þ´Ö¤¬¤«¤«¤ê¤Þ¤¹... check_done=... ´°Î»¤·¤Þ¤·¤¿¡£ check_rgroup=¥°¥ë¡¼¥× check_ruser=¥æ¡¼¥¶ cgroup_efail=¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ cgroup_ecannot=¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó cgroup_egallow=¤³¤Î¥°¥ë¡¼¥×¤Î¥¯¥©¡¼¥¿¤Ï¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó cgroup_enogroup=¥³¥Ô¡¼¤¹¤ë¥°¥ë¡¼¥×¤¬¤¢¤ê¤Þ¤»¤ó cgroup_eallowto='$1' ¤Ë¥¯¥©¡¼¥¿¤Ï¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó cgform_title=¥¯¥©¡¼¥¿¤Î¥³¥Ô¡¼ cgform_return=¥°¥ë¡¼¥× ¥¯¥©¡¼¥¿ cgform_ecannot=¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó cgform_egroup=¤³¤Î¥°¥ë¡¼¥×¤Î¥¯¥©¡¼¥¿¤Ï¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó cgform_copyto=¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç$1 ¤Î¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼... cgform_all=¥·¥¹¥Æ¥à¤Î¤¹¤Ù¤Æ¤Î¥°¥ë¡¼¥× cgform_select=ÁªÂò¤µ¤ì¤¿¥°¥ë¡¼¥× cgform_contain=¥æ¡¼¥¶¤ò´Þ¤à¥°¥ë¡¼¥× cgform_doit=¥³¥Ô¡¼ cuser_efail=¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ cuser_ecannot=¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó cuser_euallow=¤³¤Î¥æ¡¼¥¶¤Î¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó cuser_enouser=¥³¥Ô¡¼¤¹¤ë¥æ¡¼¥¶¤¬¤¢¤ê¤Þ¤»¤ó cuser_eallowto='$1' ¤Ë¥¯¥©¡¼¥¿¤Ï¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó cuform_title=¥¯¥©¡¼¥¿¤Î¥³¥Ô¡¼ cuform_return=¥æ¡¼¥¶ ¥¯¥©¡¼¥¿ cuform_ecannot=¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó cuform_euallow=¤³¤Î¥æ¡¼¥¶¤Î¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó cuform_copyto=¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç$1 ¤Î¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼... cuform_all=¥·¥¹¥Æ¥à¤Î¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶ cuform_select=ÁªÂò¤µ¤ì¤¿¥æ¡¼¥¶ cuform_members=ÁªÂò¤µ¤ì¤¿¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼ cuform_doit=¥³¥Ô¡¼ egroup_title=¥¯¥©¡¼¥¿¤ÎÊÔ½¸ egroup_freturn=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Î¥ê¥¹¥È egroup_greturn=¥°¥ë¡¼¥× ¥ê¥¹¥È egroup_eallowgr='$1' ¤Î¥¯¥©¡¼¥¿¤ÏÊÔ½¸¤Ç¤­¤Þ¤»¤ó egroup_eallowfs=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ï¥¯¥©¡¼¥¿¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó egroup_quotas=$1¤Î¥¯¥©¡¼¥¿($2) egroup_bused=»ÈÍѤµ¤ì¤¿¥Ö¥í¥Ã¥¯ egroup_sblimit=¥½¥Õ¥È ¥Ö¥í¥Ã¥¯À©¸Â egroup_hblimit=¥Ï¡¼¥É ¥Ö¥í¥Ã¥¯À©¸Â egroup_fused=»ÈÍѤµ¤ì¤¿¥Õ¥¡¥¤¥ë egroup_sflimit=¥½¥Õ¥È ¥Õ¥¡¥¤¥ëÀ©¸Â egroup_hflimit=¥Ï¡¼¥É ¥Õ¥¡¥¤¥ëÀ©¸Â egroup_update=¹¹¿· egroup_listall=¤¹¤Ù¤Æ¤Î¥¯¥©¡¼¥¿¤ò¥ê¥¹¥È euser_title=¥¯¥©¡¼¥¿¤ÎÊÔ½¸ euser_freturn=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Î¥ê¥¹¥È euser_ureturn=¥æ¡¼¥¶ ¥ê¥¹¥È euser_eallowus='$1' ¤Î¥¯¥©¡¼¥¿¤ÏÊÔ½¸¤Ç¤­¤Þ¤»¤ó euser_eallowfs=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ï¥¯¥©¡¼¥¿¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó euser_quotas=$1¤Î¥¯¥©¡¼¥¿($2) euser_bused=»ÈÍѤµ¤ì¤¿¥Ö¥í¥Ã¥¯ euser_bdisk=¥Ç¥£¥¹¥¯¤Ç»ÈÍѲÄǽ¤Ê¥Ö¥í¥Ã¥¯ euser_sblimit=¥½¥Õ¥È ¥Ö¥í¥Ã¥¯À©¸Â euser_hblimit=¥Ï¡¼¥É ¥Ö¥í¥Ã¥¯À©¸Â euser_fused=»ÈÍѤµ¤ì¤¿¥Õ¥¡¥¤¥ë euser_fdisk=¥Ç¥£¥¹¥¯¤Ç»ÈÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë euser_sflimit=¥½¥Õ¥È ¥Õ¥¡¥¤¥ëÀ©¸Â euser_hflimit=¥Ï¡¼¥É ¥Õ¥¡¥¤¥ëÀ©¸Â euser_update=¹¹¿· euser_listall=¤¹¤Ù¤Æ¤Î¥¯¥©¡¼¥¿¤ò¥ê¥¹¥È gfilesys_title=¥°¥ë¡¼¥× ¥¯¥©¡¼¥¿ gfilesys_return=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Î¥ê¥¹¥È gfilesys_ecannot='$1' ¤Î¥¯¥©¡¼¥¿¤ÏÊÔ½¸¤Ç¤­¤Þ¤»¤ó gfilesys_all=¤¹¤Ù¤Æ¤Î¥¯¥©¡¼¥¿ gfilesys_blocks=¥Ö¥í¥Ã¥¯ gfilesys_files=¥Õ¥¡¥¤¥ë gfilesys_fs=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à gfilesys_used=»ÈÍÑºÑ gfilesys_soft=¥½¥Õ¥ÈÀ©¸Â gfilesys_hard=¥Ï¡¼¥ÉÀ©¸Â gfilesys_nogquota=¥°¥ë¡¼¥×$1 ¤Ï¤¤¤º¤ì¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤â¥¯¥©¡¼¥¿¤¬¤¢¤ê¤Þ¤»¤ó gfilesys_edit=¥¯¥©¡¼¥¿¤ÎÊÔ½¸: gfilesys_copy=¥¯¥©¡¼¥¿¤Î¥³¥Ô¡¼ ggracef_title=ͱͽ»þ´Ö ggracef_return=¥°¥ë¡¼¥× ¥ê¥¹¥È ggracef_ecannot=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ïͱͽ´ü´Ö¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó ggracef_info=³Æ¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ë¤Ï¥Ö¥í¥Ã¥¯¤È¥Õ¥¡¥¤¥ë ¥¯¥©¡¼¥¿¤Îͱͽ»þ´Ö¤¬¤¢¤ê¤Þ¤¹¡£Í±Í½»þ´Ö¤Ï¡¢¤½¤ì°Ê¾å¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤­¤Ê¤¤¥½¥Õ¥ÈÀ©¸Â¾å¤Ç¥°¥ë¡¼¥×¤¬Â¸Â³¤Ç¤­¤ë»þ´Ö¤òÄêµÁ¤·¤Þ¤¹¡£ ggracef_graces=$1 ¤Î¥°¥ë¡¼¥×ͱͽ»þ´Ö ggracef_block=¥Ö¥í¥Ã¥¯ ¥¯¥©¡¼¥¿ ggracef_file=¥Õ¥¡¥¤¥ë ¥¯¥©¡¼¥¿ ggracef_update=¹¹¿· ggraces_esave=ͱͽ»þ´Ö¤òÊݸ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ ggraces_eedit=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ïͱͽ´ü´Ö¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó ggraces_enumber='$1' ¤Ï¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó index_quser=¥æ¡¼¥¶ ¥¯¥©¡¼¥¿ index_qgroup=¥°¥ë¡¼¥× ¥¯¥©¡¼¥¿ index_qboth=¥æ¡¼¥¶¤È¥°¥ë¡¼¥× ¥¯¥©¡¼¥¿ index_active=¥¢¥¯¥Æ¥£¥Ö index_disable=¥¯¥©¡¼¥¿¤ò̵¸ú index_inactive=Èó¥¢¥¯¥Æ¥£¥Ö index_enable=¥¯¥©¡¼¥¿¤òÍ­¸ú index_title=¥Ç¥£¥¹¥¯ ¥¯¥©¡¼¥¿ index_fs=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à index_type=¼ïÎà index_mount=¥Þ¥¦¥ó¥È¸µ index_status=¥¹¥Æ¡¼¥¿¥¹ index_action=¥¢¥¯¥·¥ç¥ó index_return=¥¤¥ó¥Ç¥Ã¥¯¥¹ index_euser=¥æ¡¼¥¶ ¥¯¥©¡¼¥¿¤ÎÊÔ½¸: index_egroup=¥°¥ë¡¼¥× ¥¯¥©¡¼¥¿¤ÎÊÔ½¸: index_nosupport=¥í¡¼¥«¥ë ¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ï¥¯¥©¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤Ç¤­¤Þ¤»¤ó lgroups_failed=¥°¥ë¡¼¥×¤ò¥ê¥¹¥È¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ lgroups_eallow=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ï¥¯¥©¡¼¥¿¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó lgroups_title=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à ¥¯¥©¡¼¥¿ lgroups_return=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Î¥ê¥¹¥È lgroups_toomany=1 ¥Ú¡¼¥¸¤Çɽ¼¨¤¹¤ë¤Ë¤Ï$1 ¤Ç¥¯¥©¡¼¥¿¤ò»ý¤Ä¥°¥ë¡¼¥×¤¬Â¿¤¹¤®¤Þ¤¹ lgroups_quotas=$1 ¤Î¤¹¤Ù¤Æ¤Î¥°¥ë¡¼¥× ¥¯¥©¡¼¥¿ lgroups_blocks=¥Ö¥í¥Ã¥¯ lgroups_files=¥Õ¥¡¥¤¥ë lgroups_group=¥°¥ë¡¼¥× lgroups_used=»ÈÍÑºÑ lgroups_soft=¥½¥Õ¥ÈÀ©¸Â lgroups_hard=¥Ï¡¼¥ÉÀ©¸Â lgroups_noquota=$1 ¤Ç¥¯¥©¡¼¥¿¤ò»ý¤Ä¥°¥ë¡¼¥×¤Ï¤¢¤ê¤Þ¤»¤ó lgroups_equota=¥¯¥©¡¼¥¿¤ÎÊÔ½¸: lgroups_grace=ͱͽ»þ´Ö¤òÊÔ½¸ lgroups_check=¥¯¥©¡¼¥¿¤ò¸¡ºº sgroup_egroup=¤³¤Î¥°¥ë¡¼¥×¤Î¥¯¥©¡¼¥¿¤ÏÊÔ½¸¤Ç¤­¤Þ¤»¤ó sgroup_efs=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ï¥¯¥©¡¼¥¿¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó ssync_ecannot=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È ¥¯¥©¡¼¥¿¤òÀßÄê¤Ç¤­¤Þ¤»¤ó suser_euser=¤³¤Î¥æ¡¼¥¶¤Î¥¯¥©¡¼¥¿¤ÏÊÔ½¸¤Ç¤­¤Þ¤»¤ó suser_efs=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ï¥¯¥©¡¼¥¿¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó ufilesys_title=¥æ¡¼¥¶ ¥¯¥©¡¼¥¿ ufilesys_return=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Î¥ê¥¹¥È ufilesys_ecannot='$1' ¤Î¥¯¥©¡¼¥¿¤ÏÊÔ½¸¤Ç¤­¤Þ¤»¤ó ufilesys_all=¤¹¤Ù¤Æ¤Î¥¯¥©¡¼¥¿ $1 ufilesys_blocks=¥Ö¥í¥Ã¥¯ ufilesys_files=¥Õ¥¡¥¤¥ë ufilesys_fs=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à ufilesys_used=»ÈÍÑºÑ ufilesys_soft=¥½¥Õ¥ÈÀ©¸Â ufilesys_hard=¥Ï¡¼¥ÉÀ©¸Â ufilesys_nouquota=¥æ¡¼¥¶$1 ¤Ï¤¤¤º¤ì¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤â¥¯¥©¡¼¥¿¤¬¤¢¤ê¤Þ¤»¤ó ufilesys_edit=¥¯¥©¡¼¥¿¤ÎÊÔ½¸: ufilesys_copy=¥¯¥©¡¼¥¿¤Î¥³¥Ô¡¼ ugracef_title=ͱͽ»þ´Ö ugracef_return=¥æ¡¼¥¶ ¥ê¥¹¥È ugracef_ecannot=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ïͱͽ´ü´Ö¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó ugracef_info=³Æ¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ë¤Ï¥Ö¥í¥Ã¥¯¤È¥Õ¥¡¥¤¥ë ¥¯¥©¡¼¥¿¤Îͱͽ»þ´Ö¤¬¤¢¤ê¤Þ¤¹¡£Í±Í½»þ´Ö¤Ï¡¢¤½¤ì°Ê¾å¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤­¤Ê¤¤¥½¥Õ¥ÈÀ©¸Â¾å¤Ç¥æ¡¼¥¶¤¬Â¸Â³¤Ç¤­¤ë»þ´Ö¤òÄêµÁ¤·¤Þ¤¹¡£ ugracef_graces=$1 ¤Î¥æ¡¼¥¶Í±Í½»þ´Ö ugracef_block=¥Ö¥í¥Ã¥¯ ¥¯¥©¡¼¥¿ ugracef_file=¥Õ¥¡¥¤¥ë ¥¯¥©¡¼¥¿ ugracef_update=¹¹¿· ugraces_esave=ͱͽ»þ´Ö¤òÊݸ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ ugraces_eedit=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ïͱͽ´ü´Ö¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó ugraces_enumber='$1' ¤Ï¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó lusers_failed=¥æ¡¼¥¶¤ò¥ê¥¹¥È¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ lusers_eallow=¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ç¤Ï¥¯¥©¡¼¥¿¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó lusers_title=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à ¥¯¥©¡¼¥¿ lusers_return=¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Î¥ê¥¹¥È lusers_toomany=1 ¥Ú¡¼¥¸¤Çɽ¼¨¤¹¤ë¤Ë¤Ï$1¤Ç¥¯¥©¡¼¥¿¤ò»ý¤Ä¥æ¡¼¥¶¤¬Â¿¤¹¤®¤Þ¤¹ lusers_qoutas=$1 ¤Î¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶ ¥¯¥©¡¼¥¿ lusers_blocks=¥Ö¥í¥Ã¥¯ lusers_files=¥Õ¥¡¥¤¥ë lusers_user=¥æ¡¼¥¶ lusers_used=»ÈÍÑºÑ lusers_soft=¥½¥Õ¥ÈÀ©¸Â lusers_hard=¥Ï¡¼¥ÉÀ©¸Â lusers_noquota=$1 ¤Ç¥¯¥©¡¼¥¿¤ò»ý¤Ä¥æ¡¼¥¶¤Ï¤¢¤ê¤Þ¤»¤ó lusers_equota=¥¯¥©¡¼¥¿¤ÎÊÔ½¸: lusers_egrace=ͱͽ»þ´Ö¤ÎÊÔ½¸ lusers_check=¥¯¥©¡¼¥¿¤Î¸¡ºº lusers_info=¿·µ¬¤Î Unix ¥æ¡¼¥¶¤¬ºîÀ®¤µ¤ì¤¿¤È¤­¤Ë¤³¤Î¥Õ¥¡¥¤¥ë ¥·¥¹¥Æ¥à¤Ë¼«Æ°Åª¤Ë¥¯¥©¡¼¥¿¤òÀßÄꤹ¤ë¤è¤¦¤Ë Webmin ¤òÀßÄê¤Ç¤­¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥æ¡¼¥¶¤òÄɲ乤뤿¤á¤Ë $1 Webmin ¥â¥¸¥å¡¼¥ë¤¬»ÈÍѤµ¤ì¤¿¤È¤­¤Ë¤Î¤ßưºî¤·¤Þ¤¹¡£ lusers_useradmin=¥æ¡¼¥¶¤È¥°¥ë¡¼¥× lusers_newuser=¿·µ¬¤Î¥æ¡¼¥¶ ¥¯¥©¡¼¥¿ lusers_sblimit=¥½¥Õ¥È ¥Ö¥í¥Ã¥¯À©¸Â lusers_hblimit=¥Ï¡¼¥É ¥Ö¥í¥Ã¥¯À©¸Â lusers_sflimit=¥½¥Õ¥È ¥Õ¥¡¥¤¥ëÀ©¸Â lusers_hflimit=¥Ï¡¼¥É ¥Õ¥¡¥¤¥ëÀ©¸Â lusers_apply=ŬÍÑ grace_seconds=Éà grace_minutes=ʬ grace_hours=»þ grace_days=Æü grace_weeks=½µ grace_months=·î log_activate_u=$1 ¤Ç¥æ¡¼¥¶¤Î¥¯¥©¡¼¥¿¤òÍ­¸ú¤Ë¤·¤Þ¤·¤¿ log_activate_g=$1 ¤Ç¥°¥ë¡¼¥×¤Î¥¯¥©¡¼¥¿¤òÍ­¸ú¤Ë¤·¤Þ¤·¤¿ log_activate_ug=$1 ¤Ç¥æ¡¼¥¶¤È¥°¥ë¡¼¥×¤Î¥¯¥©¡¼¥¿¤òÍ­¸ú¤Ë¤·¤Þ¤·¤¿ log_deactivate_u=$1 ¤Ç¥æ¡¼¥¶¤Î¥¯¥©¡¼¥¿¤ò̵¸ú¤Ë¤·¤Þ¤·¤¿ log_deactivate_g=$1 ¤Ç¥°¥ë¡¼¥×¤Î¥¯¥©¡¼¥¿¤ò̵¸ú¤Ë¤·¤Þ¤·¤¿ log_deactivate_ug=$1 ¤Ç¥æ¡¼¥¶¤È¥°¥ë¡¼¥×¤Î¥¯¥©¡¼¥¿¤ò̵¸ú¤Ë¤·¤Þ¤·¤¿ log_save=$2 ¾å¤Î$1 ¤Î¥¯¥©¡¼¥¿¤òÊѹ¹¤·¤Þ¤·¤¿ log_sync=$1 ¤Ç¿·µ¬¤Î¥æ¡¼¥¶ ¥¯¥©¡¼¥¿¤òÊѹ¹¤·¤Þ¤·¤¿ log_grace_u=$1 ¤Ç¥æ¡¼¥¶Í±Í½»þ´Ö¤òÊѹ¹¤·¤Þ¤·¤¿ log_grace_g=$1 ¤Ç¥°¥ë¡¼¥×ͱͽ»þ´Ö¤òÊѹ¹¤·¤Þ¤·¤¿ log_check=$1 ¤Ç¥¯¥©¡¼¥¿¤ò¸¡ºº¤·¤Þ¤·¤¿ log_copy_u=¥æ¡¼¥¶ $1 ¤Î¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿ log_copy_g=¥°¥ë¡¼¥× $1 ¤Î¥¯¥©¡¼¥¿¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿ quota/lang/ko_KR.euc0100664000567100000120000002033607305563347014336 0ustar jcameronwheelquota_unlimited=Á¦ÇÑ ¾øÀ½ acl_fss=ÀÌ »ç¿ëÀÚ°¡ ÆíÁýÇÒ ¼ö ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛ acl_fall=¸ðµç ÆÄÀÏ ½Ã½ºÅÛ acl_fsel=¼±ÅÃÇÑ ÆÄÀÏ ½Ã½ºÅÛ.. acl_quotaon=ÇÒ´ç·®À» »ç¿ë °¡´É/»ç¿ë ºÒ´ÉÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï±î? acl_quotanew=»õ »ç¿ëÀÚÀÇ ÇÒ´ç·®À» ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï±î? acl_ugrace=»ç¿ëÀÚ À¯¿¹ ±â°£À» ÆíÁýÇÒ ¼ö ÀÖ½À´Ï±î? acl_vtotal=ÃÑ µð½ºÅ© °ø°£À» º¼ ¼ö ÀÖ½À´Ï±î? acl_ggrace=±×·ì À¯¿¹ ±â°£À» ÆíÁýÇÒ ¼ö ÀÖ½À´Ï±î? acl_uquota=ÀÌ »ç¿ëÀÚ¿¡ ÀÇÇÑ ÇÒ´ç·® ÆíÁýÀÌ °¡´ÉÇÑ »ç¿ëÀÚ acl_gquota=ÀÌ »ç¿ëÀÚ¿¡ ÀÇÇÑ ÇÒ´ç·® ÆíÁýÀÌ °¡´ÉÇÑ ±×·ì acl_uall= ¸ðµç »ç¿ëÀÚ acl_uonly= »ç¿ëÀÚ¸¸ acl_uexcept= »ç¿ëÀÚ¸¦ Á¦¿ÜÇÑ ¸ðµÎ acl_ugroup= ÁÖ ±×·ìÀÌ ÀÖ´Â »ç¿ëÀÚ acl_gall= ¸ðµç ±×·ì acl_gnone= ±×·ì ¾øÀ½ acl_gonly= ±×·ì¸¸ acl_gexcept= ±×·ìÀ» Á¦¿ÜÇÑ ¸ðµÎ activate_eallow=ÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­´Â ÇÒ´ç·®À» »ç¿ë °¡´É/»ç¿ë ºÒ´ÉÀ¸·Î ¼³Á¤ÇÒ ¼ö ¾ø½À´Ï´Ù activate_eon=ÇÒ´ç·®À» Ȱ¼ºÈ­ ¸øÇß½À´Ï´Ù activate_eoff=ÇÒ´ç·®À» ºñ Ȱ¼ºÈ­ÇÏÁö ¸øÇß½À´Ï´Ù check_title=ÇÒ´ç·® °Ë»ç check_return=$1 ¸ñ·Ï check_ecannot=ÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­´Â ÇÒ´ç·®À» °Ë»çÇÒ ¼ö ¾ø½À´Ï´Ù check_running=$1ÀÇ ºí·Ï ¹× ÆÄÀÏ »ç¿ëÀ» °Ë»çÇÏ´Â quotacheck ¸í·ÉÀÌ ½ÇÇàµÇ°í ÀÖ½À´Ï´Ù. ´ëÇü ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­´Â ¸¹Àº ½Ã°£ÀÌ °É¸± ¼ö ÀÖ½À´Ï´Ù... check_done=... ¿Ï·áµÇ¾ú½À´Ï´Ù. check_rgroup=±×·ì check_ruser=»ç¿ëÀÚ cgroup_efail=ÇÒ´ç·®À» º¹»çÇÏÁö ¸øÇß½À´Ï´Ù cgroup_ecannot=ÇÒ´ç·®À» º¹»çÇÒ ¼ö ¾ø½À´Ï´Ù cgroup_egallow=ÀÌ ±×·ìÀÇ ÇÒ´ç·®À» º¹»çÇÒ ¼ö ¾ø½À´Ï´Ù cgroup_enogroup=º¹»çÇÒ ±×·ìÀÌ ¾ø½À´Ï´Ù cgroup_eallowto='$1'¿¡ ÇÒ´ç·®À» º¹»çÇÒ ¼ö ¾ø½À´Ï´Ù cgform_title=ÇÒ´ç·® º¹»ç cgform_return=±×·ì ÇÒ´ç·® cgform_ecannot=ÇÒ´ç·®À» º¹»çÇÒ ¼ö ¾ø½À´Ï´Ù cgform_egroup=ÀÌ ±×·ìÀÇ ÇÒ´ç·®À» º¹»çÇÒ ¼ö ¾ø½À´Ï´Ù cgform_copyto=¸ðµç ÆÄÀÏ ½Ã½ºÅÛÀÇ $1¿¡ ´ëÇØ ÇÒ´ç·®À» º¹»çÇÒ ´ë»ó... cgform_all=½Ã½ºÅÛÀÇ ¸ðµç ±×·ì cgform_select=¼±ÅÃÇÑ ±×·ì cgform_contain=»ç¿ëÀÚ°¡ Æ÷ÇÔµÈ ±×·ì cgform_doit=º¹»ç cuser_efail=ÇÒ´ç·®À» º¹»çÇÏÁö ¸øÇß½À´Ï´Ù cuser_ecannot=ÇÒ´ç·®À» º¹»çÇÒ ¼ö ¾ø½À´Ï´Ù cuser_euallow=ÀÌ »ç¿ëÀÚÀÇ ÇÒ´ç·®À» º¹»çÇÒ ¼ö ¾ø½À´Ï´Ù cuser_enouser=º¹»çÇÒ »ç¿ëÀÚ°¡ ¾ø½À´Ï´Ù cuser_eallowto='$1'¿¡ ÇÒ´ç·®À» º¹»çÇÒ ¼ö ¾ø½À´Ï´Ù cuform_title=ÇÒ´ç·® º¹»ç cuform_return=»ç¿ëÀÚ ÇÒ´ç·® cuform_ecannot=ÇÒ´ç·®À» º¹»çÇÒ ¼ö ¾ø½À´Ï´Ù cuform_euallow=ÀÌ »ç¿ëÀÚÀÇ ÇÒ´ç·®À» º¹»çÇÒ ¼ö ¾ø½À´Ï´Ù cuform_copyto=¸ðµç ÆÄÀÏ ½Ã½ºÅÛÀÇ $1¿¡ ´ëÇØ ÇÒ´ç·®À» º¹»çÇÒ ´ë»ó... cuform_all=½Ã½ºÅÛÀÇ ¸ðµç »ç¿ëÀÚ cuform_select=¼±ÅÃÇÑ »ç¿ëÀÚ cuform_members=¼±ÅÃÇÑ ±×·ìÀÇ ±¸¼º¿ø cuform_doit=º¹»ç egroup_title=ÇÒ´ç·® ÆíÁý egroup_freturn=ÆÄÀÏ ½Ã½ºÅÛ ¸ñ·Ï egroup_greturn=±×·ì ¸ñ·Ï egroup_eallowgr='$1'ÀÇ ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù egroup_eallowfs=ÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­´Â ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù egroup_quotas=$1ÀÇ $2¿¡ ´ëÇÑ ÇÒ´ç·® egroup_bused=»ç¿ëµÈ ºí·Ï egroup_sblimit=¼ÒÇÁÆ® ºí·Ï Á¦ÇÑ egroup_hblimit=ÇÏµå ºí·Ï Á¦ÇÑ egroup_fused=»ç¿ëµÈ ÆÄÀÏ egroup_sflimit=¼ÒÇÁÆ® ÆÄÀÏ Á¦ÇÑ egroup_hflimit=ÇÏµå ÆÄÀÏ Á¦ÇÑ egroup_update=¾÷µ¥ÀÌÆ® egroup_listall=¸ðµç ÇÒ´ç·® ³ª¿­ euser_title=ÇÒ´ç·® ÆíÁý euser_freturn=ÆÄÀÏ ½Ã½ºÅÛ ¸ñ·Ï euser_ureturn=»ç¿ëÀÚ ¸ñ·Ï euser_eallowus='$1'ÀÇ ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù euser_eallowfs=ÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­´Â ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù euser_quotas=$1ÀÇ $2¿¡ ´ëÇÑ ÇÒ´ç·® euser_bused=»ç¿ëµÈ ºí·Ï euser_bdisk=»ç¿ë °¡´ÉÇÑ µð½ºÅ© ºí·Ï euser_sblimit=¼ÒÇÁÆ® ºí·Ï Á¦ÇÑ euser_hblimit=ÇÏµå ºí·Ï Á¦ÇÑ euser_fused=»ç¿ëµÈ ÆÄÀÏ euser_fdisk=»ç¿ë °¡´ÉÇÑ µð½ºÅ© ÆÄÀÏ euser_sflimit=¼ÒÇÁÆ® ÆÄÀÏ Á¦ÇÑ euser_hflimit=ÇÏµå ÆÄÀÏ Á¦ÇÑ euser_update=¾÷µ¥ÀÌÆ® euser_listall=¸ðµç ÇÒ´ç·® ³ª¿­ gfilesys_title=±×·ì ÇÒ´ç·® gfilesys_return=ÆÄÀÏ ½Ã½ºÅÛ ¸ñ·Ï gfilesys_ecannot='$1'ÀÇ ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù gfilesys_all=´ÙÀ½¿¡ ´ëÇÑ ¸ðµç ÇÒ´ç·® gfilesys_blocks=ºí·Ï gfilesys_files=ÆÄÀÏ gfilesys_fs=ÆÄÀÏ ½Ã½ºÅÛ gfilesys_used=»ç¿ëµÊ gfilesys_soft=¼ÒÇÁÆ® Á¦ÇÑ gfilesys_hard=Çϵå Á¦ÇÑ gfilesys_nogquota=±×·ì $1Àº(´Â) ¾Æ¹« ÆÄÀÏ ½Ã½ºÅÛ¿¡µµ ÇÒ´ç·®À» °¡ÁöÁö ¾Ê½À´Ï´Ù gfilesys_edit=ÇÒ´ç·® ÆíÁý ´ë»ó: gfilesys_copy=ÇÒ´ç·® º¹»ç ggracef_title=À¯¿¹ ±â°£ ggracef_return=±×·ì ¸ñ·Ï ggracef_ecannot=ÀÌ ÆÄÀÏ ½Ã½ºÅÛÀÇ À¯¿¹ ±â°£À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù ggracef_info=°¢ ÆÄÀÏ ½Ã½ºÅÛ¸¶´Ù ºí·Ï ¹× ÆÄÀÏ ÇÒ´ç·®¿¡ ´ëÇÑ À¯¿¹ ±â°£ÀÌ ÀÖ½À´Ï´Ù. À¯¿¹ ±â°£Àº ÆÄÀÏÀ» ´õ ÀÛ¼ºÇÒ ¼ö ¾øÀ» ¶§±îÁö ±×·ìÀÌ ¼ÒÇÁÆ® Á¦ÇÑ »óÅ·ΠÀ¯ÁöµÇ´Â ±â°£ÀÔ´Ï´Ù. ggracef_graces=$1ÀÇ ±×·ì À¯¿¹ ±â°£ ggracef_block=ºí·Ï ÇÒ´ç·®ÀÇ °æ¿ì ggracef_file=ÆÄÀÏ ÇÒ´ç·®ÀÇ °æ¿ì ggracef_update=¾÷µ¥ÀÌÆ® ggraces_esave=À¯¿¹ ±â°£À» ÀúÀåÇÏÁö ¸øÇß½À´Ï´Ù ggraces_eedit=ÀÌ ÆÄÀÏ ½Ã½ºÅÛÀÇ À¯¿¹ ±â°£À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù ggraces_enumber='$1'Àº(´Â) ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù index_quser=»ç¿ëÀÚ ÇÒ´ç·® index_qgroup=±×·ì ÇÒ´ç·® index_qboth=»ç¿ëÀÚ ¹× ±×·ì ÇÒ´ç·® index_active=Ȱ¼º »óÅÂÀԴϱî? index_disable=ÇÒ´ç·® »ç¿ë ºÒ´É index_inactive=ºñȰ¼º index_enable=ÇÒ´ç·® »ç¿ë °¡´É index_title=µð½ºÅ© ÇÒ´ç·® index_fs=ÆÄÀÏ ½Ã½ºÅÛ index_type=À¯Çü index_mount=¸¶¿îÆ® ¼Ò½º index_status=»óÅ index_action=µ¿ÀÛ index_return=À妽º index_euser=»ç¿ëÀÚ ÇÒ´ç·® ÆíÁý: index_egroup=±×·ì ÇÒ´ç·® ÆíÁý: index_nosupport=ÇÒ´ç·®À» Áö¿øÇÒ ¼ö ÀÖ´Â ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛÀÌ ¾ø½À´Ï´Ù lgroups_failed=±×·ìÀ» ³ª¿­ÇÏÁö ¸øÇß½À´Ï´Ù lgroups_eallow=ÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­´Â ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù lgroups_title=ÆÄÀÏ ½Ã½ºÅÛ ÇÒ´ç·® lgroups_return=ÆÄÀÏ ½Ã½ºÅÛ ¸ñ·Ï lgroups_toomany=$1¿¡ ÇÒ´ç·®ÀÌ ÀÖ´Â ±×·ìÀÌ ³Ê¹« ¸¹¾Æ ÇÑ ÆäÀÌÁö¿¡ Ç¥½ÃÇÒ ¼ö ¾ø½À´Ï´Ù lgroups_quotas=$1ÀÇ ¸ðµç ±×·ì ÇÒ´ç·® lgroups_blocks=ºí·Ï lgroups_files=ÆÄÀÏ lgroups_group=±×·ì lgroups_used=»ç¿ëµÊ lgroups_soft=¼ÒÇÁÆ® Á¦ÇÑ lgroups_hard=Çϵå Á¦ÇÑ lgroups_noquota=$1¿¡ ÇÒ´ç·®ÀÌ ÀÖ´Â ±×·ìÀÌ ¾ø½À´Ï´Ù lgroups_equota=ÇÒ´ç·® ÆíÁý ´ë»ó: lgroups_grace=À¯¿¹ ±â°£ ÆíÁý lgroups_check=ÇÒ´ç·® °Ë»ç sgroup_egroup=ÀÌ ±×·ìÀÇ ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù sgroup_efs=ÀÌ ÆÄÀÏ ½Ã½ºÅÛÀÇ ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù ssync_ecannot=ÀÌ ÆÄÀÏ ½Ã½ºÅÛÀÇ ±âº» ÇÒ´ç·®À» ¼³Á¤ÇÒ ¼ö ¾ø½À´Ï´Ù suser_euser=ÀÌ »ç¿ëÀÚÀÇ ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù suser_efs=ÀÌ ÆÄÀÏ ½Ã½ºÅÛÀÇ ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù ufilesys_title=»ç¿ëÀÚ ÇÒ´ç·® ufilesys_return=ÆÄÀÏ ½Ã½ºÅÛ ¸ñ·Ï ufilesys_ecannot='$1'ÀÇ ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù ufilesys_all=$1ÀÇ ¸ðµç ÇÒ´ç·® ufilesys_blocks=ºí·Ï ufilesys_files=ÆÄÀÏ ufilesys_fs=ÆÄÀÏ ½Ã½ºÅÛ ufilesys_used=»ç¿ëµÊ ufilesys_soft=¼ÒÇÁÆ® Á¦ÇÑ ufilesys_hard=Çϵå Á¦ÇÑ ufilesys_nouquota=»ç¿ëÀÚ $1Àº(´Â) ¾Æ¹« ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­µµ ÇÒ´ç·®À» °¡ÁöÁö ¾Ê½À´Ï´Ù ufilesys_edit=ÇÒ´ç·® ÆíÁý ´ë»ó: ufilesys_copy=ÇÒ´ç·® º¹»ç ugracef_title=À¯¿¹ ±â°£ ugracef_return=»ç¿ëÀÚ ¸ñ·Ï ugracef_ecannot=ÀÌ ÆÄÀÏ ½Ã½ºÅÛÀÇ À¯¿¹ ±â°£À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù ugracef_info=°¢ ÆÄÀÏ ½Ã½ºÅÛ¸¶´Ù ºí·Ï ¹× ÆÄÀÏ ÇÒ´ç·®¿¡ ´ëÇÑ À¯¿¹ ±â°£ÀÌ ÀÖ½À´Ï´Ù. À¯¿¹ ±â°£Àº ÆÄÀÏÀ» ´õ ÀÛ¼ºÇÒ ¼ö ¾øÀ» ¶§±îÁö »ç¿ëÀÚ°¡ ¼ÒÇÁÆ® Á¦ÇÑ »óÅ·ΠÀ¯ÁöµÇ´Â ±â°£ÀÔ´Ï´Ù. ugracef_graces=$1ÀÇ »ç¿ëÀÚ À¯¿¹ ±â°£ ugracef_block=ºí·Ï ÇÒ´ç·®ÀÇ °æ¿ì ugracef_file=ÆÄÀÏ ÇÒ´ç·®ÀÇ °æ¿ì ugracef_update=¾÷µ¥ÀÌÆ® ugraces_esave=À¯¿¹ ±â°£À» ÀúÀåÇÏÁö ¸øÇß½À´Ï´Ù ugraces_eedit=ÀÌ ÆÄÀÏ ½Ã½ºÅÛÀÇ À¯¿¹ ±â°£À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù ugraces_enumber='$1'Àº(´Â) ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù lusers_failed=»ç¿ëÀÚ¸¦ ³ª¿­ÇÏÁö ¸øÇß½À´Ï´Ù lusers_eallow=ÀÌ ÆÄÀÏ ½Ã½ºÅÛÀÇ ÇÒ´ç·®À» ÆíÁýÇÒ ¼ö ¾ø½À´Ï´Ù lusers_title=ÆÄÀÏ ½Ã½ºÅÛ ÇÒ´ç·® lusers_return=ÆÄÀÏ ½Ã½ºÅÛ ¸ñ·Ï lusers_toomany=$1¿¡ ÇÒ´ç·®ÀÌ ÀÖ´Â ±×·ìÀÌ ³Ê¹« ¸¹¾Æ¼­ ÇÑ ÆäÀÌÁö¿¡ Ç¥½ÃÇÒ ¼ö ¾ø½À´Ï´Ù lusers_qoutas=$1ÀÇ ¸ðµç »ç¿ëÀÚ ÇÒ´ç·® lusers_blocks=ºí·Ï lusers_files=ÆÄÀÏ lusers_user=»ç¿ëÀÚ lusers_used=»ç¿ëµÊ lusers_soft=¼ÒÇÁÆ® Á¦ÇÑ lusers_hard=Çϵå Á¦ÇÑ lusers_noquota=$1¿¡ ÇÒ´ç·®ÀÌ ÀÖ´Â »ç¿ëÀÚ°¡ ¾ø½À´Ï´Ù lusers_equota=ÇÒ´ç·® ÆíÁý ´ë»ó: lusers_egrace=À¯¿¹ ±â°£ ÆíÁý lusers_check=ÇÒ´ç·® °Ë»ç lusers_info=»õ À¯´Ð½º »ç¿ëÀÚ ÀÛ¼º½Ã ÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ÇÒ´ç·®ÀÌ ÀÚµ¿À¸·Î ¼³Á¤µÇµµ·Ï WebminÀ» ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ±¸¼ºÀº $1 Webmin ¸ðµâÀÌ »ç¿ëÀÚ¸¦ Ãß°¡ÇÏ´Â µ¥ »ç¿ëµÉ ¶§¸¸ °¡´ÉÇÕ´Ï´Ù. lusers_useradmin=»ç¿ëÀÚ ¹× ±×·ì lusers_newuser=»õ »ç¿ëÀÚ ÇÒ´ç·® lusers_sblimit=¼ÒÇÁÆ® ºí·Ï Á¦ÇÑ lusers_hblimit=ÇÏµå ºí·Ï Á¦ÇÑ lusers_sflimit=¼ÒÇÁÆ® ÆÄÀÏ Á¦ÇÑ lusers_hflimit=ÇÏµå ÆÄÀÏ Á¦ÇÑ lusers_apply=Àû¿ë grace_seconds=ÃÊ grace_minutes=ºÐ grace_hours=½Ã grace_days=ÀÏ grace_weeks=ÁÖ grace_months=¿ù log_activate_u=$1ÀÇ »ç¿ëÀÚ ÇÒ´ç·®ÀÌ »ç¿ë °¡´ÉÀ¸·Î ¼³Á¤µÊ log_activate_g=$1ÀÇ ±×·ì ÇÒ´ç·®ÀÌ »ç¿ë °¡´ÉÀ¸·Î ¼³Á¤µÊ log_activate_ug=$1ÀÇ »ç¿ëÀÚ ¹× ±×·ì ÇÒ´ç·®ÀÌ »ç¿ë °¡´ÉÀ¸·Î ¼³Á¤µÊ log_deactivate_u=$1ÀÇ »ç¿ëÀÚ ÇÒ´ç·®ÀÌ »ç¿ë ºÒ´ÉÀ¸·Î ¼³Á¤µÊ log_deactivate_g=$1ÀÇ ±×·ì ÇÒ´ç·®ÀÌ »ç¿ë ºÒ´ÉÀ¸·Î ¼³Á¤µÊ log_deactivate_ug=$1ÀÇ »ç¿ëÀÚ ¹× ±×·ì ÇÒ´ç·®ÀÌ »ç¿ë ºÒ´ÉÀ¸·Î ¼³Á¤µÊ log_save=$2ÀÇ $1¿¡ ´ëÇÑ ÇÒ´ç·® º¯°æµÊ log_sync=$1ÀÇ »õ »ç¿ëÀÚ ÇÒ´ç·® º¯°æµÊ log_grace_u=$1ÀÇ »ç¿ëÀÚ À¯¿¹ ±â°£ º¯°æµÊ log_grace_g=$1ÀÇ ±×·ì À¯¿¹ ±â°£ º¯°æµÊ log_check=$1ÀÇ ÇÒ´ç·® °Ë»çµÊ log_copy_u=»ç¿ëÀÚ $1ÀÇ ÇÒ´ç·® º¹»çµÊ log_copy_g=±×·ì $1ÀÇ ÇÒ´ç·® º¹»çµÊ quota/lang/ca0100644000567100000120000002745310307032155013126 0ustar jcameronwheelquota_unlimited=Il·limitada acl_fss=Sistemes de fitxers que aquest usuari pot editar acl_fall=Tots els sistemes de fitxers acl_fsel=Seleccionats... acl_ro=Pot veure només la quota, no editar-la acl_quotaon=Pot activar i desactivar quotes acl_quotanew=Pot configurar quotes per als usuaris nous acl_ugrace=Pot editar els períodes de gràcia dels usuaris acl_vtotal=Pot veure el total d'espai al disc acl_ggrace=Pot editar els períodes de gràcia dels grups acl_uquota=Usuaris dels quals aquest usuari pot modificar quotes acl_gquota=Grups dels quals aquest usuari pot modificar quotes acl_uall=Tots els usuaris acl_uonly=Només els usuaris acl_uexcept=Tots excepte els usuaris acl_ugroup=Els usuaris amb grup primari acl_gall=Tots els grups acl_gnone=Cap grup acl_gonly=Només els grups acl_gexcept=Tots excepte els grups acl_uuid=Usuaris amb UID en el rang acl_maxblocks=Quota màxima de blocs concedible acl_maxfiles=Quota màxima de fitxers concedible acl_unlimited=Il·limitada acl_email=Pot configurar les notificacions de correu activate_eallow=No tens permís per activar o desactivar quotes en aquest sistema de fitxers activate_eon=No he pogut activar les quotes activate_eoff=No he pogut desactivar les quotes check_title=Comprovació de Quotes check_return=a la llista $1 check_ecannot=No pots verificar les quotes d'aquest sistema de fitxers check_running=Ara s'està executant l'ordre quotacheck per verificar l'ús dels blocs i els fitxers a $1. Això pot trigar molt si el sistema de fitxers és molt gran... check_done=...Fet. check_rgroup=grup check_ruser=usuari cgroup_efail=No he pogut copiar les quotes cgroup_ecannot=No pots copiar quotes cgroup_egallow=No tens permís per copiar les quotes d'aquest grup cgroup_enogroup=No ha cap grup de destinació cgroup_eallowto=No tens permís per copiar quotes a '$1' cgform_title=Còpia de Quotes cgform_return=a la quota de grup cgform_ecannot=No pots copiar quotes cgform_egroup=No tens permís per copiar les quotes d'aquest grup cgform_copyto=Copia les quotes de $1 de TOTS els sistemes de fitxers a... cgform_all=Tots els grups del sistema cgform_select=Grups seleccionats cgform_contain=Grups que contenen els usuaris cgform_doit=Copia cuser_efail=No he pogut copiar les quotes cuser_ecannot=No pots copiar quotes cuser_euallow=No tens permís per copiar les quotes d'aquest usuari cuser_enouser=No ha cap usuari de destinació cuser_eallowto=No tens permís per copiar quotes a '$1' cuform_title=Còpia de Quotes cuform_return=a la quota d'usuari cuform_ecannot=No pots copiar quotes cuform_euallow=No tens permís per copiar les quotes d'aquest usuari cuform_copyto=Copia les quotes de $1 de TOTS els sistemes de fitxers a... cuform_all=Tots els usuaris del sistema cuform_select=Usuaris seleccionats cuform_members=Membres dels grups seleccionats cuform_doit=Copia egroup_title=Edició de Quota egroup_freturn=llista de sistemes de fitxers egroup_greturn=llista de grups egroup_eallowgr=No tens permís per editar les quotes de '$1' egroup_eallowfs=No tens permís per editar les quotes d'aquest sistema de fitxers egroup_quotas=Quota de $1 a $2 egroup_bused=Blocs Utilitzats egroup_kused=Kilobytes Utilitzats egroup_sblimit=Límit Lax de nlock egroup_hblimit=Límit Estricte de nlock egroup_sklimit=Límit Lax de kilobytes egroup_hklimit=Límit Estricte de kilobytes egroup_fused=Fitxers emprats egroup_sflimit=Límit Lax de fitxer egroup_hflimit=Límit Estricte de fitxer egroup_update=Actualitza egroup_listall=Llista totes les Quotes euser_title=Edició de Quota euser_freturn=llista de sistemes de fitxers euser_ureturn=llista d'usuaris euser_eallowus=No tens permís per editar les quotes de '$1' euser_eallowfs=No tens permís per editar les quotes d'aquest sistema de fitxers euser_quotas=Quota de $1 a $2 euser_bused=Blocs utilitzats euser_kused=Kilobytes utilitzats euser_bdisk=Blocs disponibles al disc euser_kdisk=Kilobytes disponibles al disc euser_sdisk=Espai disponible al disc euser_sblimit=Límit Lax de blocs euser_hblimit=Límit Estricte de blocs euser_sklimit=Límit Lax de kilobytes euser_hklimit=Límit Estricte de kilobytes euser_fused=Fitxers emprats euser_fdisk=Fitxers disponibles al disc euser_sflimit=Límit Lax de fitxers euser_hflimit=Límit Estricte de fitxers euser_update=Actualitza euser_listall=Llista Totes les Quotes gfilesys_title=Quotes de Grup gfilesys_return=a la llista de sistemes de fitxers gfilesys_ecannot=No pots editar les quotes de '$1' gfilesys_all=Totes les Quotes de $1 gfilesys_blocks=Blocs gfilesys_kbs=Kilobytes gfilesys_space=Espai en disc gfilesys_files=Fitxers gfilesys_fs=Sistema de fitxers gfilesys_used=Usat gfilesys_soft=Límit Lax gfilesys_hard=Límit Estricte gfilesys_nogquota=El grup $1 no té quotes a cap sistema de fitxers gfilesys_edit=Edita la Quota a: gfilesys_copy=Copia les Quotes ggracef_title=Períodes de Gràcia ggracef_return=a la llista de grups ggracef_ecannot=No pots editar els períodes de gràcia en aquest sistema de fitxers ggracef_info=Cada sistema de fitxers té un periode de gràcia per a les quotes de blocs i fitxers. El periode de gràcia determina quant temps pot estar un grup per damunt del límit de programari abans no se li permeti de seguir creant fitxers. ggracef_graces=Períodes de Gràcia de Grup de $1 ggracef_block=De la quota de blocs ggracef_file=De la quota de fitxers ggracef_update=Actualitza ggraces_esave=No he pogut desar els períodes de gràcia ggraces_eedit=No pots editar els períodes de gràcia d'aquest sistema de fitxers ggraces_enumber='$1' no és un número index_quser=Quotes d'Usuari index_qgroup=Quotes de Grup index_qboth=Quotes d'Usuari i Grup index_active=Activa index_disable=Desactiva les Quotes index_inactive=Inactiva index_enable=Activa les Quotes index_mountonly=Només es pot activar en muntar index_title=Quotes de Disc index_fs=Sistema de fitxers index_type=Tipus index_mount=Muntat des de index_status=Estat index_action=Acció index_return=a l'índex index_euser=Edita les Quotes d'Usuari: index_egroup=Edita les Quotes de Grup: index_nosupport=No hi ha cap sistema de fitxers local que suporti quotes. index_mountmod=Pots activar les quotes d'un sistema de fitxers al mòdul Sistemes de Fitxers en Xarxa i Disc. lgroups_failed=No he pogut llistar els grups lgroups_eallow=No tens permís per editar les quotes d'aquest sistema de fitxers lgroups_title=Quotes de Sistema de Fitxers lgroups_return=a la llista de sistemes de fitxers lgroups_toomany=Hi ha massa grups amb quotes a $1 per mostrar-los en una sola pàgina lgroups_quotas=Totes les quotes de grups de $1 lgroups_blocks=Blocs lgroups_kbs=Kilobytes lgroups_space=Espai en disc lgroups_files=Fitxers lgroups_group=Grup lgroups_used=Usat lgroups_soft=Límit Lax lgroups_hard=Límit Estricte lgroups_noquota=No hi cap grup amb quotes a $1 lgroups_equota=Edita la Quota de: lgroups_grace=Edita els Períodes de Gràcia lgroups_check=Comprova les Quotes lgroups_info=Webmin es pot configurar per tal d'establir automàticament quotes en aquest sistema de fitxers quan es crea un nou grup Unix. Això només funcionarà quan s'utilitzi el mòdul $1 de Webmin per afegir grups. lgroups_newgroup=Quotes de Nou Grup sgroup_egroup=No tens permís per editar les quotes d'aquest grup sgroup_efs=No tens permís per editar les quotes d'aquest sistema de fitxers ssync_ecannot=No tens permís per establir la quota per defecte d'aquest sistema de fitxers suser_euser=No tens permís per editar les quotes d'aquest usuari suser_efs=No tens permís per editar les quotes d'aquest sistema de fitxers suser_emaxblocks=No tens permís per concedir límits de blocs per sobre de $1 suser_emaxfiles=No tens permís per concedir límits de fitxers per sobre de $1 ufilesys_title=Quotes d'Usuari ufilesys_return=a la llista de sistemes de fitxers ufilesys_ecannot=No pots editar les quotes de '$1' ufilesys_all=Totes les Quotes de $1 ufilesys_blocks=Blocs ufilesys_kbs=Kilobytes ufilesys_space=Espai en disc ufilesys_files=Fitxers ufilesys_fs=Sistema de fitxers ufilesys_used=Usat ufilesys_soft=Límit Lax ufilesys_hard=Límit Estricte ufilesys_nouquota=L'usuari $1 no té quotes a cap sistema de fitxers ufilesys_edit=Edita la Quota de: ufilesys_copy=Copia les Quotes ufilesys_grace=Gràcia ugracef_title=Períodes de Gràcia ugracef_return=a la llista d'usuaris ugracef_ecannot=No pots editar els períodes de gràcia d'aquest sistema de fitxers ugracef_info=Cada sistema de fitxers té un periode de gràcia per a les quotes de blocs i fitxers. El periode de gràcia determina quant temps pot estar un usuari per damunt del límit de programari abans no se li permeti de seguir creant fitxers. ugracef_graces=Períodes de Gràcia d'Usuari de $1 ugracef_block=De la quota de blocs ugracef_file=De la quota de fitxers ugracef_update=Actualitza ugraces_esave=No he pogut desar els períodes de gràcia ugraces_eedit=No pots editar els períodes de gràcia d'aquest sistema de fitxers ugraces_enumber='$1' no és un número lusers_failed=No he pogut llistar els usuaris lusers_eallow=No tens permís per editar les quotes d'aquest sistema de fitxers lusers_title=Quotes de Sistema de Fitxers lusers_return=a la llista de sistemes de fitxers lusers_toomany=Hi ha massa usuaris amb quotes a $1 per mostrar-los en una sola pàgina lusers_qoutas=Totes les quotes d'usuaris de $1 lusers_bsize=Mida de bloc de la quota: $1 bytes lusers_blocks=Blocs lusers_kbs=Kilobytes lusers_space=Espai en disc lusers_files=Fitxers lusers_user=Usuari lusers_used=Usat lusers_soft=Límit Lax lusers_hard=Límit Estricte lusers_grace=Gràcia lusers_noquota=No hi ha cap usuari amb quotes a $1 lusers_equota=Edita la Quota de: lusers_egrace=Edita els Períodes de Gràcia lusers_check=Comprova les Quotes lusers_info=Webmin es pot configurar per establir automàticament les quotes d'aquest sistema de fitxers quan es crea un nou usuari Unix. Això funcionarà només quan es faci servir el mòdul $1 de Webmin per afegir usuaris. lusers_useradmin=Usuaris i Grups lusers_newuser=Noves Quotes d'Usuari lusers_sblimit=Límit lax lusers_hblimit=Límit estricte lusers_sflimit=Límit lax de fitxers lusers_hflimit=Límit estricte de fitxers lusers_pc_hblocks=% estricte lusers_apply=Aplica lusers_emailheader=Envia correu als usuaris que s'acostin a la quota lusers_email=Envia correu a tots els usuaris lusers_interval=Interval entre missatges lusers_hours=hores lusers_ltype=Tipus de límit lusers_percent=Avisa quan lús arribi a lusers_domain=Domini de les adreces d'usuari lusers_from=Adreça From: del correu grace_seconds=Segons grace_minutes=Minuts grace_hours=Hores grace_days=Dies grace_weeks=Setmanes grace_months=Mesos log_activate_u=He activat les quotes d'usuari a $1 log_activate_g=He activat les quotes de grup a $1 log_activate_ug=He activat les quotes d'usuari i grup a $1 log_deactivate_u=He desactivat les quotes d'usuari a $1 log_deactivate_g=He desactivat les quotes de grup a $1 log_deactivate_ug=He desactivat les quotes d'usuari i grup a $1 log_save=He canviat les quotes de $1 a $2 log_sync=He canviat les noves quotes d'usuari a $1 log_email=Canvia les opcions del correu a $1 log_gsync=He canviat les quotes dels grups nous a $1 log_grace_u=He canviat els períodes de gràcia d'usuari a $1 log_grace_g=He canviat els períodes de gràcia de grup a $1 log_check=He comprovat les quotes de $1 log_copy_u=He copiat les quotes de l'usuari $1 log_copy_g=He copiat les quotes del grup $1 email_err=No he pogut desar les opcions de correu email_ecannot=No tens permís per modificar les opcions de correu email_einterval=Hi falta l'interval o bé és invàlid email_epercent=Hi falta el percentatge d'ús o bé és invàlid email_edomain=Hi falta el domini de correu o bé és invàlid email_efrom=Hi falta l'adreça From: o bé és invàlida email_msg=L'ús del disc per part de l'usuari $1 al sistema de fitxers $2\nha atès el $3% de la quota permesa.\n\nS'estan utilitzant $4 de l'espai en disc d'un total de $5. email_subject=S'ha excedit la quota de disc quota/lang/fr0100644000567100000120000003435710242226205013152 0ustar jcameronwheelacl_email=Peut configurer les notifications par courrier électronique ? acl_fall=Tous les systèmes de fichiers acl_fsel=Sélectionnés... acl_fss=Systèmes de fichiers que cet utilisateur peut modifier acl_gall=Tous les groupes acl_gexcept=Tous les groupes sauf acl_ggrace=Peut modifier les délais de grâce des groupes ? acl_gnone=Aucun goupe acl_gonly=Seulement les groupes acl_gquota=Groupes pour lesquels cet utilisateur peut modifier les quotas acl_maxblocks=Quota maximal de blocs qu'il est possible d'accorder acl_maxfiles=Quota maximal de fichiers qu'il est posible d'accorder acl_quotanew=Peut configurer les quotas des nouveaux utilisateurs ? acl_quotaon=Peut activer et désactiver les quotas ? acl_ro=Peut seulement voir les quotas, et non les modifier ? acl_uall=Tous les utilisateurs acl_uexcept=Tous les utilisateurs sauf acl_ugrace=Peut modifier les délais de grâce des utilisateurs ? acl_ugroup=Utilisateurs dans le groupe primaire acl_unlimited=Illimité acl_uonly=Seulement les utilisateurs acl_uquota=Utilisateurs pour lesquels cet utilisateur peut modifier les quotas acl_uuid=Utilisateurs ayant un UID dans l'intervalle acl_vtotal=Peut voir l'espace disque total ? activate_eallow=Vous n'êtes pas autorisé à activer ou désactiver les quotas sur ce système de fichiers activate_eoff=Impossible de désactiver les quotas activate_eon=Impossible d'activer les quotas cgform_all=Tous les groupes présents sur votre système cgform_contain=Groupes contenant des utilisateurs cgform_copyto=Copie des quotas de $1 sur TOUS les systèmes de fichiers en cours... cgform_doit=Copier cgform_ecannot=Vous ne pouvez pas copier les quotas cgform_egroup=Vous n'êtes pas autorisé à copier les quotas de ce groupe cgform_return=aux quotas de groupes cgform_select=Groupes sélectionnés cgform_title=Copie des quotas cgroup_eallowto=Vous n'êtes pas autorisé à copier les quotas dans '$1' cgroup_ecannot=Vous ne pouvez pas copier les quotas cgroup_efail=Échec de la copie des quotas cgroup_egallow=Vous n'êtes pas autorisé à copier les quotas de ce groupe cgroup_enogroup=Pas de groupes sur lesquels effectuer la copie check_done=... effectué. check_ecannot=Vous ne pouvez pas vérifier les quotas sur ce système de fichiers check_return=à la liste $1 check_rgroup=groupe check_running=La commande quotacheck va maintenant être exécutée pour vérifier l'utilisation des blocs et fichiers sur $1. Cette opération peut prendre du temps sur un système de fichiers très étendu... check_ruser=utilisateur check_title=Vérification des quotas cuform_all=Tous les utilisateurs présents sur votre système cuform_copyto=Copie des quotas de $1 sur TOUS les systèmes de fichiers en cours ... cuform_doit=Copier cuform_ecannot=Vous ne pouvez pas copier les quotas cuform_euallow=Vous n'êtes pas autorisé à copier les quotas de cet utilisateur cuform_members=Membres des groupes sélectionnés cuform_return=aux quotas utilisateur cuform_select=Utilisateurs sélectionnés cuform_title=Copie des quotas cuser_eallowto=Vous n'êtes pas autorisé à copier les quotas dans '$1' cuser_ecannot=Vous ne pouvez pas copier les quotas cuser_efail=Échec de la copie des quotas cuser_enouser=Pas d'utilisateurs vers lesquels effectuer la copie cuser_euallow=Vous n'êtes pas autorisé à copier les quotas de cet utilisateur egroup_bused=Blocs utilisés egroup_eallowfs=Vous n'êtes pas autorisé à modifier les quotas sur ce système de fichiers egroup_eallowgr=Vous n'êtes pas autorisé à modifier les quotas de '$1' egroup_freturn=à la liste des systèmes de fichiers egroup_fused=Fichiers utilisés egroup_greturn=à la liste des groupes egroup_hblimit=Limite de blocs dure egroup_hflimit=Limite de fichiers dure egroup_hklimit=Limite en kilo-octets dure egroup_kused=Kilo-octets utilisés egroup_listall=Répertorier tous les quotas egroup_quotas=Quota de $1 sur $2 egroup_sblimit=Limite de blocs douce egroup_sflimit=Limite de fichiers douce egroup_sklimit=Limite en kilo-octets douce egroup_title=Édition des quotas egroup_update=Mettre à jour email_ecannot=Vous n'êtes pas autorisé à modifier les options de courrier électronique email_edomain=Domaine de messagerie manquant ou invalide email_efrom=Adresse pour le champ De: manquante ou invalide email_einterval=Intervalle manquant ou invalide email_epercent=Pourcentage d'utilisation manquant ou invalide email_err=Impossible d'enregistrer les options de courrier électronique email_msg=L'utilisation d'espace disque pour l'utilisateur $1 sur le \n système de fichier $2 a atteint $3% du quota autorisé.\n\n $4 d'espace disque est utilisé, sur un maximum de $5. email_subject=Quota d'espace disque dépassé euser_bdisk=Blocs disponibles sur le disque euser_bused=Blocs utilisés euser_eallowfs=Vous n'êtes pas autorisé à modifier les quotas sur ce système de fichiers euser_eallowus=Vous n'êtes pas autorisé à modifier les quotas de '$1' euser_fdisk=Fichiers disponibles sur le disque euser_freturn=à la liste des systèmes de fichiers euser_fused=Fichiers utilisés euser_hblimit=Limite de blocs dure euser_hflimit=Limite de fichiers dure euser_hklimit=Limite en kilo-octets dure euser_kdisk=Kilo-octets disponibles sur le disque euser_kused=Kilo-octets utilisés euser_listall=Répertorier tous les quotas euser_quotas=Quota de $1 sur $2 euser_sblimit=Limite de blocs douce euser_sdisk=Espace disponible sur le disque euser_sflimit=Limite de fichiers douce euser_sklimit=Limite en kilo-octets douce euser_title=Édition des quotas euser_update=Mettre à jour euser_ureturn=à la liste des utilisateurs gfilesys_all=Tous les quotas de '$1' gfilesys_blocks=Blocs gfilesys_copy=Copier les quotas gfilesys_ecannot=Vous ne pouvez pas modifier les quotas de '$1' gfilesys_edit=Modifier les quotas sur : gfilesys_files=Fichiers gfilesys_fs=Système de fichiers gfilesys_hard=Limite dure gfilesys_kbs=Kilo-octets gfilesys_nogquota=Le groupe $1 n'a de quotas sur aucun système de fichiers gfilesys_return=à la liste des systèmes de fichiers gfilesys_soft=Limite douce gfilesys_space=Espace disque gfilesys_title=Quotas de groupe gfilesys_used=Utilisé ggracef_block=Pour les quotas de bloc ggracef_ecannot=Vous ne pouvez pas modifier les délais de grâce sur ce système de fichiers ggracef_file=Pour les quotas de fichier ggracef_graces=Délais de grâce du groupe pour $1 ggracef_info=Chaque système de fichiers a un délai de grâce pour les quotas de bloc et de fichier. Le délai de grâce détermine combien de temps un groupe peut rester au-dessus de la limite douce avant qu'il ne soit plus permis de créer un fichier. ggracef_return=à la liste des groupes ggracef_title=Délais de grâce ggracef_update=Mettre à jour ggraces_eedit=Vous ne pouvez pas modifier les délais de grâce sur ce système de fichiers ggraces_enumber='$1' n'est pas un nombre ggraces_esave=Échec de l'enregistrement des délais de grâce grace_days=Jours grace_hours=Heures grace_minutes=Minutes grace_months=Mois grace_seconds=Secondes grace_weeks=Semaines index_action=Action index_active=Actifs index_disable=Désactiver les quotas index_egroup=Modifier les quotas de groupe : index_enable=Activer les quotas index_euser=Modifier les quotas utilisateur : index_fs=Système de fichiers index_inactive=Inactifs index_mount=Monté à partir de index_mountmod=Vous pouvez activer les quotas pour un système de fichiers dans le module Systèmes de fichiers des disques et des réseaux. index_mountonly=Peut uniquement les activer au montage index_nosupport=Aucun système de fichiers local ne peut gérer les quotas. index_qboth=Quotas utilisateur et groupe index_qgroup=Quotas de groupe index_quser=Quotas utilisateur index_return=à l'index index_status=État index_title=Quotas de disque index_type=Type lgroups_blocks=Blocs lgroups_check=Vérifier les quotas lgroups_eallow=Vous n'êtes pas autorisé à modifier les quotas sur ce système de fichiers lgroups_equota=Modifier les quotas de : lgroups_failed=Impossible de répertorier les groupes lgroups_files=Fichiers lgroups_grace=Modifier les délais de grâce lgroups_group=Groupe lgroups_hard=Limite dure lgroups_info=Il est possible de configurer Webmin pour fixer automatiquement les quotas sur ce système de fichiers lors de la création d'un nouveau groupe Unix. Cela ne fonctionnera que si l'on utilise le module Webmin $1 pour ajouter des groupes. lgroups_kbs=Kilo-octets lgroups_newgroup=Quotas du nouveau groupe lgroups_noquota=Aucun groupe n'a de quotas sur $1 lgroups_quotas=Tous les quotas de groupe sur $1 lgroups_return=à la liste des systèmes de fichiers lgroups_soft=Limite douce lgroups_space=Espace disque lgroups_title=Quotas système de fichiers lgroups_toomany=Trop de groupes ont des quotas sur $1 pour les afficher sur une seule page lgroups_used=Utilisés log_activate_g=Activé les quotas de groupe sur $1 log_activate_u=Activé les quotas utilisateur sur $1 log_activate_ug=Activé les quotas utilisateur et groupe sur $1 log_check=Vérifié les quotas sur $1 log_copy_g=Copié les quotas du groupe $1 log_copy_u=Copié les quotas de l'utilisateur $1 log_deactivate_g=Désactivé les quotas de groupe sur $1 log_deactivate_u=Désactivé les quotas utilisateur sur $1 log_deactivate_ug=Désactivé les quotas utilisateur et groupe sur $1 log_email=Changé les options de courrier électronique sur $1 log_grace_g=Changé les délais de grâce de groupe sur $1 log_grace_u=Changé les délais de grâce utilisateur sur $1 log_gsync=Changé les quotas des nouveaux groupes sur $1 log_save=Changé les quotas de $1 sur $2 log_sync=Changé les quotas des nouveaux utilisateurs sur $1 lusers_apply=Appliquer lusers_blocks=Blocs lusers_bsize=Taille des blocs de quotas : $1 octet(s) lusers_check=Vérifier les quotas lusers_domain=Domaine des adresses utilisateur lusers_eallow=Vous n'êtes pas autorisé à modifier des quotas sur ce système de fichiers lusers_egrace=Modifier les délais de grâce lusers_email=Envoyer un message électronique aux utilisateurs ? lusers_emailheader=Message électronique aux utilisateurs approchant du quota lusers_equota=Modifier le quota de : lusers_failed=Impossible de répertorier les utilisateurs lusers_files=Fichiers lusers_from=Adresse De: pour le courrier électronique lusers_grace=Grâce lusers_hard=Limite dure lusers_hblimit=Limite de blocs dure lusers_hflimit=Limite de fichiers dure lusers_hours=heures lusers_info=Il est possible de configurer Webmin pour fixer automatiquement les quotas sur ce système de fichiers lors de la création d'un nouvel utilisateur Unix. Cela ne fonctionnera que si l'on utilise le module Webmin $1 pour ajouter des utilisateurs. lusers_interval=Intervalle entre deux messages lusers_kbs=Kilo-octets lusers_ltype=Type de limite lusers_newuser=Nouveaux quotas utilisateur lusers_noquota=Aucun utilisateur n'a de quotas sur $1 lusers_pc_hblocks=% dure lusers_percent=Avertir quand l'utilisation atteint lusers_qoutas=Tous les quotas utilisateur sur $1 lusers_return=à la liste des systèmes de fichiers lusers_sblimit=Limite de blocs douce lusers_sflimit=Limite de fichiers douce lusers_soft=Limite douce lusers_space=Espace disque lusers_title=Quotas système de fichiers lusers_toomany=Trop d'utilisateurs ont des quotas sur $1 pour les afficher sur une seule page lusers_used=Utilisés lusers_user=Utilisateur lusers_useradmin=Utilisateurs et groupes quota_unlimited=Illimités sgroup_efs=Vous n'êtes pas autorisé à modifier des quotas de ce système de fichiers sgroup_egroup=Vous n'êtes pas autorisé à modifier des quotas pour ce groupe ssync_ecannot=Vous ne pouvez pas fixer les quotas par défaut de ce système de fichiers suser_efs=Vous n'êtes pas autorisé à modifier les quotas sur ce système de fichiers suser_emaxblocks=Vous n'êtes pas autorisé à accorder des limites de blocs au-dessus de $1 suser_emaxfiles=Vous n'êtes pas autorisé à accorder des limites de fichiers au-dessus de $1 suser_euser=Vous n'êtes pas autorisé à modifier les quotas de cet utilisateur ufilesys_all=Tous les quotas de $1 ufilesys_blocks=Blocs ufilesys_copy=Copier les quotas ufilesys_ecannot=Vous ne pouvez pas modifier les quotas de '$1' ufilesys_edit=Modifier les quotas sur : ufilesys_files=Fichiers ufilesys_fs=Système de fichiers ufilesys_grace=Grâce ufilesys_hard=Limite dure ufilesys_kbs=Kilo-octets ufilesys_nouquota=L'utilisateur $1 n'a de quotas sur aucun système de fichiers ufilesys_return=à la liste des systèmes de fichiers ufilesys_soft=Limite douce ufilesys_space=Espace disque ufilesys_title=Quotas utilisateur ufilesys_used=Utilisé ugracef_block=Pour les quotas bloc ugracef_ecannot=Vous ne pouvez pas modifier les délais de grâce sur ce système de fichiers ugracef_file=Pour les quotas de fichier ugracef_graces=Délais de grâce des utilisateurs pour $1 ugracef_info=Chaque système de fichiers a un délai de grâce pour les quotas bloc et fichier. Le délai de grâce détermine combien de temps un utilisateur peut rester au-dessus de la limite douce avant qu'il ne soit plus permis de créer des fichiers. ugracef_return=à la liste d'utilisateurs ugracef_title=Délais de grâce ugracef_update=Mettre à jour ugraces_eedit=Vous ne pouvez pas modifier des délais de grâce sur ce système de fichiers ugraces_enumber='$1' n'est pas un nombre ugraces_esave=Impossible d'enregistrer les délais de grâce quota/lang/nl0100644000567100000120000002252110005107251013136 0ustar jcameronwheelquota_unlimited=Onbeperkt acl_fss=Bestandsystemen die deze gebruiker kan wijzigen acl_fall=Alle bestandsystemen acl_fsel=Geselecteerd.. acl_quotaon=Kan quota aan- en uitzetten? acl_quotanew=Kan quotum configureren voor nieuwe gebruikers? acl_ugrace=Kan waarschuwingstijd van gebruiker wijzigen? acl_vtotal=Kan totale schijfcapaciteit zien? acl_ggrace=Kan waarschuwingstijd van groepen wijzigen? acl_uquota=Gebruikers, waarvan deze gebruiker het quotum kan wijzigen acl_gquota=Groepen, waarvan deze gebruiker het quotum kan wijzigen acl_uall= Alle gebruikers acl_uonly= Alleen gebruikers acl_uexcept= Alle gebruikers behalve acl_ugroup= Gebruikers met primaire groep acl_gall= Alle groepen acl_gnone= Geen groepen acl_gonly= Alleen groepen acl_gexcept= Alle groepen behalve acl_uuid=Gebruikers met UID binnen bereik acl_maxblocks=Maximum toe te wijzen blokquotum acl_maxfiles=Maximum toe te wijzen bestandsquotum acl_unlimited=Onbeperkt activate_eallow=U bent niet gerechtigd quota voor dit bestandssyteem aan- of uit te zetten activate_eon=Het aanzetten van quota is mislukt activate_eoff=Het uitzetten van quota is mislukt check_title=Controleer Quotum check_return=$1 lijst check_ecannot=U mag de quota voor dit bestandssyteem niet controleren check_running=Het quotacheck commando wordt nu uitgevoerd om het verbruik aan blokken en bestanden te controleren op $1. Dit kan een geruime tijd duren voor een groot bestandssyteem... check_done=... Klaar. check_rgroup=groep check_ruser=gebruiker cgroup_efail=Kopieëren van quotum mislukt cgroup_ecannot=U kunt geen quotum kopieëren cgroup_egallow=U mag het quotum van deze groep niet kopieëren cgroup_enogroup=Geen groepen om naar te kopieëren cgroup_eallowto=U mag geen quotum kopieëren naar '$1' cgform_title=Kopieër Quotum cgform_return=groep quotum cgform_ecannot=U kunt geen quotum kopieëren cgform_egroup=U mag het quotum van deze groep niet kopieëren cgform_copyto=Kopieëren van quotum voor $1 op ALLE bestandsystemen naar ... cgform_all=Alle groepen op uw systeem cgform_select=Geselecteerde groepen cgform_contain=Groepen met gebruikers cgform_doit=Kopieër cuser_efail=Kopieëren van quotum mislukt cuser_ecannot=U kunt geen quotum kopieëren cuser_euallow=U mag het quotum van deze gebruiker niet kopieëren cuser_enouser=Geen gebruikers om naar te kopieëren cuser_eallowto=U mag geen quotum kopieëren naar '$1' cuform_title=Kopieër Quotum cuform_return=gebruiker quotum cuform_ecannot=U kunt geen quotum kopieëren cuform_euallow=U mag het quotum van deze gebruiker niet kopieëren cuform_copyto=Kopieëren van quotum voor $1 op ALLE bestandsystemen naar ... cuform_all=Alle gebruikers op uw systeem cuform_select=Geselecteerde gebruikers cuform_members=Leden van geselecteerde groepen cuform_doit=Kopieër egroup_title=Wijzig Quotum egroup_freturn=lijst van bestandsysteem egroup_greturn=groep lijst egroup_eallowgr=U mag geen quotum wijzigen voor '$1' egroup_eallowfs=U mag geen quotum wijzigen op dit bestandsysteem egroup_quotas=Quotum voor $1 op $2 egroup_bused=Gebruikte blokken egroup_sblimit=Zachte Bloklimiet egroup_hblimit=Harde Bloklimiet egroup_fused=Gebruikte Bestanden egroup_sflimit=Zachte Bestandslimiet egroup_hflimit=Harde Bestandslimiet egroup_update=Wijzig egroup_listall=Lijst Alle Quota euser_title=Wijzig Quotum euser_freturn=bestandsysteem lijst euser_ureturn=gebruikers lijst euser_eallowus=U mag geen quotum wijzigen voor '$1' euser_eallowfs=U mag geen quotum wijzigen op dit bestandsysteem euser_quotas=Quotum voor $1 op $2 euser_bused=Gebruikte blokken euser_bdisk=Beschikbare Blokken op Disk euser_sblimit=Zachte Bloklimiet euser_hblimit=Harde Bloklimiet euser_fused=Gebruikte Bestanden euser_fdisk=Beschikbare Bestanden op Disk euser_sflimit=Zachte Bestandslimiet euser_hflimit=Harde Bestandslimiet euser_update=Wijzig euser_listall=Lijst Alle Quota gfilesys_title=Groep Quota gfilesys_return=bestandsystemen lijst gfilesys_ecannot=U kan geen quotum wijzigen voor '$1' gfilesys_all=Alle Quota voor gfilesys_blocks=Blokken gfilesys_files=Bestanden gfilesys_fs=Bestandsysteem gfilesys_used=Gebruikt gfilesys_soft=Zachte Limiet gfilesys_hard=Harde Limiet gfilesys_nogquota=Groep $1 quota op geen enkel bestandsysteem gfilesys_edit=Wijzig Quotum Op: gfilesys_copy=Kopieër Quota ggracef_title=Waarschuwingstijd ggracef_return=groepslijst ggracef_ecannot=U mag de waarschuwingstijd niet wijzigen op dit bestandsysteem ggracef_info=Elk bestandsysteem heeft een waarschuwingstijd voor blok- and bestandsquota. De waarschuwingstijd bepaalt hoe lang een groep boven de zachte limiet kan zijn voordat er geen bestanden meer kunnen worden aangemaakt. ggracef_graces=Groeps waarschuwingstijd voor $1 ggracef_block=Voor Blokquotum ggracef_file=Voor Bestandsquotum ggracef_update=Wijzigen ggraces_esave=Opslaan waarschuwingstijd mislukt ggraces_eedit=U kunt de waarschuwingstijd niet wijzigen op dit bestandsysteem ggraces_enumber='$1' is geen getal index_quser=Gebruikers Quota index_qgroup=Groeps Quota index_qboth=Gebruikers- and Groeps Quota index_active=Aktief index_disable=Quota Uitzetten index_inactive=Inaktief index_enable=Quota Aanzetten index_title=Disk Quota index_fs=Bestandsysteem index_type=Type index_mount=gemount vanaf index_status=Status index_action=Aktie index_return=index index_euser=Wijzig Gebruikers Quota: index_egroup=Wijzig Groeps Quota: index_nosupport=Geen enkel lokaal bestandsysteem ondersteunt quota lgroups_failed=Lijst van groepen mislukt lgroups_eallow=U mag geen quotum wijzigen op dit bestandsysteem lgroups_title=Bestandsysteem Quota lgroups_return=bestandsystemen lijst lgroups_toomany=Te veel groepen hebben quota op $1 om op één pagina te tonen lgroups_quotas=Alle Groeps Quota op $1 lgroups_blocks=Blokken lgroups_files=bestanden lgroups_group=Groep lgroups_used=gebruikt lgroups_soft=Zachte Limiet lgroups_hard=Harde Limiet lgroups_noquota=Er zijn geen groepen met quota op $1 lgroups_equota=Wijzig Quotum For: lgroups_grace=Wijzig Waarschuwingstijd lgroups_check=Controleer Quota sgroup_egroup=U mag geen quotum wijzigen voor deze groep sgroup_efs=U mag geen quotum wijzigen op dit bestandsysteem ssync_ecannot=U mag het 'default' quotum voor dit bestandsysteem niet wijzigen suser_euser=U mag geen quotum wijzigen voor deze gebruiker suser_efs=U mag het quotum voor dit bestandsysteem niet wijzigen suser_emaxblocks=U mag geen bloklimiet boven $1 instellen suser_emaxfiles=U mag geen bestandenlimiet boven $1 instellen ufilesys_title=Gebruikers Quota ufilesys_return=bestandsystemen lijst ufilesys_ecannot=U kan geen quotum wijzigen voor '$1' ufilesys_all=All Quota voor $1 ufilesys_blocks=Blokken ufilesys_files=Bestanden ufilesys_fs=Bestandssysteem ufilesys_used=Gebruikt ufilesys_soft=Zachte Limiet ufilesys_hard=Harde Limiet ufilesys_nouquota=Gebruiker $1 heeft quota op geen enkel bestandssysteem ufilesys_edit=Wijzig Quotum Op: ufilesys_copy=Kopieër Quota ugracef_title=Waarschuwingstijd ugracef_return=gebruiker lijst ugracef_ecannot=U kunt de waarschuwingstijd op dit bestandssysteem niet wijzigen ugracef_info=Elk bestandsysteem heeft een waarschuwingstijd voor blok- and bestandsquota. De waarschuwingstijd bepaalt hoe lang een groep boven de zachte limiet kan zijn voordat er geen bestanden meer kunnen worden aangemaakt. ugracef_graces=Gebruiker Waarschuwingstijd voor $1 ugracef_block=Voor blokquotum ugracef_file=Voor bestandsquotum ugracef_update=Wijzigen ugraces_esave=Opslaan waarschuwingstijd mislukt ugraces_eedit=U kunt de waarschuwingstijd op dit bestandssysteem niet wijzigen ugraces_enumber='$1' is geen getal lusers_failed=Gebruikerslijst mislukt lusers_eallow=U mag geen quotum wijzigen op dit bestandsysteem lusers_title=Quota Bestandssysteem lusers_return=bestandsystemen lijst lusers_toomany=Te veel gebruikers hebben quotum op $1 om op één pagina te tonen lusers_qoutas=Quota alle gebruikers op $1 lusers_blocks=Blokken lusers_files=Bestanden lusers_user=Gebruiker lusers_used=Gebruikt lusers_soft=Zachte Limiet lusers_hard=Harde Limiet lusers_noquota=Er zijn geen gebruikers met quota op $1 lusers_equota=Wijzig Quotum voor: lusers_egrace=Wijzig Waarschuwingstijd lusers_check=Controleer Quota lusers_info=Webmin kan worden geconfigureerd om automatisch de quota te zetten op dit bestandssysteem als een nieuwe Unix gebruiker wordt aangemaakt. Dit werkt alleen als het $1 Webmin module wordt gebruikt om gebruikers aan te maken. lusers_useradmin=Gebruikers and Groepen lusers_newuser=Nieuw Gebruikers Quotum lusers_sblimit=Zachte Blok Limiet lusers_hblimit=Harde Blok Limiet lusers_sflimit=Zachte Bestands Limiet lusers_hflimit=Harde Bestands Limiet lusers_apply=Toepassen grace_seconds=Seconden grace_minutes=Minuten grace_hours=Uren grace_days=Dagen grace_weeks=Weken grace_months=Maanden log_activate_u=Gebruikersquota op $1 aangezet log_activate_g=Groepsquota op $1 aangezet log_activate_ug=Gebruikers- en groepsquota op $1 aangezet log_deactivate_u==Gebruikersquota op $1 uitgezet log_deactivate_g=Groepsquota op $1 uitgezet log_deactivate_ug=Gebruikers- en groepsquota op $1 uitgezet log_save=Quota voor $1 op $2 gewijzigd log_sync=Nieuw gebruikersquotum op $1 gewijzigd log_grace_u=Gebruikers waarschuwingstijd op $1 gewijzigd log_grace_g=Groeps waarschuwingstijd op $1 gewijzigd log_check=Quota op $1 gecontroleerd log_copy_u=Quota van gebruiker $1 gekopieërd log_copy_g=Quota van groep $1 gekopieërd quota/lang/en.bak0100644000567100000120000002055607440573627013720 0ustar jcameronwheelquota_unlimited=Unlimited acl_fss=Filesystems this user can edit acl_fall=All filesystems acl_fsel=Selected.. acl_quotaon=Can enable and disable quotas? acl_quotanew=Can configure quotas for new users? acl_ugrace=Can edit user grace times? acl_vtotal=Can view total disk space? acl_ggrace=Can edit group grace times? acl_uquota=Users this user can edit quotas for acl_gquota=Groups this user can edit quotas for acl_uall= All users acl_uonly= Only users acl_uexcept= All except users acl_ugroup= Users with primary group acl_gall= All groups acl_gnone= No groups acl_gonly= Only groups acl_gexcept= All except groups acl_uuid=Users with UID in range acl_maxblocks=Maximum grantable block quota acl_maxfiles=Maximum grantable file quota acl_unlimited=Unlimited activate_eallow=You are not allowed to enable or disable quotas on this filesystem activate_eon=Failed to turn on quotas activate_eoff=Failed to turn off quotas check_title=Check Quotas check_return=$1 list check_ecannot=You cannot check quotas on this filesystem check_running=The quotacheck command is now being run to check the block and file usage on $1. This may take a long time for a very large filesystem... check_done=... Done. check_rgroup=group check_ruser=user cgroup_efail=Failed to copy quotas cgroup_ecannot=You cannot copy quotas cgroup_egallow=You are not allowed to copy the quotas of this group cgroup_enogroup=No groups to copy to cgroup_eallowto=You are not allowed to copy quotas to '$1' cgform_title=Copy Quotas cgform_return=group quota cgform_ecannot=You cannot copy quotas cgform_egroup=You are not allowed to copy the quotas of this group cgform_copyto=Copy quotas for $1 on ALL filesystems to ... cgform_all=All groups on your system cgform_select=Selected groups cgform_contain=Groups containing users cgform_doit=Copy cuser_efail=Failed to copy quotas cuser_ecannot=You cannot copy quotas cuser_euallow=You are not allowed to copy the quotas of this user cuser_enouser=No users to copy to cuser_eallowto=You are not allowed to copy quotas to '$1' cuform_title=Copy Quotas cuform_return=user quota cuform_ecannot=You cannot copy quotas cuform_euallow=You are not allowed to copy the quotas of this user cuform_copyto=Copy quotas for $1 on ALL filesystems to ... cuform_all=All users on your system cuform_select=Selected users cuform_members=Members of selected groups cuform_doit=Copy egroup_title=Edit Quota egroup_freturn=filesystem list egroup_greturn=group list egroup_eallowgr=You are not allowed to edit quotas for '$1' egroup_eallowfs=You are not allowed to edit quotas on this filesystem egroup_quotas=Quota for $1 on $2 egroup_bused=Blocks Used egroup_sblimit=Soft Block Limit egroup_hblimit=Hard Block Limit egroup_fused=Files Used egroup_sflimit=Soft File Limit egroup_hflimit=Hard File Limit egroup_update=Update egroup_listall=List All Quotas euser_title=Edit Quota euser_freturn=filesystem list euser_ureturn=user list euser_eallowus=You are not allowed to edit quotas for '$1' euser_eallowfs=You are not allowed to edit quotas on this filesystem euser_quotas=Quota for $1 on $2 euser_bused=Blocks Used euser_bdisk=Available Blocks on Disk euser_sblimit=Soft Block Limit euser_hblimit=Hard Block Limit euser_fused=Files Used euser_fdisk=Available Files on Disk euser_sflimit=Soft File Limit euser_hflimit=Hard File Limit euser_update=Update euser_listall=List All Quotas gfilesys_title=Group Quotas gfilesys_return=filesystems list gfilesys_ecannot=You cannot edit quotas for '$1' gfilesys_all=All Quotas for $1 gfilesys_blocks=Blocks gfilesys_files=Files gfilesys_fs=Filesystem gfilesys_used=Used gfilesys_soft=Soft Limit gfilesys_hard=Hard Limit gfilesys_nogquota=Group $1 does not have quotas on any filesystem gfilesys_edit=Edit Quota On: gfilesys_copy=Copy Quotas ggracef_title=Grace Times ggracef_return=group list ggracef_ecannot=You cannot edit grace times on this filesystem ggracef_info=Each filesystem has a grace time for block and file quotas. The grace time determines how long a group can remain over the soft limit before no more files are allowed to be created. ggracef_graces=Group Grace Times for $1 ggracef_block=For block quota ggracef_file=For file quota ggracef_update=Update ggraces_esave=Failed to save grace times ggraces_eedit=You cannot edit grace times on this filesystem ggraces_enumber='$1' is not a number index_quser=User Quotas index_qgroup=Group Quotas index_qboth=User and Group Quotas index_active=Active index_disable=Disable Quotas index_inactive=Inactive index_enable=Enable Quotas index_mountonly=Enabled at mount index_title=Disk Quotas index_fs=Filesystem index_type=Type index_mount=Mounted From index_status=Status index_action=Action index_return=index index_euser=Edit User Quotas: index_egroup=Edit Group Quotas: index_nosupport=No local filesystems can support quotas lgroups_failed=Failed to list groups lgroups_eallow=You are not allowed to edit quotas on this filesystem lgroups_title=Filesystem Quotas lgroups_return=filesystems list lgroups_toomany=Too many groups have quotas on $1 to display on one page lgroups_quotas=All Group Quotas on $1 lgroups_blocks=Blocks lgroups_files=Files lgroups_group=Group lgroups_used=Used lgroups_soft=Soft Limit lgroups_hard=Hard Limit lgroups_noquota=No groups have quotas on $1 lgroups_equota=Edit Quota For: lgroups_grace=Edit Grace Times lgroups_check=Check Quotas sgroup_egroup=You are not allowed to edit quotas for this group sgroup_efs=You are not allowed to edit quotas on this filesystem ssync_ecannot=You cannot set the default quota for this filesystem suser_euser=You are not allowed to edit quotas for this user suser_efs=You are not allowed to edit quotas on this filesystem suser_emaxblocks=You are not allowed to grant block limits above $1 suser_emaxfiles=You are not allowed to grant file limits above $1 ufilesys_title=User Quotas ufilesys_return=filesystems list ufilesys_ecannot=You cannot edit quotas for '$1' ufilesys_all=All Quotas for $1 ufilesys_blocks=Blocks ufilesys_files=Files ufilesys_fs=Filesystem ufilesys_used=Used ufilesys_soft=Soft Limit ufilesys_hard=Hard Limit ufilesys_nouquota=User $1 does not have quotas on any filesystem ufilesys_edit=Edit Quota On: ufilesys_copy=Copy Quotas ugracef_title=Grace Times ugracef_return=user list ugracef_ecannot=You cannot edit grace times on this filesystem ugracef_info=Each filesystem has a grace time for block and file quotas. The grace time determines how long a user can remain over the soft limit before no more files are allowed to be created. ugracef_graces=User Grace Times for $1 ugracef_block=For block quota ugracef_file=For file quota ugracef_update=Update ugraces_esave=Failed to save grace times ugraces_eedit=You cannot edit grace times on this filesystem ugraces_enumber='$1' is not a number lusers_failed=Failed to list users lusers_eallow=You are not allowed to edit quotas on this filesystem lusers_title=Filesystem Quotas lusers_return=filesystems list lusers_toomany=Too many users have quotas on $1 to display on one page lusers_qoutas=All User Quotas on $1 lusers_blocks=Blocks lusers_files=Files lusers_user=User lusers_used=Used lusers_soft=Soft Limit lusers_hard=Hard Limit lusers_noquota=No users have quotas on $1 lusers_equota=Edit Quota For: lusers_egrace=Edit Grace Times lusers_check=Check Quotas lusers_info=Webmin can be configured to automatically set the quotas on this filesystem when a new Unix user is created. This will only work when the $1 Webmin module is used to add users. lusers_useradmin=Users and Groups lusers_newuser=New User Quotas lusers_sblimit=Soft Block Limit lusers_hblimit=Hard Block Limit lusers_sflimit=Soft File Limit lusers_hflimit=Hard File Limit lusers_apply=Apply grace_seconds=Seconds grace_minutes=Minutes grace_hours=Hours grace_days=Days grace_weeks=Weeks grace_months=Months log_activate_u=Enabled user quotas on $1 log_activate_g=Enabled group quotas on $1 log_activate_ug=Enabled user and group quotas on $1 log_deactivate_u=Disabled user quotas on $1 log_deactivate_g=Disabled group quotas on $1 log_deactivate_ug=Disabled user and group quotas on $1 log_save=Changed quotas for $1 on $2 log_sync=Changed new user quotas on $1 log_grace_u=Changed user grace times on $1 log_grace_g=Changed group grace times on $1 log_check=Checked quotas on $1 log_copy_u=Copied user $1's quotas log_copy_g=Copied group $1's quotas quota/lang/zh_TW.Big50100644000567100000120000001660710067670062014372 0ustar jcameronwheelacl_fall=©Ò¦³Àɮרt²Î acl_fsel=¤w¿ï¨úªº.. acl_fss=³o­Ó¨Ï¥ÎªÌ¥i½s¿èªºÀɮרt²Î acl_gall=©Ò¦³¸s²Õ acl_gexcept=©Ò¦³¸s²Õ¡A°£¤F acl_ggrace=¬O§_¥i½s¿è¸s²Õ¼e­­¦¸¼Æ¡H acl_gnone=¨S¦³¸s²Õ acl_gonly=¶È¸s²Õ acl_gquota=³o­Ó¨Ï¥ÎªÌ¥i¥H½s¿è¨äºÏºÐ°tÃBªº¸s²Õ acl_maxblocks=³Ì¤j¥i¥Î°Ï¶ô°tÃB acl_maxfiles=³Ì¤j¥i¥ÎÀÉ®×°tÃB acl_quotanew=¬O§_¬°·s¨Ï¥ÎªÌ°t¸mºÏºÐ°tÃB¡H acl_quotaon=¬O§_¥i±Ò¥Î©M°±¥ÎºÏºÐ°tÃB¡H acl_ro=¥i¥HÀ˵øºÏºÐ°tÃB¦ý¤£¯à½s¿è? acl_uall=©Ò¦³¨Ï¥ÎªÌ acl_uexcept=©Ò¦³¨Ï¥ÎªÌ¡A°£¤F acl_ugrace=¬O§_¥i½s¿è¨Ï¥ÎªÌ¼e­­¦¸¼Æ¡H acl_ugroup=¥D¸s²Õ¨Ï¥ÎªÌ acl_unlimited=µL­­¨î acl_uonly=¶È¨Ï¥ÎªÌ acl_uquota=³o­Ó¨Ï¥ÎªÌ¥i¥H½s¿è¨äºÏºÐ°tÃBªº¨Ï¥ÎªÌ¤¤ acl_uuid=¨Ï¥ÎªÌ¦b UID ½d³ò¬O acl_vtotal=¬O§_¥i¬d¬ÝºÏºÐÁ`ªÅ¶¡¡H activate_eallow=±z¨S¦³Åv­­¦b¥»Àɮרt²Î¤W±Ò¥Î©M°±¥ÎºÏºÐ°tÃB activate_eoff=Ãö³¬°tÃB¥¢±Ñ activate_eon=¥´¶}°tÃB¥¢±Ñ cgform_all=¨t²Î¤Wªº©Ò¦³¸s²Õ cgform_contain=¥]§t¨Ï¥ÎªÌªº¸s²Õ cgform_copyto=½Æ»s©Ò¦³Àɮרt²Î¤W$1ªº°tÃB cgform_doit=½Æ»s cgform_ecannot=±z¨S¦³Åv­­½Æ»s°tÃB cgform_egroup=±z¨S¦³Åv­­½Æ»s³o­Ó¸s²Õªº°tÃB cgform_return=¸s²Õ°tÃB cgform_select=¿ï¨ú¸s²Õ cgform_title=½Æ»s°tÃB cgroup_eallowto=±z¨S¦³Åv­­½Æ»s°tÃB¨ì '$1' cgroup_ecannot=±z¨S¦³Åv­­½Æ»s°tÃB cgroup_efail=½Æ»s°tÃB¥¢±Ñ cgroup_egallow=±z¨S¦³Åv­­½Æ»s³o­Ó¸s²Õªº°tÃB cgroup_enogroup=¨S¦³¸s²Õ¥i½Æ»s¨ì check_done=... §¹¦¨¡C check_ecannot=±z¨S¦³Åv­­Àˬd¥»Àɮרt²Îªº°tÃB check_return=$1 ¦Cªí check_rgroup=¸s²Õ check_running=²{¦b¥¿¦b°õ¦æquotacheck©R¥O¥HÀˬd$1¤WªººÏºÐ°Ï¶ô©MÀɮתº¨Ï¥Î±¡ªp¡C¹ï©ó¤j«¬Àɮרt²Î¡A³o»Ý­n«Üªø®É¶¡¡C check_ruser=¨Ï¥ÎªÌ check_title=Àˬd°tÃB cuform_all=¨t²Î¤Wªº©Ò¥Î¨Ï¥ÎªÌ cuform_copyto=½Æ»s$1¦b©Ò¥ÎÀɮרt²Îªº°tÃB¨ì ... cuform_doit=½Æ»s cuform_ecannot=±z¨S¦³Åv­­½Æ»s°tÃB cuform_euallow=±z¨S¦³Åv­­½Æ»s³o­Ó¨Ï¥ÎªÌªº°tÃB cuform_members=¿ï¨ú¸s²Õªº¦¨­û cuform_return=¨Ï¥ÎªÌ°tÃB cuform_select=¿ï¨úªº¨Ï¥ÎªÌ cuform_title=½Æ»s°tÃB cuser_eallowto=±z¨S¦³Åv­­½Æ»s°tÃB¨ì'$1' cuser_ecannot=±z¨S¦³Åv­­½Æ»s°tÃB cuser_efail=½Æ»s°tÃB¥¢±Ñ cuser_enouser=¨S¦³¨Ï¥ÎªÌ½Æ»s¨ì cuser_euallow=±z¨S¦³Åv­­½Æ»s³o­Ó¨Ï¥ÎªÌªº°tÃB egroup_bused=¤w¥Î°Ï¶ô egroup_eallowfs=±z¨S¦³Åv­­½s¿è¦¹Àɮרt²Î¤Wªº°tÃB egroup_eallowgr=±z¨S¦³Åv­­½s¿è '$1'ªº°tÃB egroup_freturn=Àɮרt²Î¦Cªí egroup_fused=¨Ï¥ÎªºÀÉ®× egroup_greturn=¸s²Õ¦Cªí egroup_hblimit=µw©ÊÀÉ®×­­¨î egroup_hflimit=µw©ÊÀÉ®×­­¨î egroup_hklimit=µwKB­­¨î egroup_kused=KB¨Ï¥Î egroup_listall=¦C¥X©Ò¦³°tÃB egroup_quotas=$1¦b$2¤Wªº°tÃB egroup_sblimit=³n©ÊÀÉ®×­­¨î egroup_sflimit=³n©ÊÀÉ®×­­¨î egroup_sklimit=³nKB­­¨î egroup_title=½s¿è°tÃB egroup_update=§ó·s euser_bdisk=¦bºÏºÐ¤W¥i¥Îªº°Ï¶ô euser_bused=¤w¥Î°Ï¶ô euser_eallowfs=±z¨S¦³Åv­­½s¿è¥»Àɮרt²Îªº°tÃB euser_eallowus=±z¨S¦³Åv­­½s¿è'$1'ªº°tÃB euser_fdisk=¦bºÏºÐ¤W¥i¥ÎªºÀÉ®× euser_freturn=Àɮרt²Î¦Cªí euser_fused=¤w¥ÎÀÉ®× euser_hblimit=µw©Ê°Ï¶ô­­¨î euser_hflimit=µw©ÊÀÉ®×­­¨î euser_hklimit=µwKB­­¨î euser_kdisk=ºÏºÐ¥i¥ÎKB euser_kused=¤w¥ÎKB euser_listall=¦Cªí©Ò¥Î°tÃB euser_quotas=$1¦b$2¤Wªº°tÃB euser_sblimit=³n©Ê°Ï¶ô­­¨î euser_sflimit=³n©ÊÀÉ®×­­¨î euser_sklimit=³nKB­­¨î euser_title=½s¿è°tÃB euser_update=§ó·s euser_ureturn=¨Ï¥ÎªÌ¦Cªí gfilesys_all=©Ò¦³°tÃB¬° gfilesys_blocks=°Ï¶ô gfilesys_copy=½Æ»s°tÃB gfilesys_ecannot=±z¨S¦³Åv­­½s¿è'$1'ªºÀÉ®×°tÃB gfilesys_edit=½s¿è­­ÃB©ó¡G gfilesys_files=ÀÉ®× gfilesys_fs=Àɮרt²Î gfilesys_hard=µw©Ê­­¨î gfilesys_kbs=KB gfilesys_nogquota=¸s²Õ $1 ¦b¥ô¦óÀɮרt²Î¤W³£¨S¦³°tÃB gfilesys_return=ÀɮצCªí gfilesys_soft=³n©Ê­­¨î gfilesys_title=¸s²Õ°tÃB gfilesys_used=¤w¥Î ggracef_block=¹ï°Ï¶ô°tÃB ggracef_ecannot=±z¨S¦³Åv­­½s¿è¦¹Àɮרt²Îªº¼e­­®É¶¡ ggracef_file=¹ïÀÉ®×°tÃB ggracef_graces=$1ªº¸s²Õ¼e­­®É¶¡ ggracef_info=¨C­ÓÀɮרt²Î³£¦³¹ï°Ï¶ô©MÀÉ®×°tÃBªº¼e­­®É¶¡¡C¼e­­®É¶¡¨M©w¤@­Ó¸s²Õ¥i³B©ó³n©Ê­­¨îª¬ºA¦h¤[¡AµM«á¦A³Q¸T¤î·s¼W§ó¦hÀɮסC ggracef_return=¸s²Õ¦Cªí ggracef_title=¼e­­®É¶¡ ggracef_update=§ó·s ggraces_eedit=±z¨S¦³Åv­­½s¿è¦¹Àɮרt²Îªº¼e­­®É¶¡ ggraces_enumber='$1' ¤£¬O¼Æ¦r ggraces_esave=«O¦s¼e­­®É¶¡¥¢±Ñ grace_days=¤Ñ grace_hours=¤p®É grace_minutes=¤ÀÄÁ grace_months=¤ë grace_seconds=¬í grace_weeks=¬P´Á index_action=°Ê§@ index_active=¹B§@¤¤ index_disable=°±¥Î°tÃB index_egroup=½s¿è¸s²Õ°tÃB¡G index_enable=±Ò¥Î°tÃB index_euser=½s¿è¨Ï¥ÎªÌ°tÃB¡G index_fs=Àɮרt²Î index_inactive=¨S¦³¹B§@ªº index_mount=±¾¸ü¦Û index_mountonly=¥i¥H¥u¦b±¾¸ü®É±Ò¥Î index_nosupport=¥»¦aÀɮרt²Î¤£¤ä´©°tÃB index_qboth=¨Ï¥ÎªÌ©M¸s²Õ°tÃB index_qgroup=¸s²Õ°tÃB index_quser=¨Ï¥ÎªÌ°tÃB index_return=¯Á¤Þ index_status=ª¬ºA index_title=ºÏºÐ°tÃB index_type=Ãþ«¬ lgroups_blocks=°Ï¶ô lgroups_check=Àˬd°tÃB lgroups_eallow=±z¨S¦³Åv­­½s¿è³o­ÓÀɮרt²Î¤Wªº°tÃB lgroups_equota=½s¿è°tÃB¬°¡G lgroups_failed=¦C¥X¸s²Õ¥¢±Ñ lgroups_files=ÀÉ®× lgroups_grace=½s¿è¼e­­®É¶¡ lgroups_group=¸s²Õ lgroups_hard=µw©Ê­­¨î lgroups_info=Webmin¥i¥H²ÕºA¬°·í«Ø¥ßUnix¸s²Õ®É¦bÀɮרt²Î¤W¦Û°Ê³]©wºÏºÐ°tÃB¡A³o¥u¦b¥Î$1 Webmin¼Ò²Õ·s¼W¸s²Õ¦³®Ä¡C lgroups_kbs=KB lgroups_newgroup=·s¸s²Õ°tÃB lgroups_noquota=¨S¦³¸s²Õ¦b$1¤W¦³°tÃB lgroups_quotas=©Ò¦³¸s²Õ¦b$1¤Wªº°tÃB lgroups_return=Àɮרt²Î¦Cªí lgroups_soft=³n©Ê­­¨î lgroups_title=Àɮרt²Î°tÃB lgroups_toomany=¦b$1¤W¦³°tÃBªº¸s²Õ¤Ó¦h¡AµLªkÅã¥Ü¦b¤@­¶¤W¡C lgroups_used=¤w¥Î log_activate_g=¤w¦b $1 ¤W±Ò¥Î¸s²Õ°tÃB log_activate_u=¤w¦b $1 ¤W±Ò¥Î¨Ï¥ÎªÌ°tÃB log_activate_ug=¤w¦b $1 ¤W±Ò¥Î¨Ï¥ÎªÌ©M¸s²Õ°tÃB log_check=¦b $1 ¤WÀˬd°tÃB log_copy_g=½Æ»s¸s²Õ $1 ªº°tÃB log_copy_u=½Æ»s¨Ï¥ÎªÌ $1 ªº°tÃB log_deactivate_g=¤w¦b $1 ¤W°±¥Î¸s²Õ°tÃB log_deactivate_u=¤w¦b $1 ¤W°±¥Î¨Ï¥ÎªÌ°tÃB log_deactivate_ug=¤w¦b $1 ¤W°±¥Î¨Ï¥ÎªÌ©M¸s²Õ°tÃB log_grace_g=¦b $1 ¤W§ïÅܸs²Õ¼e­­®É¶¡ log_grace_u=¦b $1 ¤W§ïÅܨϥΪ̼e­­®É¶¡ log_gsync=Åܧó $1 ·s¸s²Õ°tÃB log_save=¦b $2 ¤W§ïÅÜ $1 ªº°tÃB log_sync=¦b $1 ¤W§ïÅÜ·s¨Ï¥ÎªÌªº°tÃB lusers_apply=®M¥Î lusers_blocks=°Ï¶ô lusers_bsize=°tÃB°Ï¶ô¤j¤p : $1 ¦ì¤¸²Õ lusers_check=Àˬd°tÃB lusers_eallow=±z¨S¦³Åv­­½s¿è¥»Àɮרt²Î¤Wªº°tÃB lusers_egrace=½s¿è¼e­­®É¶¡ lusers_equota=½s¿è°tÃB°w¹ï¡G lusers_failed=¦C¥X¨Ï¥ÎªÌ¥¢±Ñ lusers_files=ÀÉ®× lusers_hard=µw©Ê­­¨î lusers_hblimit=µw©Ê­­¨î lusers_hflimit=µw©ÊÀÉ®×­­¨î lusers_info=Webmin ¥i¥H°t¸m¬°¦b·s¼W·s Unix ¨Ï¥ÎªÌ®É¦Û°Ê¦b¥»Àɮרt²Î¤W³]©w°tÃB¡C¥u¦³¦b¨Ï¥Î $1 Webmin ¼Ò¸s²Õ¥Î¨Ó·s¼W¨Ï¥ÎªÌ®É¤~¯à³o¼Ë°µ¡C lusers_kbs=KB lusers_newuser=·s¨Ï¥ÎªÌ°tÃB lusers_noquota=¨S¦³¨Ï¥ÎªÌ¦b$1 ¤W¦³°tÃB lusers_qoutas=$1¤Wªº©Ò¦³¨Ï¥ÎªÌ°tÃB lusers_return=Àɮרt²Î¦Cªí lusers_sblimit=³n©Ê­­¨î lusers_sflimit=³n©ÊÀÉ®×­­¨î lusers_soft=³n©Ê­­¨î lusers_title=Àɮרt²Î°tÃB lusers_toomany=¦b$1¤W¦³°tÃBªº¨Ï¥ÎªÌ¤Ó¦h¡AµLªkÅã¥Ü¦b¤@­¶¤W¡C lusers_used=¤w¥Î lusers_user=¨Ï¥ÎªÌ lusers_useradmin=¨Ï¥ÎªÌ©M¸s²Õ quota_unlimited=µL­­¨î sgroup_efs=±z¨S¦³Åv­­½s¿è³o­ÓÀɮרt²Îªº°tÃB sgroup_egroup=±z¨S¦³Åv­­½s¿è³o­Ó¸s²Õªº°tÃB ssync_ecannot=±z¨S¦³Åv­­³]¸m³o­ÓÀɮרt²Îªº¯Ê¬Ù°tÃB suser_efs=±z¨S¦³Åv­­½s¿è³o­ÓÀɮרt²Îªº°tÃB suser_emaxblocks=±z¨S¦³Åv­­µ¹¤©°Ï¶ô­­¨î¦b$1¤§¤W suser_emaxfiles=±z¨S¦³Åv­­µ¹¤©ÀÉ®×­­¨î¦b$1¤§¤W suser_euser=±z¨S¦³Åv­­½s¿è³o­Ó¨Ï¥ÎªÌªº°tÃB ufilesys_all=$1ªº©Ò¦³°tÃB ufilesys_blocks=°Ï¶ô ufilesys_copy=½Æ»s°tÃB ufilesys_ecannot=±z¨S¦³Åv­­½s¿è'$1'ªº°tÃB ufilesys_edit=½s¿è°tÃB¦b¡G ufilesys_files=ÀÉ®× ufilesys_fs=Àɮרt²Î ufilesys_hard=µw©Ê­­¨î ufilesys_kbs=KB ufilesys_nouquota=¨Ï¥ÎªÌ$1 ¦b¥ô¦óÀɮרt²Î³£¨S¦³°tÃB ufilesys_return=Àɮרt²Î¦Cªí ufilesys_soft=³n©Ê­­¨î ufilesys_title=¨Ï¥ÎªÌ°tÃB ufilesys_used=¤w¥Î ugracef_block=¬°°Ï¶ôªº°tÃB ugracef_ecannot=±z¨S¦³Åv­­½s¿è¥»Àɮרt²Îªºªº¼e­­®É¶¡ ugracef_file=¹ïÀÉ®×°tÃB ugracef_graces=$1ªº¨Ï¥ÎªÌ¼e­­®É¶¡ ugracef_info=¨C­ÓÀɮרt²Î³£¦³¹ï°Ï¶ô©MÀÉ®×°tÃBªº¼e­­®É¶¡¡C¼e­­®É¶¡¨M©w¤@­Ó¨Ï¥ÎªÌ¥i³B©ó³n©Ê­­¨îª¬ºA¦h¤[¡AµM«á¦A³Q¸T¤î·s¼W§ó¦hÀɮסC ugracef_return=¨Ï¥ÎªÌ¦Cªí ugracef_title=¼e­­®É¶¡ ugracef_update=§ó·s ugraces_eedit=±z¨S¦³Åv­­½s¿è¥»Àɮרt²Î¤Wªº¼e­­®É¶¡ ugraces_enumber='$1' ¤£¬O¼Æ¦r ugraces_esave=«O¦s¼e­­®É¶¡¥¢±Ñ quota/lang/ru_RU0100664000567100000120000002362410005107251013570 0ustar jcameronwheellusers_apply=Ïðèìåíèòü lgroups_check=Ïðîâåðèòü êâîòû euser_sblimit=Ëèìèò áëîêîâ acl_uuid=Ïîëüçîâàòåëè ñ UID â äèàïàçîíå gfilesys_soft=Ëèìèò egroup_sblimit=Ëèìèò áëîêîâ cuform_ecannot=Âû íå ìîæåòå êîïèðîâàòü êâîòû lgroups_group=Ãðóïïà index_type=Òèï ggracef_return=ñïèñêó ãðóïï ugracef_return=ñïèñêó ïîëüçîâàòåëåé lgroups_eallow=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ êâîò äëÿ ýòîé ôàéëîâîé ñèñòåìû index_mount=Ïîäêëþ÷åíî èç ggracef_file=Äëÿ êâîòû ôàéëîâ egroup_eallowgr=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ êâîò äëÿ '$1' cuform_doit=Ñêîïèðîâàòü ufilesys_nouquota=Ïîëüçîâàòåëü $1 íå èìååò êâîò íè íà îäíîé ôàéëîâîé ñèñòåìå ggracef_title=Îòñðî÷êè gfilesys_blocks=Áëîêè acl_ugrace=Ìîæåò ðåäàêòèðîâàòü îòñðî÷êó ââîäà îãðàíè÷åíèé äëÿ ïîëüçîâàòåëåé? lusers_noquota=Íè îäèí ïîëüçîâàòåëü íå èìååò êâîò äëÿ $1 suser_efs=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ çàäàíèÿ êâîòû äëÿ ýòîé ôàéëîâîé ñèñòåìû cuser_euallow=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ êîïèðîâàíèÿ êâîò ýòîãî ïîëüçîâàòåëÿ index_mountonly=Êâîòû ìîãóò áûòü âêëþ÷åíû òîëüêî ïðè ìîíòèðîâàíèè ufilesys_used=Èñïîëüçîâàíî gfilesys_copy=Ñêîïèðîâàòü êâîòû ugraces_eedit=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ âðåìåíè îòñðî÷êè äëÿ ýòîé ôàéëîâîé ñèñòåìû check_title=Ïðîâåðêà êâîò lusers_hard=Ñòðîãèé ëèìèò ggraces_esave=Íå óäàëîñü ñîõðàíèòü âðåìÿ îòñðî÷êè cgform_select=Âûáðàííûå ãðóïïû check_return=Ñïèñîê $1 acl_gquota=Ãðóïïû, êâîòû êîòîðûõ ìîæåò èçìåíÿòü ýòîò ïîëüçîâàòåëü log_deactivate_ug=Âûêëþ÷åíû êâîòû ïîëüçîâàòåëåé è ãðóïï äëÿ $1 index_inactive=Îòêëþ÷åíî lgroups_grace=Èçìåíèòü âðåìÿ îòñðî÷êè index_egroup=Èçìåíèòü êâîòû äèñêîâ: lusers_blocks=Áëîêè index_status=Ñîñòîÿíèå grace_minutes=Ìèíóò gfilesys_files=Ôàéëû log_grace_g=Èçìåíåíî âðåìÿ îòñðî÷êè äëÿ ãðóïï äëÿ $1 ugracef_file=Äëÿ êâîòû ôàéëîâ lusers_toomany=Ñëèøêîì ìíîãî ïîëüçîâàòåëåé èìåþò êâîòû äëÿ $1, ÷òîáû âûâåñòè èõ íà îäíó ñòðàíèöó acl_fall=Âñå ôàéëîâûå ñèñòåìû cuser_ecannot=Âû íå ìîæåòå êîïèðîâàòü êâîòû lusers_title=Êâîòû ôàéëîâîé ñèñòåìû ufilesys_soft=Ëèìèò ufilesys_files=Ôàéëû check_rgroup=ãðóïïà lgroups_failed=Íå óäàëîñü âûâåñòè ñïèñîê ãðóïï egroup_update=Îáíîâèòü acl_fsel=Âûáðàííûå.. grace_weeks=Íåäåëü gfilesys_return=ñïèñêó ôàéëîâûõ ñèñòåì log_grace_u=Èçìåíåíî âðåìÿ îòñðî÷êè äëÿ ïîëüçîâàòåëÿ äëÿ $1 cgroup_egallow=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ êîïèðîâàíèÿ êâîò ýòîé ãðóïïû ugracef_title=Âðåìÿ îòñðî÷êè gfilesys_all=Âñå êâîòû äëÿ $1 acl_uonly= Òîëüêî óêàçàííûå ïîëüçîâàòåëè acl_vtotal=Ìîæåò ïðîñìàòðèâàòü îáùåå äèñêîâîå ïðîñòðàíñòâî? cuform_select=Âûáðàííûõ ïîëüçîâàòåëåé egroup_quotas=Êâîòà $1 äëÿ $2 lusers_qoutas=Âñå êâîòû ïîëüçîâàòåëåé äëÿ $1 index_fs=Ôàéëîâàÿ ñèñòåìà acl_fss=Ôàéëîâûå ñèñòåìû, êâîòû êîòîðûõ ìîæåò èçìåíÿòü ýòîò ïîëüçîâàòåëü ufilesys_copy=Ñêîïèðîâàòü êâîòû lusers_used=Èñïîëüçîâàíî lgroups_title=Êâîòû ôàéëîâîé ñèñòåìû acl_gnone= Íèêàêèå ãðóïïû lusers_newuser=Íîâàÿ êâîòà ïîëüçîâàòåëÿ activate_eoff=Íå óäàëîñü îòêëþ÷èòü èñïîëüçîâàíèå êâîò log_check=Ïðîâåðåíû êâîòû äëÿ $1 ugraces_esave=Íå óäàëîñü ñîõðàíèòü âðåìÿ îòñðî÷êè cuform_title=Êîïèðîâàíèå êâîò log_copy_g=Ñêîïèðîâàíû êâîòû ãðóïïû $1 egroup_greturn=ñïèñêó ãðóïï lusers_return=ñïèñêó ôàéëîâûõ ñèñòåì ggracef_ecannot=Âû íå ìîæåòå ìåíÿòü âðåìÿ îòñðî÷êè äëÿ ýòîé ôàéëîâîé ñèñòåìû lusers_info=Webmin ìîæåò àâòîìàòè÷åñêè óñòàíàâëèâàòü êâîòû äëÿ ýòîé ôàéëîâîé ñèñòåìû ïðè ñîçäàíèè íîâîãî ïîëüçîâàòåëÿ Unix. Ýòî âîçìîæíî òîëüêî â ñëó÷àå, åñëè äëÿ äîáàâëåíèÿ ïîëüçîâàòåëÿ èñïîëüçóåòñÿ ìîäóëü $1. lusers_user=Ïîëüçîâàòåëü lusers_hflimit=Ñòðîãèé ëèìèò ôàéëîâ cgform_all=Âñå ãðóïïû âàøåé ñèñòåìû ggracef_block=Äëÿ êâîòû áëîêîâ cgroup_eallowto=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ êîïèðîâàíèÿ êâîò íà '$1' log_copy_u=Ñêîïèðîâàíû êâîòû ïîëüçîâàòåëÿ $1 activate_eon=Íå óäàëîñü âêëþ÷èòü èñïîëüçîâàíèå êâîò acl_quotanew=Ìîæåò íàñòðàèâàòü êâîòû äëÿ íîâûõ ïîëüçîâàòåëåé? euser_hflimit=Ñòðîãèé ëèìèò ôàéëîâ ggracef_graces=Âðåìÿ îòñðî÷êè îãðàíè÷åíèé äëÿ ãðóïïû $1 egroup_hflimit=Ñòðîãèé ëèìèò ôàéëîâ check_ecannot=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ ïðîâåðêè êâîò ýòîé ôàéëîâîé ñèñòåìû ugraces_enumber='$1' íå ÿâëÿåòñÿ ÷èñëîì gfilesys_edit=Èçìåíèòü êâîòó äëÿ: acl_quotaon=Ìîæåò âêëþ÷àòü è îòêëþ÷àòü èñïîëüçîâàíèå êâîò? log_activate_ug=Âêëþ÷åíû êâîòû ïîëüçîâàòåëåé è ãðóïï äëÿ $1 ufilesys_all=Âñå êâîòû äëÿ $1 lusers_soft=Ëèìèò ugracef_graces=Âðåìÿ îòñðî÷êè îãðàíè÷åíèé äëÿ $1 ufilesys_fs=Ôàéëîâàÿ ñèñòåìà suser_euser=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ êâîò ýòîãî ïîëüçîâàòåëÿ check_running=Äëÿ ïðîâåðêè èñïîëüçîâàíèÿ áëîêîâ è ôàéëîâ íà ôàéëîâîé ñèñòåìå $1 çàïóùåíà êîìàíäà quotacheck. Äëÿ áîëüøîé ôàéëîâîé ñèñòåìû ýòî ìîæåò çàíÿòü ìíîãî âðåìåíè... index_nosupport=Íå îáíàðóæåíî ëîêàëüíûõ ôàéëîâûõ ñèñòåì, ïîääåðæèâàþùèõ êâîòû lusers_useradmin=Ïîëüçîâàòåëè è ãðóïïû lusers_files=Ôàéëû grace_seconds=Ñåêóíä euser_ureturn=ñïèñêó ïîëüçîâàòåëåé acl_ggrace=Ìîæåò ðåäàêòèðîâàòü îòñðî÷êó ââîäà îãðàíè÷åíèé äëÿ ãðóïï? cgform_copyto=Êîïèðîâàòü êâîòû $1 íà ÂÑÅ ôàéëîâûå ñèñòåìû äëÿ ... cgform_title=Êîïèðîâàíèå êâîò index_euser=Èçìåíèòü êâîòû ïîëüçîâàòåëåé: check_ruser=ïîëüçîâàòåëü suser_emaxblocks=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ ïðåäîñòàâëåíèÿ ëèìèòîâ, ïðåâûøàþùèõ $1 acl_gonly= Òîëüêî óêàçàííûå ãðóïïû cgform_return=êâîòàì ãðóïïû ggracef_info=Êàæäàÿ ôàéëîâàÿ ñèñòåìà èìååò âðåìÿ îòñðî÷êè ââåäåíèÿ îãðàíè÷åíèé äëÿ êâîò ôàéëîâ è áëîêîâ. Âðåìÿ îòñðî÷êè îïðåäåëÿåò, ñêîëüêî ïðîéäåò âðåìåíè ìåæäó ïðåâûøåíèåì ãðóïïîé êâîòû è çàïðåòîì ñîçäàíèÿ ôàéëîâ. cgform_contain=Ãðóïïû, ñîäåðæàùèå ïîëüçîâàòåëåé lgroups_noquota=Íè îäíà èç ãðóïï íå èìååò êâîò äëÿ $1 gfilesys_nogquota=Ãðóïïà $1 íå èìååò êâîò äëÿ ýòîé ôàéëîâîé ñèñòåìû lusers_sflimit=Ëèìèò ôàéëîâ cgroup_enogroup=Íå óêàçàíî ãðóïï äëÿ êîïèðîâàíèÿ grace_days=Äíåé lgroups_files=Ôàéëû grace_months=Ìåñÿöåâ lusers_equota=Èçìåíèòü êâîòû äëÿ: activate_eallow=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ âêëþ÷åíèÿ èëè îòêëþ÷åíèÿ èñïîëüçîâàíèÿ êâîò äëÿ ýòîé ôàéëîâîé ñèñòåìû lgroups_blocks=Áëîêè gfilesys_fs=Ôàéëîâàÿ ñèñòåìà euser_sflimit=Ëèìèò ôàéëîâ index_qboth=Êâîòû ïîëüçîâàòåëåé è ãðóïï egroup_sflimit=Ëèìèò ôàéëîâ ugracef_block=Äëÿ êâîòû áëîêîâ egroup_title=Èçìåíåíèå êâîò log_deactivate_g=Âûêëþ÷åíû êâîòû ãðóïï äëÿ $1 index_title=Äèñêîâûå êâîòû ufilesys_blocks=Áëîêè egroup_bused=Çàíÿòî áëîêîâ lusers_eallow=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ êâîò äëÿ ýòîé ôàéëîâîé ñèñòåìû ufilesys_edit=Èçìåíèòü êâîòó äëÿ: acl_gexcept= Âñå ãðóïïû, êðîìå óêàçàííûõ log_save=Èçìåíåíû êâîòû $1 äëÿ $2 cuform_copyto=Êîïèðîâàòü êâîòû $1 íà ÂÑÅ ôàéëîâûå ñèñòåìû äëÿ ... euser_update=Îáíîâèòü lgroups_toomany=Ñëèøêîì ìíîãî ãðóïï èìåþò êâîòû äëÿ $1, ÷òîáû âûâåñòè âåñü ñïèñîê íà îäíó ñòðàíèöó sgroup_efs=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ êâîò äëÿ ýòîé ôàéëîâîé ñèñòåìû log_deactivate_u=Âûêëþ÷åíû êâîòû ïîëüçîâàòåëåé äëÿ $1 ugracef_info=Êàæäàÿ ôàéëîâàÿ ñèñòåìà èìååò âðåìÿ îòñðî÷êè ââåäåíèÿ îãðàíè÷åíèé äëÿ êâîò ôàéëîâ è áëîêîâ. Âðåìÿ îòñðî÷êè îïðåäåëÿåò, ñêîëüêî ïðîéäåò âðåìåíè ìåæäó ïðåâûøåíèåì ãðóïïîé ïîëüçîâàòåëåì è çàïðåòîì ñîçäàíèÿ ôàéëîâ. lgroups_hard=Ñòðîãèé ëèìèò acl_maxblocks=Ìàêñèìàëüíî âîçìîæíàÿ êâîòà áëîêîâ cuform_return=êâîòàì ïîëüçîâàòåëåé ufilesys_ecannot=Âû íå ìîæåòå èçìåíÿòü êâîòû äëÿ '$1' acl_uall= Âñå ïîëüçîâàòåëè gfilesys_hard=Ñòðîãèé ëèìèò euser_freturn=ñïèñêó ôàéëîâûõ ñèñòåì egroup_freturn=ñïèñêó ôàéëîâûõ ñèñòåì egroup_fused=Èñïîëüçîâàíî ôàéëîâ euser_title=Èçìåíåíèå êâîòû acl_unlimited=Íå îãðàíè÷åíî cuser_eallowto=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ êîïèðîâàíèÿ êâîò íà '$1' acl_uquota=Ïîëüçîâàòåëè, êâîòû êîòîðûõ ìîæåò èçìåíÿòü ýòîò ïîëüçîâàòåëü euser_quotas=Êâîòà $1 äëÿ $2 euser_eallowus=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ êâîò äëÿ '$1' euser_bused=Çàíÿòî áëîêîâ euser_bdisk=Ñâîáîäíî áëîêîâ íà äèñêå lgroups_quotas=Âñå êâîòû ãðóïï äëÿ $1 euser_eallowfs=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ êâîò äëÿ ýòîé ôàéëîâîé ñèñòåìû index_quser=Êâîòû ïîëüçîâàòåëåé index_return=ìåíþ cgform_doit=Ñêîïèðîâàòü euser_listall=Ïîêàçàòü âñå êâîòû index_enable=Âêëþ÷èòü êâîòû egroup_listall=Ïîêàçàòü âñå êâîòû lgroups_return=ñïèñêó ôàéëîâûõ ñèñòåì acl_uexcept= Âñå ïîëüçîâàòåëè êðîìå óêàçàííûõ lusers_hblimit=Ñòðîãèé ëèìèò áëîêîâ index_active=Âêëþ÷åíî cgform_ecannot=Âû íå ìîæåòå êîïèðîâàòü êâîòû euser_fused=Èñïîëüçîâàíî ôàéëîâ gfilesys_ecannot=Âû íå ìîæåòå èçìåíÿòü êâîòû äëÿ '$1' log_activate_g=Âêëþ÷åíû êâîòû ãðóïï äëÿ $1 euser_fdisk=Äîñòóïíî ôàéëîâ íà äèñêå ufilesys_return=ñïèñêó ôàéëîâûõ ñèñòåì cuser_efail=Íå óäàëîñü ñêîïèðîâàòü êâîòû euser_hblimit=Ñòðîãèé ëèìèò áëîêîâ cuser_enouser=Ïîëüçîâàòåëè íå óêàçàíû egroup_hblimit=Ñòðîãèé ëèìèò áëîêîâ lusers_failed=Íå óäàëîñü âûâåñòè ñïèñîê ïîëüçîâàòåëåé log_sync=Èçìåíåíû êâîòû íîâîãî ïîëüçîâàòåëÿ äëÿ $1 ggraces_enumber='$1' íå ÿâëÿåòñÿ ÷èñëîì lgroups_used=Èñïîëüçîâàíî log_activate_u=Âêëþ÷åíû êâîòû ïîëüçîâàòåëåé äëÿ $1 cuform_all=Âñåõ ïîëüçîâàòåëåé acl_maxfiles=Ìàêñèìàëüíî âîçìîæíàÿ êâîòà ôàéëîâ gfilesys_used=Èñïîëüçîâàíî ssync_ecannot=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ çàäàíèÿ êâîòû ïî óìîë÷àíèþ äëÿ ýòîé ôàéëîâîé ñèñòåìû lusers_check=Ïðîâåðèòü êâîòû index_action=Äåéñòâèå cuform_euallow=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ êîïèðîâàíèÿ êâîò ýòîãî ïîëüçîâàòåëÿ ggraces_eedit=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ âðåìåíè îòñðî÷êè äëÿ ýòîé ôàéëîâîé ñèñòåìû ufilesys_hard=Ñòðîãèé ëèìèò index_disable=Îòêëþ÷èòü êâîòû egroup_eallowfs=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ êâîò äëÿ ýòîé ôàéëîâîé ñèñòåìû acl_ugroup= Ïîëüçîâàòåëè ñ îñíîâíîé ãðóïïîé ggracef_update=Îáíîâèòü lusers_egrace=Èçìåíèòü âðåìÿ îòñðî÷êè cgform_egroup=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ êîïèðîâàíèÿ êâîò ýòîé ãðóïïû quota_unlimited=Íå îãðàíè÷åíî ugracef_update=Îáíîâèòü ugracef_ecannot=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ âðåìåíè îòñðî÷êè äëÿ ýòîé ôàéëîâîé ñèñòåìû suser_emaxfiles=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ ïðåäîñòàâëåíèÿ ëèìèòîâ, ïðåâûøàþùèõ $1 gfilesys_title=Êâîòû ãðóïï index_qgroup=Êâîòû ãðóïï cgroup_efail=Íå óäàëîñü ñêîïèðîâàòü êâîòû lusers_sblimit=Ëèìèò áëîêîâ ufilesys_title=Êâîòû ïîëüçîâàòåëÿ cgroup_ecannot=Âû íå ìîæåòå êîïèðîâàòü êâîòû sgroup_egroup=Ó âàñ íåäîñòàòî÷íî ïðàâ äëÿ èçìåíåíèÿ êâîò äëÿ èçìåíåíèÿ êâîò ýòîé ãðóïïû acl_gall= Âñå ãðóïïû grace_hours=×àñîâ check_done=... Âûïîëíåíî. lgroups_equota=Èçìåíèòü êâîòó äëÿ: lgroups_soft=Ëèìèò cuform_members=×ëåíîâ âûáðàííûõ ãðóïï quota/lang/ru_SU0100644000567100000120000002365410067401527013605 0ustar jcameronwheelquota_unlimited=îÅ ÏÇÒÁÎÉÞÅÎÏ acl_fss=æÁÊÌÏ×ÙÅ ÓÉÓÔÅÍÙ, Ë×ÏÔÙ ËÏÔÏÒÙÈ ÍÏÖÅÔ ÉÚÍÅÎÑÔØ ÜÔÏÔ ÐÏÌØÚÏ×ÁÔÅÌØ acl_fall=÷ÓÅ ÆÁÊÌÏ×ÙÅ ÓÉÓÔÅÍÙ acl_fsel=÷ÙÂÒÁÎÎÙÅ.. acl_quotaon=íÏÖÅÔ ×ËÌÀÞÁÔØ É ÏÔËÌÀÞÁÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ Ë×ÏÔ? acl_quotanew=íÏÖÅÔ ÎÁÓÔÒÁÉ×ÁÔØ Ë×ÏÔÙ ÄÌÑ ÎÏ×ÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ? acl_ugrace=íÏÖÅÔ ÒÅÄÁËÔÉÒÏ×ÁÔØ ÏÔÓÒÏÞËÕ ××ÏÄÁ ÏÇÒÁÎÉÞÅÎÉÊ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÅÊ? acl_vtotal=íÏÖÅÔ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÏÂÝÅÅ ÄÉÓËÏ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï? acl_ggrace=íÏÖÅÔ ÒÅÄÁËÔÉÒÏ×ÁÔØ ÏÔÓÒÏÞËÕ ××ÏÄÁ ÏÇÒÁÎÉÞÅÎÉÊ ÄÌÑ ÇÒÕÐÐ? acl_uquota=ðÏÌØÚÏ×ÁÔÅÌÉ, Ë×ÏÔÙ ËÏÔÏÒÙÈ ÍÏÖÅÔ ÉÚÍÅÎÑÔØ ÜÔÏÔ ÐÏÌØÚÏ×ÁÔÅÌØ acl_gquota=çÒÕÐÐÙ, Ë×ÏÔÙ ËÏÔÏÒÙÈ ÍÏÖÅÔ ÉÚÍÅÎÑÔØ ÜÔÏÔ ÐÏÌØÚÏ×ÁÔÅÌØ acl_uall= ÷ÓÅ ÐÏÌØÚÏ×ÁÔÅÌÉ acl_uonly= ôÏÌØËÏ ÕËÁÚÁÎÎÙÅ ÐÏÌØÚÏ×ÁÔÅÌÉ acl_uexcept= ÷ÓÅ ÐÏÌØÚÏ×ÁÔÅÌÉ ËÒÏÍÅ ÕËÁÚÁÎÎÙÈ acl_ugroup= ðÏÌØÚÏ×ÁÔÅÌÉ Ó ÏÓÎÏ×ÎÏÊ ÇÒÕÐÐÏÊ acl_gall= ÷ÓÅ ÇÒÕÐÐÙ acl_gnone= îÉËÁËÉÅ ÇÒÕÐÐÙ acl_gonly= ôÏÌØËÏ ÕËÁÚÁÎÎÙÅ ÇÒÕÐÐÙ acl_gexcept= ÷ÓÅ ÇÒÕÐÐÙ, ËÒÏÍÅ ÕËÁÚÁÎÎÙÈ acl_uuid=ðÏÌØÚÏ×ÁÔÅÌÉ Ó UID × ÄÉÁÐÁÚÏÎÅ acl_maxblocks=íÁËÓÉÍÁÌØÎÏ ×ÏÚÍÏÖÎÁÑ Ë×ÏÔÁ ÂÌÏËÏ× acl_maxfiles=íÁËÓÉÍÁÌØÎÏ ×ÏÚÍÏÖÎÁÑ Ë×ÏÔÁ ÆÁÊÌÏ× acl_unlimited=îÅ ÏÇÒÁÎÉÞÅÎÏ activate_eallow=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ×ËÌÀÞÅÎÉÑ ÉÌÉ ÏÔËÌÀÞÅÎÉÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ë×ÏÔ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ activate_eon=îÅ ÕÄÁÌÏÓØ ×ËÌÀÞÉÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ Ë×ÏÔ activate_eoff=îÅ ÕÄÁÌÏÓØ ÏÔËÌÀÞÉÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ Ë×ÏÔ check_title=ðÒÏ×ÅÒËÁ Ë×ÏÔ check_return=óÐÉÓÏË $1 check_ecannot=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÐÒÏ×ÅÒËÉ Ë×ÏÔ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ check_running=äÌÑ ÐÒÏ×ÅÒËÉ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÂÌÏËÏ× É ÆÁÊÌÏ× ÎÁ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ $1 ÚÁÐÕÝÅÎÁ ËÏÍÁÎÄÁ quotacheck. äÌÑ ÂÏÌØÛÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÜÔÏ ÍÏÖÅÔ ÚÁÎÑÔØ ÍÎÏÇÏ ×ÒÅÍÅÎÉ... check_done=... ÷ÙÐÏÌÎÅÎÏ. check_rgroup=ÇÒÕÐÐÁ check_ruser=ÐÏÌØÚÏ×ÁÔÅÌØ cgroup_efail=îÅ ÕÄÁÌÏÓØ ÓËÏÐÉÒÏ×ÁÔØ Ë×ÏÔÙ cgroup_ecannot=÷Ù ÎÅ ÍÏÖÅÔÅ ËÏÐÉÒÏ×ÁÔØ Ë×ÏÔÙ cgroup_egallow=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ Ë×ÏÔ ÜÔÏÊ ÇÒÕÐÐÙ cgroup_enogroup=îÅ ÕËÁÚÁÎÏ ÇÒÕÐÐ ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ cgroup_eallowto=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ Ë×ÏÔ ÎÁ '$1' cgform_title=ëÏÐÉÒÏ×ÁÎÉÅ Ë×ÏÔ cgform_return=Ë×ÏÔÁÍ ÇÒÕÐÐÙ cgform_ecannot=÷Ù ÎÅ ÍÏÖÅÔÅ ËÏÐÉÒÏ×ÁÔØ Ë×ÏÔÙ cgform_egroup=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ Ë×ÏÔ ÜÔÏÊ ÇÒÕÐÐÙ cgform_copyto=ëÏÐÉÒÏ×ÁÔØ Ë×ÏÔÙ $1 ÎÁ ÷óå ÆÁÊÌÏ×ÙÅ ÓÉÓÔÅÍÙ ÄÌÑ ... cgform_all=÷ÓÅ ÇÒÕÐÐÙ ×ÁÛÅÊ ÓÉÓÔÅÍÙ cgform_select=÷ÙÂÒÁÎÎÙÅ ÇÒÕÐÐÙ cgform_contain=çÒÕÐÐÙ, ÓÏÄÅÒÖÁÝÉÅ ÐÏÌØÚÏ×ÁÔÅÌÅÊ cgform_doit=óËÏÐÉÒÏ×ÁÔØ cuser_efail=îÅ ÕÄÁÌÏÓØ ÓËÏÐÉÒÏ×ÁÔØ Ë×ÏÔÙ cuser_ecannot=÷Ù ÎÅ ÍÏÖÅÔÅ ËÏÐÉÒÏ×ÁÔØ Ë×ÏÔÙ cuser_euallow=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ Ë×ÏÔ ÜÔÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ cuser_enouser=ðÏÌØÚÏ×ÁÔÅÌÉ ÎÅ ÕËÁÚÁÎÙ cuser_eallowto=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ Ë×ÏÔ ÎÁ '$1' cuform_title=ëÏÐÉÒÏ×ÁÎÉÅ Ë×ÏÔ cuform_return=Ë×ÏÔÁÍ ÐÏÌØÚÏ×ÁÔÅÌÅÊ cuform_ecannot=÷Ù ÎÅ ÍÏÖÅÔÅ ËÏÐÉÒÏ×ÁÔØ Ë×ÏÔÙ cuform_euallow=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ Ë×ÏÔ ÜÔÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ cuform_copyto=ëÏÐÉÒÏ×ÁÔØ Ë×ÏÔÙ $1 ÎÁ ÷óå ÆÁÊÌÏ×ÙÅ ÓÉÓÔÅÍÙ ÄÌÑ ... cuform_all=÷ÓÅÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ cuform_select=÷ÙÂÒÁÎÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ cuform_members=þÌÅÎÏ× ×ÙÂÒÁÎÎÙÈ ÇÒÕÐÐ cuform_doit=óËÏÐÉÒÏ×ÁÔØ egroup_title=éÚÍÅÎÅÎÉÅ Ë×ÏÔ egroup_freturn=ÓÐÉÓËÕ ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ egroup_greturn=ÓÐÉÓËÕ ÇÒÕÐÐ egroup_eallowgr=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔ ÄÌÑ '$1' egroup_eallowfs=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ egroup_quotas=ë×ÏÔÁ $1 ÄÌÑ $2 egroup_bused=úÁÎÑÔÏ ÂÌÏËÏ× egroup_sblimit=ìÉÍÉÔ ÂÌÏËÏ× egroup_hblimit=óÔÒÏÇÉÊ ÌÉÍÉÔ ÂÌÏËÏ× egroup_fused=éÓÐÏÌØÚÏ×ÁÎÏ ÆÁÊÌÏ× egroup_sflimit=ìÉÍÉÔ ÆÁÊÌÏ× egroup_hflimit=óÔÒÏÇÉÊ ÌÉÍÉÔ ÆÁÊÌÏ× egroup_update=ïÂÎÏ×ÉÔØ egroup_listall=ðÏËÁÚÁÔØ ×ÓÅ Ë×ÏÔÙ euser_title=éÚÍÅÎÅÎÉÅ Ë×ÏÔÙ euser_freturn=ÓÐÉÓËÕ ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ euser_ureturn=ÓÐÉÓËÕ ÐÏÌØÚÏ×ÁÔÅÌÅÊ euser_eallowus=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔ ÄÌÑ '$1' euser_eallowfs=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ euser_quotas=ë×ÏÔÁ $1 ÄÌÑ $2 euser_bused=úÁÎÑÔÏ ÂÌÏËÏ× euser_bdisk=ó×ÏÂÏÄÎÏ ÂÌÏËÏ× ÎÁ ÄÉÓËÅ euser_sblimit=ìÉÍÉÔ ÂÌÏËÏ× euser_hblimit=óÔÒÏÇÉÊ ÌÉÍÉÔ ÂÌÏËÏ× euser_fused=éÓÐÏÌØÚÏ×ÁÎÏ ÆÁÊÌÏ× euser_fdisk=äÏÓÔÕÐÎÏ ÆÁÊÌÏ× ÎÁ ÄÉÓËÅ euser_sflimit=ìÉÍÉÔ ÆÁÊÌÏ× euser_hflimit=óÔÒÏÇÉÊ ÌÉÍÉÔ ÆÁÊÌÏ× euser_update=ïÂÎÏ×ÉÔØ euser_listall=ðÏËÁÚÁÔØ ×ÓÅ Ë×ÏÔÙ gfilesys_title=ë×ÏÔÙ ÇÒÕÐÐ gfilesys_return=ÓÐÉÓËÕ ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ gfilesys_ecannot=÷Ù ÎÅ ÍÏÖÅÔÅ ÉÚÍÅÎÑÔØ Ë×ÏÔÙ ÄÌÑ '$1' gfilesys_all=÷ÓÅ Ë×ÏÔÙ ÄÌÑ $1 gfilesys_blocks=âÌÏËÉ gfilesys_files=æÁÊÌÙ gfilesys_fs=æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ gfilesys_used=éÓÐÏÌØÚÏ×ÁÎÏ gfilesys_soft=ìÉÍÉÔ gfilesys_hard=óÔÒÏÇÉÊ ÌÉÍÉÔ gfilesys_nogquota=çÒÕÐÐÁ $1 ÎÅ ÉÍÅÅÔ Ë×ÏÔ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ gfilesys_edit=éÚÍÅÎÉÔØ Ë×ÏÔÕ ÄÌÑ: gfilesys_copy=óËÏÐÉÒÏ×ÁÔØ Ë×ÏÔÙ ggracef_title=ïÔÓÒÏÞËÉ ggracef_return=ÓÐÉÓËÕ ÇÒÕÐÐ ggracef_ecannot=÷Ù ÎÅ ÍÏÖÅÔÅ ÍÅÎÑÔØ ×ÒÅÍÑ ÏÔÓÒÏÞËÉ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ggracef_info=ëÁÖÄÁÑ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ×ÒÅÍÑ ÏÔÓÒÏÞËÉ ××ÅÄÅÎÉÑ ÏÇÒÁÎÉÞÅÎÉÊ ÄÌÑ Ë×ÏÔ ÆÁÊÌÏ× É ÂÌÏËÏ×. ÷ÒÅÍÑ ÏÔÓÒÏÞËÉ ÏÐÒÅÄÅÌÑÅÔ, ÓËÏÌØËÏ ÐÒÏÊÄÅÔ ×ÒÅÍÅÎÉ ÍÅÖÄÕ ÐÒÅ×ÙÛÅÎÉÅÍ ÇÒÕÐÐÏÊ Ë×ÏÔÙ É ÚÁÐÒÅÔÏÍ ÓÏÚÄÁÎÉÑ ÆÁÊÌÏ×. ggracef_graces=÷ÒÅÍÑ ÏÔÓÒÏÞËÉ ÏÇÒÁÎÉÞÅÎÉÊ ÄÌÑ ÇÒÕÐÐÙ $1 ggracef_block=äÌÑ Ë×ÏÔÙ ÂÌÏËÏ× ggracef_file=äÌÑ Ë×ÏÔÙ ÆÁÊÌÏ× ggracef_update=ïÂÎÏ×ÉÔØ ggraces_esave=îÅ ÕÄÁÌÏÓØ ÓÏÈÒÁÎÉÔØ ×ÒÅÍÑ ÏÔÓÒÏÞËÉ ggraces_eedit=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ ×ÒÅÍÅÎÉ ÏÔÓÒÏÞËÉ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ggraces_enumber='$1' ÎÅ Ñ×ÌÑÅÔÓÑ ÞÉÓÌÏÍ index_quser=ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ index_qgroup=ë×ÏÔÙ ÇÒÕÐÐ index_qboth=ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ É ÇÒÕÐÐ index_active=÷ËÌÀÞÅÎÏ index_disable=ïÔËÌÀÞÉÔØ Ë×ÏÔÙ index_inactive=ïÔËÌÀÞÅÎÏ index_enable=÷ËÌÀÞÉÔØ Ë×ÏÔÙ index_mountonly=ë×ÏÔÙ ÍÏÇÕÔ ÂÙÔØ ×ËÌÀÞÅÎÙ ÔÏÌØËÏ ÐÒÉ ÍÏÎÔÉÒÏ×ÁÎÉÉ index_title=äÉÓËÏ×ÙÅ Ë×ÏÔÙ index_fs=æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ index_type=ôÉÐ index_mount=ðÏÄËÌÀÞÅÎÏ ÉÚ index_status=óÏÓÔÏÑÎÉÅ index_action=äÅÊÓÔ×ÉÅ index_return=ÍÅÎÀ index_euser=éÚÍÅÎÉÔØ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ: index_egroup=éÚÍÅÎÉÔØ Ë×ÏÔÙ ÄÉÓËÏ×: index_nosupport=îÅ ÏÂÎÁÒÕÖÅÎÏ ÌÏËÁÌØÎÙÈ ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ, ÐÏÄÄÅÒÖÉ×ÁÀÝÉÈ Ë×ÏÔÙ lgroups_failed=îÅ ÕÄÁÌÏÓØ ×Ù×ÅÓÔÉ ÓÐÉÓÏË ÇÒÕÐÐ lgroups_eallow=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ lgroups_title=ë×ÏÔÙ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ lgroups_return=ÓÐÉÓËÕ ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ lgroups_toomany=óÌÉÛËÏÍ ÍÎÏÇÏ ÇÒÕÐÐ ÉÍÅÀÔ Ë×ÏÔÙ ÄÌÑ $1, ÞÔÏÂÙ ×Ù×ÅÓÔÉ ×ÅÓØ ÓÐÉÓÏË ÎÁ ÏÄÎÕ ÓÔÒÁÎÉÃÕ lgroups_quotas=÷ÓÅ Ë×ÏÔÙ ÇÒÕÐÐ ÄÌÑ $1 lgroups_blocks=âÌÏËÉ lgroups_files=æÁÊÌÙ lgroups_group=çÒÕÐÐÁ lgroups_used=éÓÐÏÌØÚÏ×ÁÎÏ lgroups_soft=ìÉÍÉÔ lgroups_hard=óÔÒÏÇÉÊ ÌÉÍÉÔ lgroups_noquota=îÉ ÏÄÎÁ ÉÚ ÇÒÕÐÐ ÎÅ ÉÍÅÅÔ Ë×ÏÔ ÄÌÑ $1 lgroups_equota=éÚÍÅÎÉÔØ Ë×ÏÔÕ ÄÌÑ: lgroups_grace=éÚÍÅÎÉÔØ ×ÒÅÍÑ ÏÔÓÒÏÞËÉ lgroups_check=ðÒÏ×ÅÒÉÔØ Ë×ÏÔÙ sgroup_egroup=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔ ÄÌÑ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔ ÜÔÏÊ ÇÒÕÐÐÙ sgroup_efs=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ssync_ecannot=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÚÁÄÁÎÉÑ Ë×ÏÔÙ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ suser_euser=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔ ÜÔÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ suser_efs=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÚÁÄÁÎÉÑ Ë×ÏÔÙ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ suser_emaxblocks=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÐÒÅÄÏÓÔÁ×ÌÅÎÉÑ ÌÉÍÉÔÏ×, ÐÒÅ×ÙÛÁÀÝÉÈ $1 suser_emaxfiles=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÐÒÅÄÏÓÔÁ×ÌÅÎÉÑ ÌÉÍÉÔÏ×, ÐÒÅ×ÙÛÁÀÝÉÈ $1 ufilesys_title=ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÑ ufilesys_return=ÓÐÉÓËÕ ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ ufilesys_ecannot=÷Ù ÎÅ ÍÏÖÅÔÅ ÉÚÍÅÎÑÔØ Ë×ÏÔÙ ÄÌÑ '$1' ufilesys_all=÷ÓÅ Ë×ÏÔÙ ÄÌÑ $1 ufilesys_blocks=âÌÏËÉ ufilesys_files=æÁÊÌÙ ufilesys_fs=æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ufilesys_used=éÓÐÏÌØÚÏ×ÁÎÏ ufilesys_soft=ìÉÍÉÔ ufilesys_hard=óÔÒÏÇÉÊ ÌÉÍÉÔ ufilesys_nouquota=ðÏÌØÚÏ×ÁÔÅÌØ $1 ÎÅ ÉÍÅÅÔ Ë×ÏÔ ÎÉ ÎÁ ÏÄÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ ufilesys_edit=éÚÍÅÎÉÔØ Ë×ÏÔÕ ÄÌÑ: ufilesys_copy=óËÏÐÉÒÏ×ÁÔØ Ë×ÏÔÙ ugracef_title=÷ÒÅÍÑ ÏÔÓÒÏÞËÉ ugracef_return=ÓÐÉÓËÕ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ugracef_ecannot=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ ×ÒÅÍÅÎÉ ÏÔÓÒÏÞËÉ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ugracef_info=ëÁÖÄÁÑ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ×ÒÅÍÑ ÏÔÓÒÏÞËÉ ××ÅÄÅÎÉÑ ÏÇÒÁÎÉÞÅÎÉÊ ÄÌÑ Ë×ÏÔ ÆÁÊÌÏ× É ÂÌÏËÏ×. ÷ÒÅÍÑ ÏÔÓÒÏÞËÉ ÏÐÒÅÄÅÌÑÅÔ, ÓËÏÌØËÏ ÐÒÏÊÄÅÔ ×ÒÅÍÅÎÉ ÍÅÖÄÕ ÐÒÅ×ÙÛÅÎÉÅÍ ÇÒÕÐÐÏÊ ÐÏÌØÚÏ×ÁÔÅÌÅÍ É ÚÁÐÒÅÔÏÍ ÓÏÚÄÁÎÉÑ ÆÁÊÌÏ×. ugracef_graces=÷ÒÅÍÑ ÏÔÓÒÏÞËÉ ÏÇÒÁÎÉÞÅÎÉÊ ÄÌÑ $1 ugracef_block=äÌÑ Ë×ÏÔÙ ÂÌÏËÏ× ugracef_file=äÌÑ Ë×ÏÔÙ ÆÁÊÌÏ× ugracef_update=ïÂÎÏ×ÉÔØ ugraces_esave=îÅ ÕÄÁÌÏÓØ ÓÏÈÒÁÎÉÔØ ×ÒÅÍÑ ÏÔÓÒÏÞËÉ ugraces_eedit=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ ×ÒÅÍÅÎÉ ÏÔÓÒÏÞËÉ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ugraces_enumber='$1' ÎÅ Ñ×ÌÑÅÔÓÑ ÞÉÓÌÏÍ lusers_failed=îÅ ÕÄÁÌÏÓØ ×Ù×ÅÓÔÉ ÓÐÉÓÏË ÐÏÌØÚÏ×ÁÔÅÌÅÊ lusers_eallow=õ ×ÁÓ ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÒÁ× ÄÌÑ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ lusers_title=ë×ÏÔÙ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ lusers_return=ÓÐÉÓËÕ ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ lusers_toomany=óÌÉÛËÏÍ ÍÎÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÉÍÅÀÔ Ë×ÏÔÙ ÄÌÑ $1, ÞÔÏÂÙ ×Ù×ÅÓÔÉ ÉÈ ÎÁ ÏÄÎÕ ÓÔÒÁÎÉÃÕ lusers_qoutas=÷ÓÅ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÄÌÑ $1 lusers_blocks=âÌÏËÉ lusers_files=æÁÊÌÙ lusers_user=ðÏÌØÚÏ×ÁÔÅÌØ lusers_used=éÓÐÏÌØÚÏ×ÁÎÏ lusers_soft=ìÉÍÉÔ lusers_hard=óÔÒÏÇÉÊ ÌÉÍÉÔ lusers_noquota=îÉ ÏÄÉÎ ÐÏÌØÚÏ×ÁÔÅÌØ ÎÅ ÉÍÅÅÔ Ë×ÏÔ ÄÌÑ $1 lusers_equota=éÚÍÅÎÉÔØ Ë×ÏÔÙ ÄÌÑ: lusers_egrace=éÚÍÅÎÉÔØ ×ÒÅÍÑ ÏÔÓÒÏÞËÉ lusers_check=ðÒÏ×ÅÒÉÔØ Ë×ÏÔÙ lusers_info=Webmin ÍÏÖÅÔ Á×ÔÏÍÁÔÉÞÅÓËÉ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ Ë×ÏÔÙ ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÐÒÉ ÓÏÚÄÁÎÉÉ ÎÏ×ÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ Unix. üÔÏ ×ÏÚÍÏÖÎÏ ÔÏÌØËÏ × ÓÌÕÞÁÅ, ÅÓÌÉ ÄÌÑ ÄÏÂÁ×ÌÅÎÉÑ ÐÏÌØÚÏ×ÁÔÅÌÑ ÉÓÐÏÌØÚÕÅÔÓÑ ÍÏÄÕÌØ $1. lusers_useradmin=ðÏÌØÚÏ×ÁÔÅÌÉ É ÇÒÕÐÐÙ lusers_newuser=îÏ×ÁÑ Ë×ÏÔÁ ÐÏÌØÚÏ×ÁÔÅÌÑ lusers_sblimit=ìÉÍÉÔ ÂÌÏËÏ× lusers_hblimit=óÔÒÏÇÉÊ ÌÉÍÉÔ ÂÌÏËÏ× lusers_sflimit=ìÉÍÉÔ ÆÁÊÌÏ× lusers_hflimit=óÔÒÏÇÉÊ ÌÉÍÉÔ ÆÁÊÌÏ× lusers_apply=ðÒÉÍÅÎÉÔØ grace_seconds=óÅËÕÎÄ grace_minutes=íÉÎÕÔ grace_hours=þÁÓÏ× grace_days=äÎÅÊ grace_weeks=îÅÄÅÌØ grace_months=íÅÓÑÃÅ× log_activate_u=÷ËÌÀÞÅÎÙ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÄÌÑ $1 log_activate_g=÷ËÌÀÞÅÎÙ Ë×ÏÔÙ ÇÒÕÐÐ ÄÌÑ $1 log_activate_ug=÷ËÌÀÞÅÎÙ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ É ÇÒÕÐÐ ÄÌÑ $1 log_deactivate_u=÷ÙËÌÀÞÅÎÙ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÄÌÑ $1 log_deactivate_g=÷ÙËÌÀÞÅÎÙ Ë×ÏÔÙ ÇÒÕÐÐ ÄÌÑ $1 log_deactivate_ug=÷ÙËÌÀÞÅÎÙ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ É ÇÒÕÐÐ ÄÌÑ $1 log_save=éÚÍÅÎÅÎÙ Ë×ÏÔÙ $1 ÄÌÑ $2 log_sync=éÚÍÅÎÅÎÙ Ë×ÏÔÙ ÎÏ×ÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÌÑ $1 log_grace_u=éÚÍÅÎÅÎÏ ×ÒÅÍÑ ÏÔÓÒÏÞËÉ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÌÑ $1 log_grace_g=éÚÍÅÎÅÎÏ ×ÒÅÍÑ ÏÔÓÒÏÞËÉ ÄÌÑ ÇÒÕÐÐ ÄÌÑ $1 log_check=ðÒÏ×ÅÒÅÎÙ Ë×ÏÔÙ ÄÌÑ $1 log_copy_u=óËÏÐÉÒÏ×ÁÎÙ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÑ $1 log_copy_g=óËÏÐÉÒÏ×ÁÎÙ Ë×ÏÔÙ ÇÒÕÐÐÙ $1 quota/lang/pt_BR0100664000567100000120000002345110067401470013550 0ustar jcameronwheelquota_unlimited=Ilimitado acl_fss=Sistemas de arquivo que o usuário pode editar acl_fall=Todos os Sistemas de arquivos acl_fsel=Selecionado.. acl_quotaon=Pode habilitar ou desabilitar quotas? acl_quotanew=Pode configurar cotas para novos usuários? acl_ugrace=Pode editar grace times dos usuários? acl_vtotal=Pode ver o total de espaço em disco? acl_ggrace=Pode editar tempo de tolerância dos grupos? acl_uquota=Usuários para os quais esse usuário pode editar cotas acl_gquota=Grupos para os quais esse usuário pode editar cotas acl_uall= Todos usuários acl_uonly= Somente usuários acl_uexcept= Todos usuários exceto acl_ugroup= Usuários com grupo primário acl_gall= Todos os grupos acl_gnone= Nenhum grupo acl_gonly= Somente grupos acl_gexcept= Todos exceto grupos acl_uuid=Usuários com UID na faixa acl_maxblocks=Limite máxima de cota de blocos acl_maxfiles=Limite máximo de cota de arquivos acl_unlimited=Ilimitado activate_eallow=Você não tem permissão para habilitar ou disabilitar cotas nesse sistema de arquivos activate_eon=Falhou ao iniciar cotas activate_eoff=Falhou ao desabilitar cotas check_title=Verificar Cotas check_return=$1 lista check_ecannot=Você não pode verificar cotas nesse sistema de arquivos check_running=O comando quotacheck está verificando a utilização de blocos e arquivos em $1. Isso deve gastar bastante tempo para um sistema de arquivos grande... check_done=... Concluído. check_rgroup=grupo check_ruser=usuário cgroup_efail=Falha ao copiar cotas cgroup_ecannot=Você não pode copiar cotas cgroup_egallow=Você não tem permissão de copiar cotas desse grupo cgroup_enogroup=Nenhum grupo destino para copiar cgroup_eallowto=Você não tem permissão de copiar cotas para '$1' cgform_title=Copiar Cotas cgform_return=cota de grupo cgform_ecannot=Você não pode copiar cotas cgform_egroup=Você não tem permissão de copiar cotas desse grupo cgform_copyto=Copiar cotas de $1 em TODOS os sistemas de arquivos para ... cgform_all=Todos os grupos em seu sistema cgform_select=Grupos selecionados cgform_contain=Grupos contendo usuários cgform_doit=Copiar cuser_efail=Falhou ao copiar cotas cuser_ecannot=Você não pode copiar cotas cuser_euallow=Você não tem permissão de copiar cotas desse usuário cuser_enouser=Nenhum usuário destino para copiar cuser_eallowto=Você não tem permissão para copiar cotas para '$1' cuform_title=Copiar Cotas cuform_return=Cota de usuário cuform_ecannot=Você não pode copiar cotas cuform_euallow=Você não tem permissão para copiar as cotas desse usuário cuform_copyto=Copiar cotas de $1 em TODOS os sistemas de arquivos para ... cuform_all=Todos os usuários do sistema cuform_select=Usuários selecionados cuform_members=Membros dos Grupos selecionados cuform_doit=Copiar egroup_title=Editar Cota egroup_freturn=lista de sistema de arquivo egroup_greturn=lista de grupo egroup_eallowgr=Você não tem permissão para editar cotas para '$1' egroup_eallowfs=Você não tem permissão para editar cotas nesse sistema de arquivos egroup_quotas=Cota para $1 em $2 egroup_bused=Blocos usados egroup_sblimit=Limite flexível de blocos egroup_hblimit=Limite rígido de blocos egroup_fused=Arquivos usados egroup_sflimit=Limite flexível de arquivos egroup_hflimit=Limite rígido de arquivos egroup_update=Atualizar egroup_listall=Lista todas as Cotas euser_title=Editar Cota euser_freturn=Lista de sistemas de arquivo euser_ureturn=lista de usuários euser_eallowus=Você não tem permissão para editar cotas para '$1' euser_eallowfs=Você não tem permissão para editar cotas nesse sistema de arquivos euser_quotas=Cota para $1 em $2 euser_bused=Blocos Usados euser_bdisk=Blocos disponíveis no Disco euser_sblimit=Limite flexível de blocos euser_hblimit=Limite rígido de blocos euser_fused=Arquivos usados euser_fdisk=Arquivos disponíveis no Disco euser_sflimit=Limite flexível de arquivos euser_hflimit=Limite flexível de arquivos euser_update=Atualizar euser_listall=Lista todas as Cotas gfilesys_title=Cotas de Grupo gfilesys_return=lista de sistemas de arquivo gfilesys_ecannot=Você não pode editar cotas para '$1' gfilesys_all=Todas as Cotas de $1 gfilesys_blocks=Blocos gfilesys_files=Arquivos gfilesys_fs=Sistema de Arquivo gfilesys_used=Usado gfilesys_soft=Limite flexível gfilesys_hard=Limite rígido gfilesys_nogquota=Grupo $1 não tem cotas nesse sistema de arquivos gfilesys_edit=Editar Cota em: gfilesys_copy=Copiar Cotas ggracef_title=Tempo de tolerância ggracef_return=lista de grupos ggracef_ecannot=Você não pode editar o tempo de tolerância nesse sistema de arquivos ggracef_info=Cada sistema de arquivos tem um tempo de tolerância para cotas de bloco ou arquivo. O tempo de tolerância determina quanto tempo um grupo pode ficar acima do limite flexível de cota antes que não seja permitido criar novos arquivos. ggracef_graces=Tempo de tolerância para o grupo em $1 ggracef_block=Para cota de bloco ggracef_file=Para cota de arquivo ggracef_update=Atualizar ggraces_esave=Falha ao salvar tempo de tolerância ggraces_eedit=Você não pode editar o tempo de tolerância nesse sistema de arquivos ggraces_enumber='$1' não é um número index_quser=Cotas de Usuários index_qgroup=Cotas de Grupos index_qboth=Cotas de Usuários e Grupos index_active=Ativo index_disable=Desabilitar Cotas index_inactive=Inativo index_enable=Habilitar Cotas index_mountonly=Só pode habilitar ao montar index_title=Cotas de Disco index_fs=Sistema de Arquivo index_type=Tipo index_mount=Montado a partir de index_status=Estado index_action=Ação index_return=índice index_euser=Editar Cotas do Usuário: index_egroup=Edita Cotas do Grupo: index_nosupport=Nenhum sistema de arquivos local que suporte cotas lgroups_failed=Falha ao listar grupos lgroups_eallow=Você não tem permissão para editar cotas nesse sistema de arquivos lgroups_title=Cotas Sistemas de Arquivos lgroups_return=lista de sistema de arquivos lgroups_toomany=Existem muitos grupos que possuem cotas em $1 para serem mostrados em uma página lgroups_quotas=Cotas de todos os grupos em $1 lgroups_blocks=Blocos lgroups_files=Arquivos lgroups_group=Grupo lgroups_used=Usado lgroups_soft=Limite flexível lgroups_hard=Limite rígido lgroups_noquota=Nenhum grupo tem cota em $1 lgroups_equota=Edita Cota para: lgroups_grace=Editar Tempo de tolerância lgroups_check=Verifica Cotas sgroup_egroup=Você não tem permissão para editar cotas para esse grupo sgroup_efs=Você não tem permissão para editar cotas nesse sistema de arquivos ssync_ecannot=Você não pode modificar a cota padrão para esse sistema de arquivos suser_euser=Você não tem permissão para editar cotas para esse usuário suser_efs=Você não tem permissão para editar cotas nesse sistema de arquivos suser_emaxblocks=Você não tem permissão de modificar o limite de blocos acima $1 suser_emaxfiles=Você não tem permissão de modificar o limite de arquivos acima $1 ufilesys_title=Cotas de Usuários ufilesys_return=lista de sistema de arquivos ufilesys_ecannot=Você não pode editar cotas para '$1' ufilesys_all=Todas as Cotas de $1 ufilesys_blocks=Blocos ufilesys_files=Arquivo ufilesys_fs=Sistema de Arquivo ufilesys_used=Usado ufilesys_soft=Limite flexível ufilesys_hard=Limite rígido ufilesys_nouquota=O usuário $1 não possui cotas em nenhum sistema de arquivos. ufilesys_edit=Editar Cota em: ufilesys_copy=Copiar Cotas ugracef_title=Tempo de tolerância ugracef_return=lista de usuário ugracef_ecannot=Você não pode editar o tempo de tolerância nesse sistema de arquivos ugracef_info=Cada sistema de arquivos tem um tempo de tolerância para cotas de bloco ou arquivo. O tempo de tolerância determina quanto tempo um grupo pode ficar acima do limite flexível de cota antes que não seja permitido criar novos arquivos. ugracef_graces=Tempo de tolerância para o usuário em $1 ugracef_block=Cota de bloco ugracef_file=Cota de arquivo ugracef_update=Atualizar ugraces_esave=Falha ao salvar tempo de tolerância ugraces_eedit=Você não pode editar o tempo de tolerância nesse sistema de arquivos ugraces_enumber='$1' não é um número lusers_failed=Falha ao listar usuários lusers_eallow=Você não tem permissão para editar cotas nesse sistema de arquivos lusers_title=Cotas Sistema de Arquivo lusers_return=lista de Sistema de Arquivo lusers_toomany=Existem muitos grupos que possuem cotas em $1 para serem mostrados em uma página lusers_qoutas=Todas as Cotas de Usuário em $1 lusers_blocks=Blocos lusers_files=Arquivos lusers_user=Usuários lusers_used=Usado lusers_soft=Limite flexível lusers_hard=Limite rígido lusers_noquota=Nenhum usuário tem cota em $1 lusers_equota=Editar Cota para: lusers_egrace=Editar tempo de tolerância lusers_check=Verificar cotas lusers_info=O Webmin pode ser configurado para atribuir as cotas automaticamente para esse sistema de arquivos quando um novo usuário é criado. Isso só funcionará se o módulo $1 for utilizado para adicionar usuários. lusers_useradmin=Usuários e grupos lusers_newuser=Cotas para novos usuários lusers_sblimit=Limite flexível de blocos lusers_hblimit=Limite rígido de blocos lusers_sflimit=Limite flexível de arquivos lusers_hflimit=Limite rígido de arquivos lusers_apply=Aplicar grace_seconds=Segundos grace_minutes=Minutos grace_hours=Horas grace_days=Dias grace_weeks=Semanas grace_months=Meses log_activate_u=Habilitar cotas para novos usuários em $1 log_activate_g=Habilitar cotas para grupos em $1 log_activate_ug=Habilitar cotas para usuários e grupos em $1 log_deactivate_u=Desabilitar cotas de usuário em $1 log_deactivate_g=Desabilitar cotas de grupo em $1 log_deactivate_ug=Desabilitar cotas de grupo e usuário em $1 log_save=Cotas para $1 em $2 modificadas log_sync=Cotas para novos usuários modificadas em $1 log_grace_u=Tempo de tolerância de usuário modificado em $1 log_grace_g=Tempo de tolerância de grupo modificado em$1 log_check=Cotas verificadas em $1 log_copy_u=Cotas do usuário $1 copiadas log_copy_g=Cotas do grupo $1 copiadas quota/lang/cz0100664000567100000120000002273210141413176013156 0ustar jcameronwheelquota_unlimited=bez omezení acl_fss=Svazky, které lze upravovat acl_fall=V¹echny svazky acl_fsel=Zvolené .. acl_quotaon=Mù¾e zapnout a vypnout kvóty ? acl_quotanew=Mù¾e nastavovat kvóty pro nové u¾ivatele? acl_ugrace=Mù¾e upravovat u¾ivatelský èasový limit ? acl_vtotal=Mù¾e prohlí¾et celkové místo na disku ? acl_ggrace=Mù¾e nastavovat skupinový grace times ? acl_uquota=U¾ivatelé tohoto u¾ivatele mohou upravovat kvóty pro acl_gquota=Skupiny tohoto u¾ivatele mohou upravovat kvóty pro acl_uall= V¹ichni u¾ivatelé acl_uonly= Pouze u¾ivatelé acl_uexcept= V¹ichni, kromì u¾ivatelù acl_ugroup= U¾ivatelé se základní skupinou acl_gall= V¹echny skupiny acl_gnone= ®ádné skupiny acl_gonly= Pouze skupiny acl_gexcept= V¹echny, kromì skupin acl_uuid=U¾ivatelé s UID v rozmezí acl_maxblocks=Maximální pøidìlitelná bloková kvóta acl_maxfiles=Maximální pøidìlitelná souborová kvóta acl_unlimited=Neomezeno activate_eallow=Nemáte oprávnìní zapnout/vypnout kvóty na tomto svazku activate_eon=chyba pøi zapnutí podpory kvót activate_eoff=chyba pøi vypnutí podpory kvót check_title=Zkontrolovat kvóty check_return=$1 seznam check_ecannot=Nemù¾ete upravovat kvóty na tomto svazku check_running=Pøíkaz quotacheck nyní kontroluje vyu¾ité místo a poèty souborù na svazku $1. Tato operace mù¾e chvíli trvat ... check_done=... hotovo. check_rgroup=skupina check_ruser=u¾ivatel cgroup_efail=Chyba pøi kopírování kvót. cgroup_ecannot=Nemù¾ete kopírovat kvóty. cgroup_egallow=Nemáte oprávnìní kopírovat kvóty této skupiny cgroup_enogroup=Neexistuje ¾ádna skupina ke kopírování cgroup_eallowto=Nemáte oprávnìní ke kopírování kvót pro '$1' cgform_title=Kopírování kvót cgform_return=skupinové kvóty cgform_ecannot=Nemù¾ete kopírovat kvóty cgform_egroup=Nemáte oprávnìní kopírovat kvóty této skupiny cgform_copyto=Kopírovat kvóty od skupiny $1 na V©ECH SVAZCÍCH pro cgform_all=v¹echny skupiny v systému cgform_select=vybrané skupiny cgform_contain=skupiny obsahující u¾ivatele cgform_doit=Kopírovat cuser_efail=Chyba pøi kopírování kvót. cuser_ecannot=Nemù¾ete kopírovat kvóty. cuser_euallow=Nemáte oprávnìní kopírovat kvóty tohoto u¾ivatele. cuser_enouser=®ádní u¾ivatelé ke kopírování cuser_eallowto=Nemáte oprávnìní ke kopírování kvót pro '$1' cuform_title=Kopírování kvót cuform_return=u¾ivatelské kvóty cuform_ecannot=Nemù¾ete kopírovat kvóty cuform_euallow=Nemáte oprávnìní kopírovat kvóty tohoto u¾ivatele cuform_copyto=Kopírovat kvóty od u¾ivatele $1 na V©ECH SVAZCÍCH pro cuform_all=v¹echni u¾ivatelé v systému cuform_select=vybraní u¾ivatelé cuform_members=èlenové vybraných skupin cuform_doit=Kopírovat egroup_title=Upravit kvótu egroup_freturn=seznam svazkù egroup_greturn=seznam skupin egroup_eallowgr=Nemáte oprávnìní upravovat kvóty pro '$1' egroup_eallowfs=Nemáte oprávnìní upravovat kvóty na tomto svazku egroup_quotas=Kvóta pro skupinu $1 na svazku $2 egroup_bused=Pou¾itých blokù egroup_sblimit=Doèasný blokový limit egroup_hblimit=Pevný blokový limit egroup_fused=Pou¾itých souborù egroup_sflimit=Doèasný souborový limit egroup_hflimit=Pevný souborový limit egroup_update=Aktualizovat egroup_listall=Seznam v¹ech kvót euser_title=Upravit kvótu euser_freturn=seznam svazkù euser_ureturn=seznam u¾ivatelù euser_eallowus=Nemáte oprávnìní upravovat kvóty pro '$1' euser_eallowfs=Nemáte oprávnìní upravovat kvóty na tomto svazku euser_quotas=Kvóta pro u¾ivatele $1 na svazku $2 euser_bused=Pou¾itých blokù euser_bdisk=Dostupných blokù na disku euser_sblimit=Doèasný blokový limit euser_hblimit=Pevný blokový limit euser_fused=Pou¾itých souborù euser_fdisk=Dostupných soubory na disku euser_sflimit=Doèasný souborový limit euser_hflimit=Pevný souborový limit euser_update=Aktualizovat euser_listall=Seznam v¹ech kvót gfilesys_title=Skupinové kvóty gfilesys_return=seznam svazkù gfilesys_ecannot=Nemáte oprávnìní upravovat kvóty pro '$1' gfilesys_all=V¹echny kvóty pro gfilesys_blocks=Blokù gfilesys_files=Souborù gfilesys_fs=Svazek gfilesys_used=Pou¾ito gfilesys_soft=Doèasný limit gfilesys_hard=Pevný limit gfilesys_nogquota=Skupina $1 nemá kvótu na ¾ádném svazku gfilesys_edit=Upravit kvótu na svazku: gfilesys_copy=Kopírovat kvóty ggracef_title=Èasový limit ggracef_return=seznam skupin ggracef_ecannot=Nemáte oprávnìní upravovat èasový limit na tomto svazku ggracef_info=Ka¾dý svazek má èasový limit pro blokové a souborové kvóty. Èasový limit urèuje, jak dlouho mù¾e mít skupina pøekroèen doèasný blokový a souborový limit dokud nebude moci vytvoøit dal¹í nové soubory. ggracef_graces=Skupinový èasový limit pro $1 ggracef_block=Pro blokovou kvótu ggracef_file=Pro souborovou kvótu ggracef_update=Aktualizovat ggraces_esave=Chyba pøi ukládání èasového limitu ggraces_eedit=Nemáte oprávnìní upravovat èasový limit na tomto svazku ggraces_enumber='$1' není platné èíslo index_quser=u¾ivatelské kvóty index_qgroup=skupinové kvóty index_qboth=u¾ivatelské a skupinové kvóty index_active=jsou aktivní index_disable=zakázat kvóty index_inactive=nejsou aktivní index_enable=povolit kvóty index_title=Diskové kvóty index_fs=Svazek index_type=Typ index_mount=Pøipojeno z index_status=Status index_action=Akce index_return=index index_euser=Upravit u¾ivatelské kvóty: index_egroup=Upravit skupinové kvóty: index_nosupport=®ádný svazek nepodporuje kvóty lgroups_failed=Chyba pøi vypsání seznamu skupin lgroups_eallow=Nemáte oprávnìní upravovat kvóty na tomto svazku lgroups_title=Kvóty svazku lgroups_return=seznam svazkù lgroups_toomany=Pøíli¹ mnoho skupin má kvótu na $1 pro zobrazení na jedné stránce lgroups_quotas=V¹echny skupinové kvóty na svazku $1 lgroups_blocks=Blokù lgroups_files=Souborù lgroups_group=Skupina lgroups_used=Pou¾ito lgroups_soft=Doèasný limit lgroups_hard=Pevný limit lgroups_noquota=®ádné skupiny nemají kvóty na svazku $1 lgroups_equota=Upravit kvótu pro: lgroups_grace=Upravit èasový limit lgroups_check=Zkontrolovat kvóty sgroup_egroup=Nemáte oprávnìní upravovat kvóty pro tuto skupinu sgroup_efs=Nemáte oprávnìní upravovat kvóty na tomto svazku ssync_ecannot=Nemáte oprávnìní nastavit výchozí kvótu pro tento svazek suser_euser=Nemáte oprávnìní upravovat kvótu pro tohoto u¾ivatele suser_efs=Nemáte oprávnìní upravovat kvóty na tomto svazku suser_emaxblocks=Nemáte oprávnìní pøidìlit blokové limity více nì¾ $1 suser_emaxfiles=Nemáte oprávnìní pøidìlit souborové limity více ne¾ $1 ufilesys_title=U¾ivatelské kvóty ufilesys_return=seznam souborových svazkù ufilesys_ecannot=Nemáte oprávnìní upravovat kvóty pro '$1' ufilesys_all=V¹echny kvóty pro $1 ufilesys_blocks=Blokù ufilesys_files=Souborù ufilesys_fs=Svazek ufilesys_used=Pou¾ito ufilesys_soft=Doèasný limit ufilesys_hard=Pevný limit ufilesys_nouquota=U¾ivatel $1 nemá kvóty na ¾ádném souborovém svazku ufilesys_edit=Upravit kvótu na svazku: ufilesys_copy=Kopírovat kvóty ugracef_title=Èasový limit ugracef_return=seznam u¾ivatelù ugracef_ecannot=Nemáte oprávnìní upravovat èasový limit na tomto svazku ugracef_info=Ka¾dý svazek má èasový limit pro blokové a souborové kvóty. The èasový limit urèuje, jak dlouho mù¾e mít u¾ivatel pøekroèen doèasný blokový a souborový limit dokud nebude moci vytvoøit dal¹í nové soubory. ugracef_graces=U¾ivatelský èasový limit pro $1 ugracef_block=Pro blokovou kvótu ugracef_file=Pro souborovou kvótu ugracef_update=Aktualizovat ugraces_esave=Chyba pøi ukládání èasový limit ugraces_eedit=Nemáte oprávnìní upravovat èasový limit na tomto svazku ugraces_enumber='$1' není platné èíslo lusers_failed=Chyba pøi vypsání seznamu u¾ivatelù lusers_eallow=Nemáte oprávnìní upravovat kvóty na tomto svazku lusers_title=Kvóty svazku lusers_return=seznam svazkù lusers_toomany=Pøíli¹ mnoho u¾ivatelù má kvótu na $1 pro zobrazení na jedné stránce lusers_qoutas=V¹echny u¾ivatelské kvóty na svazku $1 lusers_blocks=Blokù lusers_files=Souborù lusers_user=U¾ivatel lusers_used=Pou¾ito lusers_soft=Doèasný limit lusers_hard=Pevný limit lusers_noquota=®ádný u¾ivatel nemá kvótu na $1 lusers_equota=Upravit kvótu pro: lusers_egrace=Upravit èasový limit lusers_check=Zkontrolovat kvóty lusers_info=Webmin mù¾e být nakonfigurován tak, ¾e automaticky nastaví kvótu na tomto svazku pokud je vytvoøen nový u¾ivatel. Toto nastavení bude fungovat pouze tehdy, je-li pou¾it modul Webminu $1 k pøidávání nových u¾ivatelù. lusers_useradmin=U¾ivatelé a skupiny lusers_newuser=Nové u¾ivatelské kvóty lusers_sblimit=Doèasný blokový limit lusers_hblimit=Pevný blokový limit lusers_sflimit=Doèasný souborový limit lusers_hflimit=Pevný souborový limit lusers_apply=Pou¾ít grace_seconds=sekund grace_minutes=minut grace_hours=hodin grace_days=dnù grace_weeks=týdnù grace_months=mìsícù log_activate_u=Povoleny u¾ivatelské kvóty na svazku $1 log_activate_g=Povoleny skupinové kvóty na svazku $1 log_activate_ug=Povoleny u¾ivatelské a skupinové kvóty na svazku $1 log_deactivate_u=Zakázány u¾ivatelské kvóty na svazku $1 log_deactivate_g=Zakázány skupinové kvóty na svazku $1 log_deactivate_ug=Zakázány u¾ivatelské a skupinové kvóty na svazku $1 log_save=Zmìnìna kvóta pro $1 na svazku $2 log_sync=Zmìnìny kvóty nového u¾ivatele na svazku $1 log_grace_u=Zmìnìn u¾ivatelský èasový limit na svazku $1 log_grace_g=Zmìnìn skupinový èasový limit na svazku $1 log_check=Zkontrolovány kvóty na svazku $1 log_copy_u=Zkopírovány kvóty u¾ivatele $1 log_copy_g=Zkopírovány kvóty skupiny $1 quota/lang/it0100644000567100000120000002674610265406645013177 0ustar jcameronwheelacl_email=Permetti la configurazione delle notifiche email? acl_fall=Tutti i filesystem acl_fsel=Selezionato.. acl_fss=I filesystem che questo utente può modificare acl_gall=Tutti i gruppi acl_gexcept=Tutti eccetto i gruppi acl_ggrace=Permetti la modifica dei tempi di dilazione per i gruppi? acl_gnone=Nessun gruppo acl_gonly=Solo i gruppi acl_gquota=I gruppi di cui l'utente può modificare le quote acl_maxblocks=Massima dimensione di quota garantita acl_maxfiles=Massimo numero di file garantiti acl_quotanew=Permetti la configurazione delle quote per i nuovi utenti? acl_quotaon=Permetti l'abilitazione e la disabilitazione delle quote? acl_ro=Permetti solo di vedere le quote e di non modificarle? acl_uall=Tutti gli utenti acl_uexcept=Tutti eccetto gli utenti acl_ugrace=Permetti di modificare i tempi di dilazione degli utenti? acl_ugroup=Utenti con gruppo primario acl_unlimited=Illimitato acl_uonly=Solo utenti acl_uquota=Questo utente può modificare le quote degli utenti acl_uuid=Utenti con UID nell'intervallo acl_vtotal=Permetti la visualizzazione dello spazio totale del disco? activate_eallow=Non sei abilitato ad attivare o disattivare le quote su questo filesystem activate_eoff=Impossibile disabilitare le quote activate_eon=Impossibile abilitare le quote cgform_all=Tutti i gruppi sul tuo sistema cgform_contain=Gruppi contenenti gli utenti cgform_copyto=Copia delle quote $1 su TUTTI i filesystem verso .. cgform_doit=Copia cgform_ecannot=Tu non puoi copiare le quote cgform_egroup=Non sei abilitato a copiare le quote di questo gruppo cgform_return=quota del gruppo cgform_select=Gruppi selezionati cgform_title=Copia le quote cgroup_eallowto=Non sei abilitato a copiare le quote verso '$1' cgroup_ecannot=Non puoi copiare le quote cgroup_efail=Impossibile copiare le quote cgroup_egallow=Non sei abilitato a copiare le quote per questo gruppo cgroup_enogroup=Nessun gruppo verso cui copiare check_done=... Completato. check_ecannot=Non puoi esaminare le quote su questo filesystem check_return=lista $1 check_rgroup=gruppo check_running=Il comando quotacheck si sta apprestando ad esaminare lo spazio ed il numero di file utilizzati su $1. Questo potrebbe richiedere molto tempo su un filesystem molto grande... check_ruser=utente check_title=Esamina quote cuform_all=Tutti gli utenti sul tuo sistema cuform_copyto=Copia delle quote per $1 su TUTTI i filesystem verso ... cuform_doit=Copia cuform_ecannot=Non puoi copiare le quote cuform_euallow=Non sei abilitato a copiare le quote per questo utente cuform_members=Membri dei gruppi selezionati cuform_return=quota dell'utente cuform_select=Utenti selezionati cuform_title=Copia le quote cuser_eallowto=Non sei abilitato a copiare le quote verso '$1' cuser_ecannot=Non puoi copiare le quote cuser_efail=Impossibile copiare le quote cuser_enouser=Nessun utente verso cui copiare cuser_euallow=Non sei abilitato a copiare le quote di questo utente egroup_bused=Blocchi usati egroup_eallowfs=Non sei abilitato a modificare le quote su questo filesystem egroup_eallowgr=Non sei abilitato a modificare le quote per '$1' egroup_freturn=lista dei filesystem egroup_fused=File usati egroup_greturn=lista dei gruppi egroup_hblimit=Limite Hard nlock egroup_hflimit=Limite Hard file egroup_hklimit=Limite Hard kilobyte egroup_kused=Kilobyte usati egroup_listall=Elenca tutte le quote egroup_quotas=Quota per $1 su $2 egroup_sblimit=Limite Soft nlock egroup_sflimit=Limite Soft file egroup_sklimit=Limite Soft kilobyte egroup_title=Modifica Quota egroup_update=Aggiorna email_ecannot=Non sei abilitato a modificare le opzioni email email_edomain=Dominio di posta mancante o non valido email_efrom=Indirizzo From: mancante o non valido email_einterval=Intervallo mancante o non valido email_epercent=Percentuale d'uso mancante o non valida email_err=Impossibile salvare le opzioni email email_msg=L'utilizzo del disco per l'utente $1 sul filesystem $2 ha raggiunto il $3% della quota permessa.\n\n$4 del spazio su disco è in uso, in eccesso rispetto al massimo per $5. email_subject=Quota di disco superata euser_bdisk=Blocchi disponibili su disco euser_bused=Blocchi usati euser_eallowfs=Non sei abilitato a modificare le quote su questo filesystem euser_eallowus=Non sei abilitato a modificare le quote per '$1' euser_fdisk=File disponibili su disco euser_freturn=lista dei filesystem euser_fused=File usati euser_hblimit=Limite Hard block euser_hflimit=Limite Hard file euser_hklimit=Limite Hard kilobyte euser_kdisk=Kilobyte disponibili su disco euser_kused=Kilobyte usati euser_listall=Elenca tutte le quote euser_quotas=Quota per $1 su $2 euser_sblimit=Limite Soft block euser_sdisk=Spazio disponibile su disco euser_sflimit=Limite Soft file euser_sklimit=Limite Soft kilobyte euser_title=Modifica Quota euser_update=Aggiorna euser_ureturn=lista utenti gfilesys_all=Tutte le quote per $1 gfilesys_blocks=Blocchi gfilesys_copy=Copia le Quote gfilesys_ecannot=Non puoi modificare le quote per '$1' gfilesys_edit=Modifica quota su: gfilesys_files=File gfilesys_fs=Filesystem gfilesys_hard=Limite Hard gfilesys_kbs=Kilobyte gfilesys_nogquota=Il gruppo $1 non ha quote su nessun filesystem gfilesys_return=lista filesystem gfilesys_soft=Limite Soft gfilesys_space=Spazio su disco gfilesys_title=Quote dei gruppi gfilesys_used=Usato ggracef_block=Per quota di blocchi ggracef_ecannot=Non puoi modificare i tempi di dilazione su questo filesystem ggracef_file=Per quota di file ggracef_graces=Tempi di dilazione di gruppo per $1 ggracef_info=Ogni filesystem ha un tempo di dilazione per quote di blocchi e di file. Il tempo di dilazione determina quanto a lungo un gruppo può rimanere oltre il limite Soft ed in cui non può essere creato nessun file. ggracef_return=lista gruppi ggracef_title=Tempi di dilazione ggracef_update=Aggiorna ggraces_eedit=Non puoi modificare i tempi di dilazione su questo filesystem ggraces_enumber='$1' non è un numero ggraces_esave=Impossibile salvare i tempi di dilazione grace_days=Giorni grace_hours=Ore grace_minutes=Minuti grace_months=Mesi grace_seconds=Secondi grace_weeks=Settimane index_action=Azione index_active=Attivo index_disable=Disattiva Quote index_egroup=Modifica le quote per gruppi: index_enable=Attiva Quote index_euser=Modifica le quote per utenti: index_fs=Filesystem index_inactive=Non attivo index_mount=Montato Da index_mountmod=Tu puoi attivare le quote per un filesystem nel modulo Disk and Network Filesystems index_mountonly=Puoi solo attivare al montaggio index_nosupport=Nessun filesystem può supportare le quote index_qboth=Quote per Utenti e Gruppi index_qgroup=Quote Gruppi index_quser=Quote Utenti index_return=indice index_status=Stato index_title=Quote Disco index_type=Tipo lgroups_blocks=Blocchi lgroups_check=Esamina Quote lgroups_eallow=Non sei abilitato a modificare le quote su questo filesystem lgroups_equota=Modifica Quota per: lgroups_failed=Impossibile elencare i gruppi lgroups_files=File lgroups_grace=Modifica Tempi di Dilazione lgroups_group=Gruppo lgroups_hard=Limite Hard lgroups_info=Webmin può essere configurato per fissare automaticamente le quote su questo filesystem quando è creato un nuovo gruppo Unix. Questo funziona solo quando viene utilizzato il modulo Webmin $1 per creare i gruppi. lgroups_kbs=Kilobyte lgroups_newgroup=Nuove quote gruppi lgroups_noquota=Nessun gruppo ha quote su $1 lgroups_quotas=Tutte le quote per gruppi su $1 lgroups_return=lista filesystem lgroups_soft=Limite Soft lgroups_space=Spazio su disco lgroups_title=Quote Filesystem lgroups_toomany=Troppi gruppi hanno quote su $1 per visualizzarli su un'unica pagina lgroups_used=Usato log_activate_g=Quote gruppo attivate su $1 log_activate_u=Quote utente attivate su $1 log_activate_ug=Quote utente e gruppo attivate su $1 log_check=Quote esaminate su $1 log_copy_g=Quote del gruppo $1 copiate log_copy_u=Quote dell'utente $1 copiate log_deactivate_g=Quote gruppo disabilitate su $1 log_deactivate_u=Quote utente disabilitate su $1 log_deactivate_ug=Quote utente e gruppo disabilitate su $1 log_email=Cambia le opzioni email su $1 log_grace_g=Tempi di dilazione gruppo cambiati su $1 log_grace_u=Tempi di dilazione utente cambiati su $1 log_gsync=Quote nuovi gruppi cambiate su $1 log_save=Quote cambiate per $1 su $2 log_sync=Quote nuovi utenti cambiate su $1 lusers_apply=Applica lusers_blocks=Blocchi lusers_bsize=Dimensione blocco quota : $1 byte lusers_check=Esamina Quote lusers_domain=Dominio per indirizzi utente lusers_eallow=Non sei abilitato a modificare le quote su questo filesystem lusers_egrace=Modifica Tempi di Dilazione lusers_email=Invia email agli utenti? lusers_emailheader=Invia email agli utenti che stanno raggiungendo la quota lusers_equota=Modifica Quota Per: lusers_failed=Impossibile elencare gli utenti lusers_files=File lusers_from=Indirizzo From: per email lusers_grace=Dilazione lusers_hard=Limite Hard lusers_hblimit=Limite Hard lusers_hflimit=Limite Hard file lusers_hours=ore lusers_info=Webmin può essere configurato per stabilire automaticamente le quote su questo filesystem quando è creato un nuovo utente Unix. Questo funzionerà solamente quando sarà usato il modulo Webmin $1 per creare nuovi utenti. lusers_interval=Intervallo tra messaggi lusers_kbs=Kilobyte lusers_ltype=Tipo di limite lusers_newuser=Quote nuovi utenti lusers_noquota=Nessun utente ha quote su $1 lusers_pc_hblocks=Hard % lusers_percent=Avvisa quando l'utilizzo raggiunge lusers_qoutas=Tutte le quote utente su $1 lusers_return=elenco filesystem lusers_sblimit=Limite Soft lusers_sflimit=Limite Soft file lusers_soft=Limite Soft lusers_space=Spazio su disco lusers_title=Quote Filesystem lusers_toomany=Troppi utenti hanno quote su $1 per essere visualizzati su una pagina lusers_used=Usati lusers_user=Utente lusers_useradmin=Utenti e Gruppi quota_unlimited=Illimitato sgroup_efs=Non sei abilitato a modificare le quote su questo filesystem sgroup_egroup=Non sei abilitato a modificare le quote per questo gruppo ssync_ecannot=Non puoi stabilire la quota predefinita per questo filesystem suser_efs=Non sei abilitato a modificare le quote su questo filesystem suser_emaxblocks=Tu non sei abilitato a garantire limite per blocchi al di sopra di $1 suser_emaxfiles=Non sei abilitato a garantire limiti per file al di sopra di $1 suser_euser=Non sei abilitato a modificare le quote per questo utente ufilesys_all=Tutte le quote per $1 ufilesys_blocks=Blocchi ufilesys_copy=Copia Quote ufilesys_ecannot=Non puoi modificare le quote per '$1' ufilesys_edit=Modifica quota su: ufilesys_files=File ufilesys_fs=Filesystem ufilesys_grace=Dilazione ufilesys_hard=Limite Hard ufilesys_kbs=Kilobyte ufilesys_nouquota=L'utente $1 non ha quote su nessun filesystem ufilesys_return=lista filesystem ufilesys_soft=Limite Soft ufilesys_space=Spazio su disco ufilesys_title=Quote utente ufilesys_used=Usato ugracef_block=Per quota blocchi ugracef_ecannot=Non puoi modificare i tempi di dilazione su questo filesystem ugracef_file=Per quota file ugracef_graces=Tempi di dilazione utente per $1 ugracef_info=Ogni filesystem ha un tempo di dilazione per quote blocchi e file. Il tempo di dilazione determina quanto a lungo un utente può oltrepassare il limite soft ed in cui non può creare più file. ugracef_return=lista utenti ugracef_title=Tempi di dilazione ugracef_update=Aggiorna ugraces_eedit=Non puoi modificare i tempi di dilazione su questo filesystem ugraces_enumber='$1' non è un numero ugraces_esave=Impossibile salvare i tempi di dilazione quota/save_group_quota.cgi0100755000567100000120000000244310254722640015747 0ustar jcameronwheel#!/usr/local/bin/perl # save_group_quota.cgi # Update the quota for some group require './quota-lib.pl'; &ReadParse(); $bsize = &block_size($in{'filesys'}); &can_edit_group($in{'group'}) || &error($text{'sgroup_egroup'}); $access{'ro'} && &error($text{'sgroup_egroup'}); &can_edit_filesys($in{'filesys'}) || &error($text{'sgroup_efs'}); if ($bsize) { $in{'sblocks'} = "a_parse("sblocks", $bsize); $in{'hblocks'} = "a_parse("hblocks", $bsize); } !$access{'maxblocks'} || !$in{'sblocks_def'} && $in{'sblocks'} <= $access{'maxblocks'} && !$in{'hblocks_def'} && $in{'hblocks'} <= $access{'maxblocks'} || &error(&text('suser_emaxblocks', $access{'maxblocks'})); !$access{'maxfiles'} || !$in{'sfiles_def'} && $in{'sfiles'} <= $access{'maxfiles'} && !$in{'hfiles_def'} && $in{'hfiles'} <= $access{'maxfiles'} || &error(&text('suser_emaxfiles', $access{'maxfiles'})); &edit_group_quota($in{'group'}, $in{'filesys'}, $in{'sblocks_def'} ? 0 : $in{'sblocks'}, $in{'hblocks_def'} ? 0 : $in{'hblocks'}, $in{'sfiles_def'} ? 0 : $in{'sfiles'}, $in{'hfiles_def'} ? 0 : $in{'hfiles'}); &webmin_log("save", "group", $in{'group'}, \%in); if ($in{'source'}) { &redirect("group_filesys.cgi?group=".&urlize($in{'group'})); } else { &redirect("list_groups.cgi?dir=".&urlize($in{'filesys'})); } quota/copy_group.cgi0100755000567100000120000000257610113561761014560 0ustar jcameronwheel#!/usr/local/bin/perl # copy_group.cgi # Copy some group's quota to a number of others require './quota-lib.pl'; &ReadParse(); $whatfailed = $text{'cgroup_efail'}; $access{'filesys'} eq "*" || &error($text{'cgroup_ecannot'}); &can_edit_group($in{'group'}) || &error($text{'cgroup_egallow'}); $access{'ro'} && &error($text{'cgroup_egallow'}); if ($in{'dest'} == 0) { # Copy to all groups setgrent(); while(@ginfo = getgrent()) { push(@copyto, $ginfo[0]); } endgrent() if ($gconfig{'os_type'} ne 'hpux'); } elsif ($in{'dest'} == 1) { # Copy to selected groups @copyto = split(/\s+/, $in{'groups'}); } elsif ($in{'dest'} == 2) { # Copy to groups containing users foreach $u (split(/\s+/, $in{'users'})) { @uinfo = getpwnam($u); @ginfo = getgrgid($uinfo[3]); push(@copyto, $ginfo[0]); $user{$u}++; } setgrent(); while(@ginfo = getgrent()) { foreach $m (split(/\s+/, $ginfo[3])) { if ($user{$m}) { push(@copyto, $ginfo[0]); last; } } } endgrent() if ($gconfig{'os_type'} ne 'hpux'); } @copyto = &unique(@copyto); @copyto = grep { $_ ne $in{'group'} } @copyto; if (!@copyto) { &error($text{'cgroup_enogroup'}); } foreach $c (@copyto) { &can_edit_group($c) || &error(&text('cgroup_eallowto', $c)); } # Do the copy ©_group_quota($in{'group'}, @copyto); &webmin_log("copy", "group", $in{'group'}, \%in); &redirect("group_filesys.cgi?group=$in{'group'}"); quota/save_sync.cgi0100755000567100000120000000143310254723617014361 0ustar jcameronwheel#!/usr/local/bin/perl # save_sync.cgi # Save default quotas for users require './quota-lib.pl'; &ReadParse(); $access{'default'} && &can_edit_filesys($in{'filesys'}) || &error($text{'ssync_ecannot'}); $bsize = &block_size($in{'filesys'}); &lock_file("$module_config_directory/config"); $v = join(' ', "a_parse("sblocks", $bsize), "a_parse("hblocks", $bsize), ($in{'sfiles_def'} ? 0 : $in{'sfiles'}), ($in{'hfiles_def'} ? 0 : $in{'hfiles'}) ); $k = "sync_$in{'filesys'}"; if ($v eq "0 0 0 0") { delete($config{$k}); } else { $config{$k} = $v; } &write_file("$module_config_directory/config", \%config); &unlock_file("$module_config_directory/config"); &webmin_log("sync", "user", $in{'filesys'}, \%in); &redirect("list_users.cgi?dir=".&urlize($in{'filesys'})); quota/list_users.cgi0100755000567100000120000001701010267561312014555 0ustar jcameronwheel#!/usr/local/bin/perl # list_users.cgi # Lists all the users with quotas on some filesystem require './quota-lib.pl'; &ReadParse(); $f = $in{'dir'}; $whatfailed = $text{'lusers_failed'}; &can_edit_filesys($f) || &error($text{'lusers_eallow'}); $form = 0; # List quotas &ui_print_header(undef, $text{'lusers_title'}, "", "list_users"); $n = &filesystem_users($f); $bsize = &block_size($f); $fsbsize = &block_size($f, 1); if ($n > $config{'display_max'} && !$access{'ro'}) { print "", &text('lusers_toomany', $f), "
\n"; } elsif ($n) { # no threshold (default) if <= 0% and >=101% my $threshold_pc = $config{'threshold_pc'} || 101; $threshold_pc = 101 if $threshold_pc < 1 or $threshold_pc > 101; print &ui_subheading(&text('lusers_qoutas', $f)); &show_buttons(); print "\n"; print "\n"; ($binfo, $finfo) = &filesystem_info($f, \%user, $n, $fsbsize); $cols1 = 3 + ($threshold_pc != 101 ? 1 : 0) + ($config{'show_grace'} ? 1 : 0); $cols2 = 3 + ($config{'show_grace'} ? 1 : 0); print "\n"; print "\n"; if ($threshold_pc != 101) { print ""; } print "\n"; print "\n"; print "\n" if ($config{'show_grace'}); print "\n"; print "\n"; print "\n" if ($config{'show_grace'}); print "\n"; @order = (0 .. $n-1); if ($config{'sort_mode'} == 0) { @order = sort { $user{$b,'ublocks'} <=> $user{$a,'ublocks'} } @order; } elsif ($config{'sort_mode'} == 2) { @order = sort { $user{$a,'user'} cmp $user{$b,'user'} } @order; } foreach $i (@order) { next if (!&can_edit_user($user{$i,'user'})); print "\n"; if ($access{'ro'}) { print "\n"; } else { print "\n"; } my $pc_hblocks=0; if($user{$i,'hblocks'}) { $pc_hblocks = 100 * $user{$i,'ublocks'}; $pc_hblocks/= $user{$i,'hblocks'}; $pc_hblocks = int($pc_hblocks); } if ($threshold_pc != 101) { if ($pc_hblocks > $threshold_pc) { print "\n"; } else { print "\n"; } } local $ublocks = $user{$i,'ublocks'}; if ($bsize) { $ublocks = &nice_size($ublocks*$bsize); } if ($user{$i,'hblocks'} && $user{$i,'ublocks'} > $user{$i,'hblocks'}) { print "\n"; } elsif ($user{$i,'sblocks'} && $user{$i,'ublocks'} > $user{$i,'sblocks'}) { print "\n"; } else { print "\n"; } &print_limit($user{$i,'sblocks'}, 0); &print_limit($user{$i,'hblocks'}, 0); &print_grace($user{$i,'gblocks'}) if ($config{'show_grace'}); print "\n"; &print_limit($user{$i,'sfiles'}, 1); &print_limit($user{$i,'hfiles'}, 1); &print_grace($user{$i,'gfiles'}) if ($config{'show_grace'}); print "\n"; } print "

\n"; if ($access{'diskspace'}) { print "",$bsize ? $text{'lusers_space'} : $text{'lusers_blocks'}, " ($binfo)\n"; } print " \n"; if ($access{'diskspace'}) { print "$text{'lusers_files'} ($finfo)\n" } print "
$text{'lusers_user'}$text{'lusers_pc_hblocks'}$text{'lusers_used'} $text{'lusers_soft'}$text{'lusers_hard'}$text{'lusers_grace'}$text{'lusers_used'} $text{'lusers_soft'}$text{'lusers_hard'}$text{'lusers_grace'}
$user{$i,'user'}$user{$i,'user'}", "", &html_escape($pc_hblocks),"%",&html_escape($pc_hblocks),"%", &html_escape($ublocks),"", &html_escape($ublocks),"",&html_escape($ublocks),"$user{$i,'ufiles'}
\n"; } else { print "",&text('lusers_noquota', $f),"
\n"; } &show_buttons(); # Show form for setting default quotas for new users if ($access{'default'}) { print "


\n"; print &text('lusers_info', $text{'lusers_useradmin'}); print "

\n"; @dquot = split(/\s+/, $config{"sync_$f"}); print "

\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$text{'lusers_newuser'}
\n"; print "
$text{'lusers_sblimit'} \n"; "a_input("sblocks", $dquot[0], $bsize); print "
$text{'lusers_hblimit'} \n"; "a_input("hblocks", $dquot[1], $bsize); print "
\n"; print "
$text{'lusers_sflimit'} \n"; "a_input("sfiles", $dquot[2]); print "
$text{'lusers_hflimit'} \n"; "a_input("hfiles", $dquot[3]); print "
\n"; print "
\n"; } # Show form for email notifications if ($access{'email'} && &foreign_check("cron") && &foreign_check("mailboxes")) { print "
\n"; print &ui_form_start("save_email.cgi"); print &ui_hidden("filesys", $f); print &ui_table_start($text{'lusers_emailheader'}, "width=100%", 4); print &ui_table_row($text{'lusers_email'}, &ui_radio("email", $config{"email_$f"} ? 1 : 0, [ [ 1, $text{'yes'} ], [ 0, $text{'no'} ] ])); print &ui_table_row($text{'lusers_interval'}, &ui_textbox("interval", $config{"email_interval_$f"}, 5). " ".$text{'lusers_hours'}); print &ui_table_row($text{'lusers_ltype'}, &ui_radio("type", $config{"email_type_$f"} ? 1 : 0, [ [ 1, $text{'lusers_hard'} ], [ 0, $text{'lusers_soft'} ] ])); print &ui_table_row($text{'lusers_percent'}, &ui_textbox("percent", $config{"email_percent_$f"}, 5). " %"); print &ui_table_row($text{'lusers_domain'}, &ui_textbox("domain", $config{"email_domain_$f"} || &get_system_hostname(), 20)."
". &ui_checkbox("virtualmin", 1, $text{'luser_virtualmin'}, $config{"email_virtualmin_$f"})); print &ui_table_row($text{'lusers_from'}, &ui_textbox("from", $config{"email_from_$f"} || 'webmin@'.&get_system_hostname(), 20)); print &ui_table_end(); print &ui_form_end([ [ 'save', $text{'lusers_apply'} ] ]); } &ui_print_footer("", $text{'lusers_return'}); # show_buttons(form) sub show_buttons { print "\n"; if (!$access{'ro'}) { print "\n"; print "\n"; print "\n"; print "\n"; $form++; } else { print "\n"; } if ($access{'ugrace'}) { print "\n"; print "\n"; print "\n"; $form++; } else { print "\n"; } print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print " ", &user_chooser_button("user", 0, $form),"
\n"; print "\n"; print "
\n"; print "
\n"; $form++; } quota/activate.cgi0100755000567100000120000000117010113561761014157 0ustar jcameronwheel#!/usr/local/bin/perl # activate.cgi # Turn quotas on or off for some filesystem require './quota-lib.pl'; &ReadParse(); &can_edit_filesys($in{'dir'}) && $access{'enable'} || &error($text{'activate_eallow'}); if ($in{'active'} == 0) { # Turn on quotas $whatfailed = $text{'activate_eon'}; if ($error = "aon($in{'dir'}, $in{'mode'})) { &error($error); } &webmin_log("activate", undef, $in{'dir'}, \%in); } else { # Turn off quotas $whatfailed = $text{'activate_eoff'}; if ($error = "aoff($in{'dir'}, $in{'mode'})) { &error($error); } &webmin_log("deactivate", undef, $in{'dir'}, \%in); } &redirect(""); quota/hpux-lib.pl0100644000567100000120000001441110256142074013757 0ustar jcameronwheel# hpux-lib.pl # Quota functions for HPUX # quotas_init() sub quotas_init { return undef; } # quotas_supported() # Returns 1 for user quotas, 2 for group quotas or 3 for both sub quotas_supported { return 1; } # free_space(filesystem) # Returns an array containing btotal, bfree, ftotal, ffree sub free_space { local($out); $out = `df -t $_[0]`; $out =~ /(\d+) blocks\s+(\d+) files\n.*\s+(\d+) blocks\s+(\d+) files/; return ($3, $1, $4, $2); } # quota_can(&mnttab, &fstab) # Can this filesystem type support quotas? # 0 = No quota support (or not turned on in /etc/fstab) # 1 = User quotas only # 2 = Group quotas only # 3 = User and group quotas sub quota_can { return $_[0]->[2] eq "hfs" || $_[0]->[2] eq "vxfs" ? 1 : 0; } # quota_now(&mnttab, &fstab) # Are quotas currently active? # 0 = Not active # 1 = User quotas active # 2 = Group quotas active # 3 = Both active sub quota_now { return $_[0]->[3] =~ /,quota/ || $_[0]->[3] =~ /^quota/ ? 1 : 0; } # filesystem_users(filesystem) # Fills the array %user with information about all users with quotas # on this filesystem. This may not be all users on the system.. sub filesystem_users { local($rep, @rep, $n, $newfmt); $rep = `$config{'user_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } @rep = split(/\n/, $rep); @rep = @rep[3..$#rep]; `uname -r` =~ /(\d+)\.(\d+)/; if ($1 > 10 || $1 == 10 && $2 >= 20) { $newfmt = 1; } for($n=0; $n<@rep; $n++) { if ($newfmt && $rep[$n] =~ /(\S+)\s+..(.{7})(.{7})(.{7}).{13}(.{7})(.{7})(.{7})/ || !$newfmt && $rep[$n] =~ /(\S+)\s+..(\d+)\s+(\d+)\s+(\d+)\s+.{11}(\d+)\s+(\d+)\s+(\d+)/) { $user{$n,'user'} = $1; $user{$n,'ublocks'} = int($2); $user{$n,'sblocks'} = int($3); $user{$n,'hblocks'} = int($4); $user{$n,'ufiles'} = int($5); $user{$n,'sfiles'} = int($6); $user{$n,'hfiles'} = int($7); $user{$n,'user'} =~ s/^#//g; } } return $n; } # edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_quota_file { local($rv, $line); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^fs (\S+) blocks \(soft = (\d+), hard = (\d+)\) inodes \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) { # found line to change $line = "fs $_[1] blocks (soft = $_[2], hard = $_[3]) inodes (soft = $_[4], hard = $_[5])"; } $rv .= "$line\n"; } return $rv; } # quotaon(filesystem, mode) # Activate quotas and create quota file for some filesystem. The mode can # be 1 for user only, 2 for group only or 3 for user and group sub quotaon { return if (&is_readonly_mode()); local($qf, $out); $qf = "$_[0]/quotas"; if (!(-r $qf)) { &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, $qf); } $out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # quotaoff(filesystem, mode) # Turn off quotas for some filesystem sub quotaoff { return if (&is_readonly_mode()); local($out); $out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # quotacheck(filesystem, mode) # Runs quotacheck on some filesystem sub quotacheck { $out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # copy_user_quota(user, [user]+) # Copy the quotas for some user to many others sub copy_user_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'user_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # user_filesystems(user) # Fills the array %filesys with details of all filesystems some user has # quotas on sub user_filesystems { local($n, $_); open(QUOTA, "$config{'user_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line! $filesys{$n,'filesys'} = $1; local $nl = ; if ($nl =~ /^\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $nl =~ /^.{13}(.{7})(.{7})(.{7}).{12}(.{7})(.{7})(.{7})/) { $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'ufiles'} = int($4); $filesys{$n,'sfiles'} = int($5); $filesys{$n,'hfiles'} = int($6); $n++; } } elsif (/^(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || /^(.{13})(.{7})(.{7})(.{7}).{12}(.{7})(.{7})(.{7})/) { $filesys{$n,'filesys'} = $1; $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'filesys'} =~ s/\s+$//g; $n++; } } close(QUOTA); return $n; } # get_user_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day, 4=week, 5=month sub get_user_grace { local(@rv); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'user_grace_command'} |"); while() { if (/^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[0]) { if ($2 == 0) { push(@rv, 0, 0); } else { push(@rv, $2, $name_to_unit{$3}); } if ($4 == 0) { push(@rv, 0, 0); } else { push(@rv, $4, $name_to_unit{$5}); } } } close(GRACE); return @rv; } # default_grace() # Returns 0 if grace time can be 0, 1 if zero grace means default sub default_grace { return 1; } # edit_grace_file(data, filesystem, btime, bunits, ftime, funits) sub edit_grace_file { local($rv, $line); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[1]) { # replace this line $line = "fs $_[1] blocks time limit = $_[2] $unit_to_name{$_[3]}, files time limit = $_[4] $unit_to_name{$_[5]}"; } $rv .= "$line\n"; } return $rv; } # grace_units() # Returns an array of possible units for grace periods sub grace_units { return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'}, $text{'grace_days'}, $text{'grace_weeks'}, $text{'grace_months'}); } %name_to_unit = ( "sec", 0, "secs", 0, "min", 1, "mins", 1, "hour", 2, "hours", 2, "day", 3, "days", 3, "week", 4, "weeks", 4, "month", 5, "months", 5 ); foreach $k (keys %name_to_unit) { $unit_to_name{$name_to_unit{$k}} = $k; } 1; quota/config.info.fr0100644000567100000120000000315210242226205014414 0ustar jcameronwheelline1=Options configurables,11 display_max=Nombre maximal d'utilisateurs ou de groupes à afficher,0 threshold_pc=Pourcentage seuil pour mettre en évidence les quotas utilisateur,3,Ne pas afficher sort_mode=Trier les utilisateurs et les groupes par,1,0-Blocs utilisés,2-Nom,1-Ordre dans repquota block_mode=Afficher les quotas en,1,1-Kilo-octets (si possible),0-Blocs line2=Configuration du système,11 show_grace=Afficher les délais de grâce si disponibles ?,1,1-Oui,0-Non user_repquota_command=Commande pour répertorier les utilisateurs sur un système de fichiers,0 group_repquota_command=Commande pour répertorier les groupes sur un système de fichiers,0 user_edquota_command=Commande pour modifier le quota d'un utilisateur,0 group_edquota_command=Commande pour modifier le quota d'un groupe,0 user_quota_command=Commande pour vérifier le quota d'un utilisateur,0 group_quota_command=Commande pour vérifier le quota d'un groupe,0 user_copy_command=Commande pour copier le quota d'un utilisateur,0 group_copy_command=Commande pour copier le quota d'un groupe,0 user_quotaon_command=Commande pour activer les quotas utilisateur,0 group_quotaon_command=Commande pour activer les quotas de groupes,0 user_quotaoff_command=Commande pour arrêter les quotas utilisateur,0 group_quotaoff_command=Commande pour arrêter les quotas de groupes,0 quotacheck_command=Commande pour vérifier les quotas,0 user_grace_command=Commande pour modifier les délais de grâce de l'utilisateur,0 group_grace_command=Commande pour modifier les délais de grâce de groupe,0 quota/config-unixware0100644000567100000120000000072210256466551014733 0ustar jcameronwheeldisplay_max=100 user_quotaoff_command=quotaoff user_quotaon_command=quotaon user_repquota_command=repquota -v user_grace_command=edquota -t user_quota_command=quota -v quotacheck_command=quotacheck user_edquota_command=edquota user_copy_command=edquota -p sort_mode=0 block_mode=1 show_grace=0 email_msg=Disk usage for user ${USER} on filesystem ${FS} has reached ${PERCENT}% of the allowed quota. ${USED} of disk space is being used, out of a maximum of ${QUOTA}. quota/index.cgi0100755000567100000120000000672610176547112013505 0ustar jcameronwheel#!/usr/local/bin/perl # index.cgi # Display a list of all local filesystems, and allow editing of quotas # on those which have quotas turned on. The actual turning on of quotas must # be done in the mount module first. require './quota-lib.pl'; &ui_print_header(undef, $text{'index_title'}, "", "intro", 1, 1, 0, &help_search_link("quota", "man", "howto")); $err = "as_init(); if ($err) { print "

$err

\n"; &ui_print_footer("/", $text{'index_return'}); exit; } @list = &list_filesystems(); if (@list) { print "\n"; print "\n"; print "\n"; if ($access{'enable'}) { print "\n"; } else { print "\n"; } foreach $f (@list) { $qc = $f->[4]; $qc = $qc&1 if ($access{'gmode'} == 3); next if (!$qc); next if (!&can_edit_filesys($f->[0])); $qn = $f->[5]; if ($qc == 1) { $msg = $text{'index_quser'}; } elsif ($qc == 2) { $msg = $text{'index_qgroup'}; } elsif ($qc == 3) { $msg = $text{'index_qboth'}; } $canactivate = 1; if ($qn >= 4) { $chg = $text{'index_mountonly'}; $qn -= 4; $canactivate = 0; if ($qn) { $msg .= " $text{'index_active'}"; } else { $msg .= " $text{'index_inactive'}"; } } elsif ($qn) { $msg .= " $text{'index_active'}"; $chg = $text{'index_disable'}; } else { $msg .= " $text{'index_inactive'}"; $chg = $text{'index_enable'}; } if ($qn%2 == 1) { $useractive++; } if ($qn > 1) { $groupactive++; } print "\n"; print "\n"; print "\n"; print "\n"; if ($access{'enable'}) { if ($canactivate) { print "\n"; } else { print "\n"; } } print "\n"; } print "
$text{'index_fs'} $text{'index_type'}$text{'index_mount'} $text{'index_status'}$text{'index_action'}
\n"; $dir = $f->[0]; if (!$qn) { print $dir; } elsif ($qc == 1) { print "$dir"; } elsif ($qc == 2) { print "$dir"; } elsif ($qc == 3) { print "$dir (users)
"; print "$dir (groups)"; } print "
",&foreign_call("mount", "fstype_name", $f->[2]),"",&foreign_call("mount", "device_name", $f->[1]),"$msg$chg$chg
\n"; } else { print "$text{'index_nosupport'}
\n"; if (&foreign_available("mount")) { print &text('index_mountmod', "../mount/"),"

\n"; } } print "\n"; if ($useractive) { print "\n"; print "\n"; } else { print "\n"; } if ($groupactive) { print "\n"; print "\n"; } else { print "\n"; } print "
\n"; print " ", &user_chooser_button("user", 0),"
\n"; print "\n"; print " ", &group_chooser_button("group", 0, $useractive ? 1 : 0), "
\n"; &ui_print_footer("/", $text{'index_return'}); quota/check_quotas.cgi0100755000567100000120000000131410113562002015015 0ustar jcameronwheel#!/usr/local/bin/perl # check_quotas.cgi # Runs quotacheck to update block and file counts on some filesystem require './quota-lib.pl'; &ReadParse(); &can_edit_filesys($in{'filesys'}) || &error($text{'check_ecannot'}); &ui_print_unbuffered_header(undef, $text{'check_title'}, ""); print &text('check_running', $in{'filesys'}), "

\n"; "acheck($in{'filesys'}, $in{'source'} eq 'user' ? 1 : 2); &webmin_log("check", undef, $in{'filesys'}); print "$text{'check_done'}

\n"; if ($in{'source'} eq "user") { $retlist_name = $text{'check_ruser'}; } else { $retlist_name = $text{'check_rgroup'}; } &ui_print_footer("list_$in{'source'}s.cgi?dir=".&urlize($in{'filesys'}), &text('check_return', $retlist_name)); quota/config.info.ru_SU0100644000567100000120000000215210067401527015050 0ustar jcameronwheelline1=îÁÓÔÒÁÉ×ÁÅÍÙÅ ÐÁÒÁÍÅÔÒÙ,11 display_max=íÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÐÏËÁÚÙ×ÁÅÍÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÉÌÉ ÇÒÕÐÐ,0 sort_mode=õÐÏÒÑÄÏÞÉ×ÁÔØ ÐÏÌØÚÏ×ÁÔÅÌÅÊ É ÇÒÕÐÐÙ ÐÏ,1,0-éÓÐÏÌØÚÏ×ÁÎÎÙÍ ÂÌÏËÁÍ,2-éÍÅÎÉ,1-ðÏÒÑÄÏË ÉÚ repquota line2=óÉÓÔÅÍÎÙÅ ÐÁÒÁÍÅÔÒÙ,11 user_repquota_command=ëÏÍÁÎÄÁ ×Ù×ÏÄÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÄÌÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ,0 group_repquota_command=ëÏÍÁÎÄÁ ×Ù×ÏÄÁ ÇÒÕÐÐ ÄÌÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ,0 user_edquota_command=ëÏÍÁÎÄÁ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÑ,0 group_edquota_command=ëÏÍÁÎÄÁ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔÙ ÇÒÕÐÐÙ,0 user_quota_command=ëÏÍÁÎÄÁ ÐÒÏ×ÅÒËÉ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÑ,0 group_quota_command=ëÏÍÁÎÄÁ ÐÒÏ×ÅÒËÉ Ë×ÏÔÙ ÇÒÕÐÐÙ,0 user_copy_command=ëÏÍÁÎÄÁ ËÏÐÉÒÏ×ÁÎÉÑ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÑ,0 group_copy_command=ëÏÍÁÎÄÁ ËÏÐÉÒÏ×ÁÎÉÑ Ë×ÏÔÙ ÇÒÕÐÐÙ,0 user_quotaon_command=ëÏÍÁÎÄÁ ×ËÌÀÞÅÎÉÑ Ë×ÏÔ ÐÏÌØÚÏ×ÁÔÅÌÑ,0 group_quotaon_command=ëÏÍÁÎÄÁ ×ËÌÀÞÅÎÉÑ Ë×ÏÔ ÇÒÕÐÐÙ,0 user_quotaoff_command=ëÏÍÁÎÄÁ ×ÙËÌÀÞÅÎÉÑ Ë×ÏÔ ÐÏÌØÚÏ×ÁÔÅÌÑ,0 group_quotaoff_command=ëÏÍÁÎÄÁ ×ÙËÌÀÞÅÎÉÑ Ë×ÏÔ ÇÒÕÐÐÙ,0 quotacheck_command=ëÏÍÁÎÄÁ ÐÒÏ×ÅÒËÉ Ë×ÏÔ,0 user_grace_command=ëÏÍÁÎÄÁ ÉÚÍÅÎÅÎÉÑ ×ÒÅÍÅÎÉ ÏÔÓÒÏÞËÉ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ,0 group_grace_command=ëÏÍÁÎÄÁ ÉÚÍÅÎÅÎÉÑ ×ÒÅÍÅÎÉ ÏÔÓÒÏÞËÉ ÄÌÑ ÇÒÕÐÐÙ,0 quota/user_grace_save.cgi0100755000567100000120000000142510113561761015517 0ustar jcameronwheel#!/usr/local/bin/perl # user_grace_save.cgi # Update the grace times for users on some filesystem require './quota-lib.pl'; &ReadParse(); $whatfailed = $text{'ugraces_esave'}; $access{'ugrace'} && &can_edit_filesys($in{'filesys'}) || &error($text{'ugraces_eedit'}); if ($in{'bdef'}) { push(@args, 0, 0); } elsif ($in{'btime'} !~ /^[0-9\.]+$/) { &error(&text('ugraces_enumber', $in{'btime'})); } else { push(@args, ($in{'btime'}, $in{'bunits'})); } if ($in{'fdef'}) { push(@args, 0, 0); } elsif ($in{'ftime'} !~ /^[0-9\.]+$/) { &error(&text('ugraces_enumber', $in{'ftime'})); } else { push(@args, ($in{'ftime'}, $in{'funits'})); } &edit_user_grace($in{'filesys'}, @args); &webmin_log("grace", "user", $in{'filesys'}, \%in); &redirect("list_users.cgi?dir=".&urlize($in{'filesys'})); quota/config.info.zh_CN0100644000567100000120000000135607224543153015024 0ustar jcameronwheeldisplay_max=×î¶àÏÔʾµÄÓû§ºÍ×éÊýÁ¿,0 user_repquota_command=ÔÚÒ»¸öÎļþϵͳÉÏÁбíÏÔʾÓû§µÄÃüÁî,0 group_repquota_command=ÔÚÒ»¸öÎļþϵͳÉÏÁбíÏÔʾ×éµÄÃüÁî,0 user_edquota_command=±à¼­Óû§´ÅÅÌÅä¶îµÄÃüÁî,0 group_edquota_command=±à¼­Óû§×é´ÅÅÌÅä¶îµÄÃüÁî,0 user_quota_command=¼ì²éÓû§´ÅÅÌÅä¶îµÄÃüÁî,0 group_quota_command=¼ì²éÓû§×é´ÅÅÌÅä¶îµÄÃüÁî,0 user_copy_command=¿½±´Óû§´ÅÅÌÅä¶îµÄÃüÁî,0 group_copy_command=¿½±´Óû§×é´ÅÅÌÅä¶îµÄÃüÁî,0 user_quotaon_command=´ò¿ªÓû§´ÅÅÌÅä¶îµÄÃüÁî,0 group_quotaon_command=´ò¿ªÓû§×é´ÅÅÌÅä¶îµÄÃüÁî,0 user_quotaoff_command=¹Ø±ÕÓû§ÅÌÅä¶îµÄÃüÁî,0 group_quotaoff_command=¹Ø±ÕÓû§×é´ÅÅÌÅä¶îµÄÃüÁî,0 quotacheck_command=¼ì²é´ÅÅÌÅä¶îµÄÃüÁî,0 user_grace_command=±à¼­Óû§Ê¹ÓÃʱ¼äµÄÃüÁî,0 group_grace_command=±à¼­Óû§×éʹÓÃʱ¼äµÄÃüÁî,0 quota/CHANGELOG0100664000567100000120000000166110256467376013130 0ustar jcameronwheel---- Changes since 1.140 ---- Fixed a bug that prevented the editing of quotas on loopback filesystems under Linux. ---- Changes since 1.150 ---- Quotas and usage are now displayed in bytes, kB, MB or GB where appropriate, instead of always kilobytes. The quotaon -p command is now used to determine if quotas are active or not for some filesystem, which is faster and more reliable. ---- Changes since 1.160 ---- Email notification can be set up for users that are close to or have reached their soft or hard limit, on a per-filesystem basis. ---- Changes since 1.170 ---- Added Module Config option to display quota percentages, and mark those that are over some limit (thanks to Christophe Chisogne). ---- Changes since 1.210 ---- When editing user and group quotas, you can now select the units they are in, rather than always entering in kB. The email message sent to users who are over quota can now be modified on the Module Config page. quota/defaultacl0100644000567100000120000000014310143270545013716 0ustar jcameronwheelnoconfig=0 filesys=* umode=0 gmode=0 enable=1 default=1 ugrace=1 ggrace=1 diskspace=1 ro=0 email=1 quota/images/0040755000567100000120000000000007635467610013156 5ustar jcameronwheelquota/images/icon.gif0100644000567100000120000000051607060351555014564 0ustar jcameronwheelGIF89a00¡ÿÿÿ™™™ÌÌÌfff!ù,00þ„©Ëí£œ´ª€³ÞØ..„âHƒwdäÊ ØpnÖÖ£ Ów×öï‚ |5^‚d½†H[àâäh„Mà! ·ÜaRt=t¹Ù S— Êh¥×Tm×ñ´7XgŽ®|ñŽ·¢ÒÇ2hˆ·aاâÆ‘Èè3÷h••Wté÷à FÉHˆõù×*¸‡Õ÷%šJ©Âš¢w {s6ëRZ[²(¹1j[%µ9LäùZ‚ìG»Æœ›géx+çÜy-ë]bÈÝø½*Þ­J~û<žžþ{.ýž^<¯-׎ž/Øí®Ÿ¹{ÌèÕQ&¯ Àx_”óS@jþ5üò°È‡ ‰ÓôõÀÖ±œE‡@9“aAJ0 ("di 3¦Ì™4k;quota/images/smallicon.gif0100664000567100000120000000035007777121251015616 0ustar jcameronwheelGIF87aã™™™sssæææÌÌÌÀÀÀ¦¦¦ššš€€€fffÿÿÿ³³³,PÉI«½sÍ7žD±,E·-‚FXÃbšGr”9L.'Ž#"äÂM(¾í%ðH¢0 V Þ’# !ž‹«$·{¾RrA¬¸¾NˆÍ—ËÖ¾º„a´¯oÊ[3] =~ /userquota/ ? 1 : 0) + ($_[1]->[3] =~ /groupquota/ ? 2 : 0); } # quota_now(&mnttab, &fstab) # Are quotas currently active? # 0 = Not active # 1 = User quotas active # 2 = Group quotas active # 3 = Both active sub quota_now { return $_[0]->[3] =~ /quota/ ? 3 : 0; } # quotaon(filesystem, mode) # Activate quotas and create quota files for some filesystem. The mode can # be 1 for user only, 2 for group only or 3 for user and group sub quotaon { return if (&is_readonly_mode()); local($out, $qf, @qfile, $flags); if ($_[1]%2 == 1) { # turn on user quotas $qf = "$_[0]/quota.user"; if (!(-r $qf)) { &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, $qf); &system_logged("$config{'quotacheck_command'} $_[0]"); } $out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { # turn on group quotas $qf = "$_[0]/quota.group"; if (!(-r $qf)) { &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, $qf); &system_logged("$config{'quotacheck_command'} $_[0]"); } $out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } # quotaoff(filesystem, mode) # Turn off quotas for some filesystem sub quotaoff { return if (&is_readonly_mode()); local($out); if ($_[1]%2 == 1) { $out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { $out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } # user_filesystems(user) # Fills the array %filesys with details of all filesystem some user has # quotas on sub user_filesystems { local($n, $_, %mtab); open(QUOTA, "$config{'user_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|\s+Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line $filesys{$n,'filesys'} = $1; =~/^.{15}(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/; $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'ufiles'} = int($4); $filesys{$n,'sfiles'} = int($5); $filesys{$n,'hfiles'} = int($6); $n++; } elsif (/^(.{15})(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/) { $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'filesys'} = $1; $filesys{$n,'filesys'} =~ s/^\s+//g; $n++; } } close(QUOTA); return $n; } # group_filesystems(group) # Fills the array %filesys with details of all filesystem some group has # quotas on sub group_filesystems { local($n, $_, %mtab); open(QUOTA, "$config{'group_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|\s+Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line $filesys{$n,'filesys'} = $1; =~/^.{15}(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/; $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'ufiles'} = int($4); $filesys{$n,'sfiles'} = int($5); $filesys{$n,'hfiles'} = int($6); $n++; } elsif (/^(.{15})(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/) { $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'filesys'} = $1; $filesys{$n,'filesys'} =~ s/^\s+//g; $n++; } } close(QUOTA); return $n; } # filesystem_users(filesystem) # Fills the array %user with information about all users with quotas # on this filesystem. This may not be all users on the system.. sub filesystem_users { local($rep, @rep, $n, $what); $rep = `$config{'user_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } @rep = split(/\n/, $rep); @rep = grep { !/^root\s/ } @rep[3..$#rep]; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) { $user{$n,'user'} = $1; $user{$n,'ublocks'} = int($2); $user{$n,'sblocks'} = int($3); $user{$n,'hblocks'} = int($4); $user{$n,'ufiles'} = int($5); $user{$n,'sfiles'} = int($6); $user{$n,'hfiles'} = int($7); } } return $n; } # filesystem_groups(filesystem) # Fills the array %group with information about all groups with quotas # on this filesystem. This may not be all groups on the system.. sub filesystem_groups { local($rep, @rep, $n, $what); $rep = `$config{'group_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } @rep = split(/\n/, $rep); @rep = @rep[3..$#rep]; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) { $group{$n,'group'} = $1; $group{$n,'ublocks'} = int($2); $group{$n,'sblocks'} = int($3); $group{$n,'hblocks'} = int($4); $group{$n,'ufiles'} = int($5); $group{$n,'sfiles'} = int($6); $group{$n,'hfiles'} = int($7); } } return $n; } # edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_quota_file { local($rv, $line, %mtab, @m); @line = split(/\n/, $_[0]); for($i=0; $i<@line; $i++) { if ($line[$i] =~ /^(\S+): (blocks|kbytes) in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) { # found lines to change $rv .= "$1: $2 in use: $3, limits (soft = $_[2], hard = $_[3])\n"; $line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/; $rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n"; } else { $rv .= "$line[$i]\n"; } } return $rv; } # quotacheck(filesystem, mode) # Runs quotacheck on some filesystem sub quotacheck { $out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # copy_user_quota(user, [user]+) # Copy the quotas for some user to many others sub copy_user_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'user_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # copy_group_quota(group, [group]+) # Copy the quotas for some group to many others sub copy_group_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'group_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # default_grace() # Returns 0 if grace time can be 0, 1 if zero grace means default sub default_grace { return 0; } # get_user_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_user_grace { local(@rv, %mtab, @m); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'user_grace_command'} $_[0] |"); while() { if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } } close(GRACE); return @rv; } # get_group_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_group_grace { local(@rv, %mtab, @m); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'group_grace_command'} $_[0] |"); while() { if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } } close(GRACE); return @rv; } # edit_grace_file(data, filesystem, btime, bunits, ftime, funits) sub edit_grace_file { local($rv, $line, @m, %mtab); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[1]) { # replace this line $line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}"; } $rv .= "$line\n"; } return $rv; } # grace_units() # Returns an array of possible units for grace periods sub grace_units { return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'}, $text{'grace_days'}); } # fs_block_size(dir, device, filesystem) # Returns the size of blocks on some filesystem, or undef if unknown. # Always 1024, because the ENV setting above forces this. sub fs_block_size { return 1024; } %name_to_unit = ( "second", 0, "seconds", 0, "minute", 1, "minutes", 1, "hour", 2, "hours", 2, "day", 3, "days", 3, ); foreach $k (keys %name_to_unit) { $unit_to_name{$name_to_unit{$k}} = $k; } 1; quota/copy_group_form.cgi0100755000567100000120000000214210113562005015560 0ustar jcameronwheel#!/usr/local/bin/perl # copy_group_form.cgi # Display a form for copying some group's quotas to others require './quota-lib.pl'; &ReadParse(); $access{'filesys'} eq "*" || &error($text{'cgform_ecannot'}); &can_edit_group($in{'group'}) || &error($text{'cgform_egroup'}); &ui_print_header(undef, $text{'cgform_title'}, "", "copy_group"); print "

\n"; print "\n"; print "",&text('cgform_copyto', $in{'group'}),"

\n"; print "

    \n"; print " ", "$text{'cgform_all'}
    \n"; print " ", "$text{'cgform_select'}\n"; print " ",&group_chooser_button("groups",1),"
    \n"; print " ", "$text{'cgform_contain'}\n"; print " ",&user_chooser_button("users",1),"
    \n"; print "\n"; print "
\n"; &ui_print_footer("group_filesys.cgi?group=$in{'group'}", $text{'cgform_return'}); quota/group_grace_save.cgi0100755000567100000120000000143210113561761015673 0ustar jcameronwheel#!/usr/local/bin/perl # group_grace_save.cgi # Update the grace times for groups on some filesystem require './quota-lib.pl'; &ReadParse(); $whatfailed = $text{'ggraces_esave'}; $access{'ggrace'} && &can_edit_filesys($in{'filesys'}) || &error($text{'ggraces_eedit'}); if ($in{'bdef'}) { push(@args, 0, 0); } elsif ($in{'btime'} !~ /^[0-9\.]+$/) { &error(&text('ggraces_enumber', $in{'btime'})); } else { push(@args, ($in{'btime'}, $in{'bunits'})); } if ($in{'fdef'}) { push(@args, 0, 0); } elsif ($in{'ftime'} !~ /^[0-9\.]+$/) { &error(&text('ggraces_enumber', $in{'ftime'})); } else { push(@args, ($in{'ftime'}, $in{'funits'})); } &edit_group_grace($in{'filesys'}, @args); &webmin_log("grace", "group", $in{'filesys'}, \%in); &redirect("list_groups.cgi?dir=".&urlize($in{'filesys'})); quota/group_filesys.cgi0100755000567100000120000000633610176324457015272 0ustar jcameronwheel#!/usr/local/bin/perl # group_filesys.cgi # List all filesystems for which some group has quotas require './quota-lib.pl'; &ReadParse(); $u = $in{'group'}; &can_edit_group($u) || &error(&text('gfilesys_ecannot', $u)); &ui_print_header(undef, $text{'gfilesys_title'}, "", "group_filesys"); foreach $f (&list_filesystems()) { if ($f->[4] > 1 && $f->[5] && &can_edit_filesys($f->[0])) { push(@fslist, $f->[0]); $fslist{$f->[0]}++; } } # Make sure all block sizes are the same $n = &group_filesystems($u); for($i=0; $i<$n; $i++) { $bsize = &block_size($filesys{$i,'filesys'}); if ($last_bsize && $last_bsize != $bsize) { $variable_bsize++; } } if ($n) { print &ui_subheading(&text('gfilesys_all', &html_escape($u))); print "\n"; print "\n"; $cols = 3 + ($config{'show_grace'} ? 1 : 0); if (!$variable_bsize) { print "\n"; } else { print "\n"; } print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n" if ($config{'show_grace'}); print "\n"; print "\n"; print "\n" if ($config{'show_grace'}); print "\n"; for($i=0; $i<$n; $i++) { $f = $filesys{$i,'filesys'}; $bsize = &block_size($f); print "\n"; if ($fslist{$f} && !$access{'ro'}) { print "\n"; } else { print "\n"; } if ($bsize) { print "\n"; } else { print "\n"; } &print_limit($filesys{$i,'sblocks'}); &print_limit($filesys{$i,'hblocks'}); &print_grace($filesys{$i,'gblocks'}) if ($config{'show_grace'}); print "\n"; &print_limit($filesys{$i,'sfiles'}, 1); &print_limit($filesys{$i,'hfiles'}, 1); &print_grace($filesys{$i,'gfiles'}) if ($config{'show_grace'}); print "\n"; } print "
$text{'gfilesys_space'}$text{'gfilesys_blocks'}$text{'gfilesys_files'}
$text{'gfilesys_fs'}$text{'gfilesys_used'} $text{'gfilesys_soft'}$text{'gfilesys_hard'}$text{'ufilesys_grace'}$text{'gfilesys_used'} $text{'gfilesys_soft'}$text{'gfilesys_hard'}$text{'ufilesys_grace'}
$f$f",&nice_size($filesys{$i,'ublocks'}*$bsize),"$filesys{$i,'ublocks'}$filesys{$i,'ufiles'}

\n"; } else { print "",&text('gfilesys_nogquota', $u),"
\n"; } if (!$access{'ro'}) { print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; if ($access{'filesys'} eq "*") { print "\n"; print "\n"; print "\n"; } print "
\n"; print "
\n"; print "
\n"; } &ui_print_footer("", $text{'gfilesys_return'}); quota/config-solaris0100644000567100000120000000072210256466550014544 0ustar jcameronwheeldisplay_max=100 user_quotaoff_command=quotaoff user_quotaon_command=quotaon user_repquota_command=repquota -v user_grace_command=edquota -t user_quota_command=quota -v quotacheck_command=quotacheck user_edquota_command=edquota user_copy_command=edquota -p sort_mode=0 block_mode=1 show_grace=1 email_msg=Disk usage for user ${USER} on filesystem ${FS} has reached ${PERCENT}% of the allowed quota. ${USED} of disk space is being used, out of a maximum of ${QUOTA}. quota/save_email.cgi0100755000567100000120000000307110267561415014474 0ustar jcameronwheel#!/usr/local/bin/perl # save_email.cgi # Save scheduled email settings require './quota-lib.pl'; $access{'email'} && &can_edit_filesys($in{'filesys'}) || &error($text{'email_ecannot'}); &ReadParse(); &foreign_require("cron", "cron-lib.pl"); &error_setup($text{'email_err'}); # Validate inputs if ($in{'email'}) { $in{'interval'} =~ /^[0-9\.]+$/ || &error($text{'email_einterval'}); $in{'percent'} =~ /^[0-9\.]+$/ || &error($text{'email_epercent'}); $in{'domain'} =~ /^[a-z0-9\.\-]+$/i || &error($text{'email_edomain'}); $in{'from'} =~ /^\S+$/i || &error($text{'email_efrom'}); } # Save settings &lock_file($module_config_file); $config{"email_".$in{'filesys'}} = $in{'email'}; $config{"email_interval_".$in{'filesys'}} = $in{'interval'}; $config{"email_type_".$in{'filesys'}} = $in{'type'}; $config{"email_percent_".$in{'filesys'}} = $in{'percent'}; $config{"email_domain_".$in{'filesys'}} = $in{'domain'}; $config{"email_virtualmin_".$in{'filesys'}} = $in{'virtualmin'}; $config{"email_from_".$in{'filesys'}} = $in{'from'}; &save_module_config(); &unlock_file($module_config_file); # Create cron job, if needed if ($in{'email'}) { $job = &find_email_job(); if (!$job) { $job = { 'user' => 'root', 'command' => $email_cmd, 'active' => 1, 'mins' => '0,10,20,30,40,50', 'hours' => '*', 'days' => '*', 'months' => '*', 'weekdays' => '*' }; &cron::create_cron_job($job); &cron::create_wrapper($email_cmd, $module_name, "email.pl"); } } &webmin_log("email", "user", $in{'filesys'}, \%in); &redirect("list_users.cgi?dir=".&urlize($in{'filesys'})); quota/config.info.de0100644000567100000120000000231210067670020014375 0ustar jcameronwheeldisplay_max=Maximale Anzahl anzuzeigender Benutzer und Gruppen,0 user_repquota_command=Befehl, um Benutzer eines Dateisystems anzuzeigen,0 group_repquota_command=Befehl zum Auflisten der Gruppen auf einem Dateisystem,0 user_edquota_command=Befehl, um Quota eines Benutzers zu bearbeiten,0 group_edquota_command=Befehl, um Quota einer Gruppe zu bearbeiten,0 user_quota_command=Befehl um die Quota eines Benutzers anzuzeigen,0 group_quota_command=Befehl um die Quota einer Gruppe anzuzeigen,0 user_copy_command=Befehl, um die Quota eines Benutzers zu kopieren,0 group_copy_command=Befehl, um die Quota einer Gruppe zu kopieren,0 user_quotaon_command=Befehl zum aktivieren einer Benutzer-Quota,0 group_quotaon_command=Befehl zum aktivieren einer Gruppen-Quota,0 user_quotaoff_command=Befehl zum deaktivieren einer Benutzer-Quota,0 group_quotaoff_command=Befehl zum deaktivieren einer Gruppen-Quota,0 quotacheck_command=Befehl zum Überprüfen der Quotas,0 user_grace_command=Befehl zum Bearbeiten der Fristen eines Benutzers,0 group_grace_command=Befehl zum Bearbeiten der Fristen einer Gruppe,0 sort_mode=Sortiere Benutzer und Gruppen nach,1,0-benutzten Blöcken,2-Name,1-Reihenfolge aus repquotaquota/config.info.sv0100644000567100000120000000211607142735513014450 0ustar jcameronwheeldisplay_max=Maximalt antal användare och grupper som ska visas,0 user_repquota_command=Kommando för att visa användare på ett filsystem,0 group_repquota_command=Kommando för att visa grupper på filsystem,0 user_edquota_command=Kommando för att ändra en användares quota,0 group_edquota_command=Kommando för att ändra en grupps quota,0 user_quota_command=Kommando för att kontrollera en användares quota,0 group_quota_command=Kommando för att kontrollera en grupps quota,0 user_copy_command=Kommando för att kopiera en användares quota,0 group_copy_command=Kommando för att kopiera en grupps quota,0 user_quotaon_command=Kommando för att slå på användares quota,0 group_quotaon_command=Kommando för att slå på gruppers quota,0 user_quotaoff_command=Kommando för att slå av användares quota,0 group_quotaoff_command=Kommando för att slå av gruppers quota,0 quotacheck_command=Kommando för att kontrollera quota,0 user_grace_command=Kommando för att ändra en användares tidsintervall för att överskrida quota,0 group_grace_command=Kommando för att ändra en grupps tidsintervall för att överskrida quota,0 quota/freebsd-lib.pl0100644000567100000120000002255710256142064014416 0ustar jcameronwheel# openbsd-lib.pl # Quota functions for openbsd # quotas_init() sub quotas_init { return undef; } # quotas_supported() # Returns 1 for user quotas, 2 for group quotas or 3 for both sub quotas_supported { return 3; } # free_space(filesystem) # Returns an array containing btotal, bfree, ftotal, ffree sub free_space { local(@out, @rv); $ENV{'BLOCKSIZE'} = 1024; `df -i $_[0]` =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)\s+\S+\s+(\d+)\s+(\d+)/; return ($1, $2, $3+$4, $4); } # quota_can(&mnttab, &fstab) # Can this filesystem type support quotas? # 0 = No quota support (or not turned on in /etc/fstab) # 1 = User quotas only # 2 = Group quotas only # 3 = User and group quotas sub quota_can { return ($_[1]->[3] =~ /userquota/ ? 1 : 0) + ($_[1]->[3] =~ /groupquota/ ? 2 : 0); } # quota_now(&mnttab, &fstab) # Are quotas currently active? # 0 = Not active # 1 = User quotas active # 2 = Group quotas active # 3 = Both active sub quota_now { return $_[0]->[3] =~ /quota/ ? 3 : 0; } # quotaon(filesystem, mode) # Activate quotas and create quota files for some filesystem. The mode can # be 1 for user only, 2 for group only or 3 for user and group sub quotaon { return if (&is_readonly_mode()); local($out, $qf, @qfile, $flags); if ($_[1]%2 == 1) { # turn on user quotas $qf = "$_[0]/quota.user"; if (!(-r $qf)) { &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, $qf); &system_logged("$config{'quotacheck_command'} $_[0]"); } $out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { # turn on group quotas $qf = "$_[0]/quota.group"; if (!(-r $qf)) { &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, $qf); &system_logged("$config{'quotacheck_command'} $_[0]"); } $out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } # quotaoff(filesystem, mode) # Turn off quotas for some filesystem sub quotaoff { return if (&is_readonly_mode()); local($out); if ($_[1]%2 == 1) { $out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { $out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } # user_filesystems(user) # Fills the array %filesys with details of all filesystem some user has # quotas on sub user_filesystems { local($n, $_, %mtab); open(QUOTA, "$config{'user_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|\s+Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line $filesys{$n,'filesys'} = $1; =~/^.{15}(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/; $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'ufiles'} = int($4); $filesys{$n,'sfiles'} = int($5); $filesys{$n,'hfiles'} = int($6); $n++; } elsif (/^(.{15})(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/) { $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'filesys'} = $1; $filesys{$n,'filesys'} =~ s/^\s+//g; $n++; } } close(QUOTA); return $n; } # group_filesystems(group) # Fills the array %filesys with details of all filesystem some group has # quotas on sub group_filesystems { local($n, $_, %mtab); open(QUOTA, "$config{'group_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|\s+Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line $filesys{$n,'filesys'} = $1; =~/^.{15}(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/; $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'ufiles'} = int($4); $filesys{$n,'sfiles'} = int($5); $filesys{$n,'hfiles'} = int($6); $n++; } elsif (/^(.{15})(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/) { $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'filesys'} = $1; $filesys{$n,'filesys'} =~ s/^\s+//g; $n++; } } close(QUOTA); return $n; } # filesystem_users(filesystem) # Fills the array %user with information about all users with quotas # on this filesystem. This may not be all users on the system.. sub filesystem_users { local($rep, @rep, $n, $what); $rep = `$config{'user_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } @rep = split(/\n/, $rep); @rep = grep { !/^root\s/ } @rep[3..$#rep]; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) { $user{$n,'user'} = $1; $user{$n,'ublocks'} = int($2); $user{$n,'sblocks'} = int($3); $user{$n,'hblocks'} = int($4); $user{$n,'ufiles'} = int($5); $user{$n,'sfiles'} = int($6); $user{$n,'hfiles'} = int($7); } } return $n; } # filesystem_groups(filesystem) # Fills the array %group with information about all groups with quotas # on this filesystem. This may not be all groups on the system.. sub filesystem_groups { local($rep, @rep, $n, $what); $rep = `$config{'group_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } @rep = split(/\n/, $rep); @rep = @rep[3..$#rep]; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) { $group{$n,'group'} = $1; $group{$n,'ublocks'} = int($2); $group{$n,'sblocks'} = int($3); $group{$n,'hblocks'} = int($4); $group{$n,'ufiles'} = int($5); $group{$n,'sfiles'} = int($6); $group{$n,'hfiles'} = int($7); } } return $n; } # edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_quota_file { local($rv, $line, %mtab, @m); @line = split(/\n/, $_[0]); for($i=0; $i<@line; $i++) { if ($line[$i] =~ /^(\S+): (blocks|kbytes) in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) { # found lines to change $rv .= "$1: $2 in use: $3, limits (soft = $_[2], hard = $_[3])\n"; $line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/; $rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n"; } else { $rv .= "$line[$i]\n"; } } return $rv; } # quotacheck(filesystem, mode) # Runs quotacheck on some filesystem sub quotacheck { $out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # copy_user_quota(user, [user]+) # Copy the quotas for some user to many others sub copy_user_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'user_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # copy_group_quota(group, [group]+) # Copy the quotas for some group to many others sub copy_group_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'group_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # default_grace() # Returns 0 if grace time can be 0, 1 if zero grace means default sub default_grace { return 0; } # get_user_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_user_grace { local(@rv, %mtab, @m); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'user_grace_command'} $_[0] |"); while() { if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } } close(GRACE); return @rv; } # get_group_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_group_grace { local(@rv, %mtab, @m); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'group_grace_command'} $_[0] |"); while() { if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } } close(GRACE); return @rv; } # edit_grace_file(data, filesystem, btime, bunits, ftime, funits) sub edit_grace_file { local($rv, $line, @m, %mtab); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[1]) { # replace this line $line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}"; } $rv .= "$line\n"; } return $rv; } # grace_units() # Returns an array of possible units for grace periods sub grace_units { return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'}, $text{'grace_days'}); } # fs_block_size(dir, device, filesystem) # Returns the size of blocks on some filesystem, or undef if unknown. # Always 1024, because the ENV setting above forces this. sub fs_block_size { return 1024; } %name_to_unit = ( "second", 0, "seconds", 0, "minute", 1, "minutes", 1, "hour", 2, "hours", 2, "day", 3, "days", 3, ); foreach $k (keys %name_to_unit) { $unit_to_name{$name_to_unit{$k}} = $k; } 1; quota/help/0040755000567100000120000000000007425215340012625 5ustar jcameronwheelquota/help/group_grace.zh_TW.Big5.html0100644000567100000120000000033310075155062017622 0ustar jcameronwheel
¸s²Õ¼u©Ê®É¶¡
¼u©Ê®É¶¡¬O¥i¥H¤¹³\¸s²Õ¶W¹L¨ä³n©Ê­­¨îªº®É¶¡. ¦b³o¬q®É¶¡¤§¤¤, ¸s²Õ¤´µM¥i¥H¨Ï¥Î§ó¦hªººÏºÐªÅ¶¡©Î«Ø¥ß§ó¦hªºÀÉ®×. ·í¸s²Õ¨Ï¥Î¶W¹L¨ä³n©Ê®É¶¡«á, ¥¦·|³]©w¤@­Ó®É¶¡­n¨D¸s²Õ¦b®É¶¡¤§¤º²M°£¨äªÅ¶¡.
quota/help/user_filesys.html0100644000567100000120000000112207060351555016224 0ustar jcameronwheel
User Quotas
This page lists all the filesystems on which some user has a quota. You can click on a filesystem from the list to edit its quota, or select a filesystem from the menu below and click on Edit Quota. If a filesystem is not on the list there is no limit to the number of files or amount of space the user may occupy on that filesystem.

Clicking the Copy Quotas button allows you to copy all quotas for this user to one or more other users. This can be useful if you want to allocate a number of users the same amount of disk space.


quota/help/copy_group.sv.html0100644000567100000120000000104307173731646016337 0ustar jcameronwheel
Kopiera en grupps quota
På denna sida kan du kopiera quota på alla filsystem från en grupp till en eller flera andra grupper. Det finns tre sätt att välja den eller de grupper som du vill kopiera till:
Alla grupper
Quotan kopieras till alla andra grupper på systemet.
Angivna grupper
Quotan kopieras till den eller de grupper som du har angivit.
Grupper som innehåller användare ...
Quotan kopieras till alla grupper där någon av de angivna användarna är medlem.

quota/help/copy_user.es.html0100644000567100000120000000114610067401522016123 0ustar jcameronwheel
Copiar Cuotas de Usuario
Esta página te permite copiar cuotas en todos los sistemas de archivos desde algún usuario a otro u otros usuarios. Hay tres maneras de seleccionar a qué usuarios copiar:
Todos los Usuarios
Las cuotas serán copiadas a cada uno de los demás usuarios de tu sistema.
Usuarios Seleccionados
Las cuotas serán copiadas al usuario o usuarios seleccionados.
Miembros de Grupos Selectos
Las cuotas serán copiadas a todos los usuarios que tengan uno de los grupos seleccionados como su grupo primario o secundario.

quota/help/list_groups.es.html0100644000567100000120000000265610067401522016474 0ustar jcameronwheel
Grupos de Sistemas de Archivo
El sistema de cuotas de Unix cuenta todos los archivos propiedad de un grupo para ver la cuota de ese grupo. Los grupos actuales en que esté un usuario que es propietario de archivos, no tienen importancia.

Esta página lista todos los grupos que tienen cuotas en algún sistema de archivos. Puedes hacer click en un nombre de grupo para editar sus cuotas o seleccionar un grupo del menú bajo la lista y hacer click en Editar Cuota. Si un grupo no está en la lista, no hay límite en el número de archivos o de cantidad de espacio en disco que puede usar.

Más allá de la lista de grupo está el botón de Editar Tiempos de Gracia. Este te lleva a un formulario para editar la cantidad de tiempo que un grupo está autorizado a exceder su límite de soft antes de ser prevenido de que utilice más espacio de disco.

Hacer click en el botón Revisar Cuotas realiza una exploración de todo el sistema de archivos para traer toda la utilización de los bloques y archivos de cada grupo hasta la fecha. Esto puede ser necesario si se han desactivado las cuotas durante algún tiempo o si sólo han sido activadas para algunos grupos.

En la parte inerior de la página hay un formulario para poder poner las cuotas iniciales de bloque y archivo de los nuevos grupos. Éstas se aplicarán sólo para los grupos creados mediante el módulo de Webmin de Usuarios y Grupos.


quota/help/edit_group_quota.fr.html0100644000567100000120000000031707060351555017475 0ustar jcameronwheel
Éditer les Quotas d'un Groupe
Cette page vous permet d'éditer les quotas de tous les membres d'un groupe. Chacune des limites doive être entrée ou ils seront considérés illimité.
quota/help/group_filesys.sv.html0100644000567100000120000000107407142735513017040 0ustar jcameronwheel
Quota för grupp
På denna sida visas alla filsystem där någon grupp har quota. Klicka på ett filsystem i listan för att ändra quota eller välj ett filsystem från menyn nedan och tryck på Ändra quota. Om något filsystem inte finns med på listan är antalet filer och utrymmet som gruppen får använda obegränsat på detta filsystem.

Tryck på Kopiera quota för att kopiera quota från denna grupp till en eller flera andra grupper. Detta är användbart om man vill att många grupper ska ha tillgång till lika mycket diskutrymme var.


quota/help/intro.sv.html0100644000567100000120000000432207173731646015307 0ustar jcameronwheel
Diskquota

Introduktion

Quota är en metod för att styra diskanvändning för användare och grupper. För varje filsystem kan man begränsa det diskutrymme och antal filer som en användare får utnyttja. I en del Unix-system går det också att göra motsvarande begränsningar för en grupp.

Man kan endast sätta upp quota för lokala Unix-filsystem. NFS-filsystem som monteras från andra system har quota-inställningar på det systemet, om sådana finns. Filsystem som inte är Unix (t ex MS-DOS och ISO9660) stödjer inte alls quotasystemet. För varje användare kan följande begränsningar göras:

Mjuk blockgräns
Antal diskblock som får användas innan ett varningsmeddelande visas.
Hård blockgräns
Maximalt antal block som användarens filer får ta upp.
Mjuk filgräns
Antal filer som får skapas innan ett varningsmeddelande visas.
Hård filgräns
Maximalt antal filer som användaren får äga.
Diskblock är vanligen 512 eller 1024 bytes stora, beroende på operativsystem. Vid quotaberäkning avrundas alla filstorlekar uppåt till närmaste hela block, vilket gör att till och med en tom fil tar upp minst ett block.

Vid quotaberäkning räknas kataloger, diskar, symboliska länkar och vanliga filer in i filantalet. Tekniskt sett är filquotan helt enkelt en quota för inoder.

Diskquotamodulen

Startsidan för denna modul innehåller en lista över de lokala filsystem som stödjer quota. Om quota används för ett filsystem går det att klicka på dess sökväg för att se quota för alla användare. Om quota inte används går det att trycka på Aktivera quota, så aktiveras quota för filsystemet. Linux tillåter inte att quota slås på om inte inställningen Använd quota har slagits på för filsystemet i modulen Diskar och filsystem. Om inget filsystem har denna inställning på kommer inte heller något att visas på startsidan. Nedanför filsystemslistan finns en knapp för att visa alla quota för en viss användare. Denna kan endast användas om minst ett filsystem använder quota. På samma sätt kommer det att finnas en knapp för att visa gruppquota om minst ett filsystem stödjer och använder detta.
quota/help/user_filesys.es.html0100644000567100000120000000125310067401522016626 0ustar jcameronwheel
Cuotas de Usuario
Esta página lista todos los sistemas de archivo en que algún usuario tenga cuota. Puedes hacer click en un sistema de archivos de la lista para editar su cuota o seleccionar un sistema de archivos del menú inferior y hacer click en Editar Cuota. Si un sistema de archivos no está en la lista no hay límite en el número de archivos o cantidad de espacio que el usuario puede ocupar en ese sistema de archivos.

Haciendo click en el botón Copiar Cuotas te permite copiar todas las cuotas de este usuario a otros usuarios. Esto puede ser útil si quieres reservar el mismo espacio de disco para un número de usuarios.


quota/help/list_users.sv.html0100644000567100000120000000216707173731646016355 0ustar jcameronwheel
Filsystemsanvändare
På denna sida visas alla användare som har quota på något filsystem. Här kan man klicka på ett användarnamn för att ändra dess quota eller välja en användare från menyn nedanför listan och trycka på Ändra quota. Om någon användare inte finns med på listan finns det ingen begränsning för hur många filer eller hur mycket diskutrymme den användaren får utnyttja.

Nedanför listan finns knappen Ändra tidsintervall. När man klickar på den får man upp ett formulär där man kan ställa in den tid som en användare får överskrida sin mjuka gräns innan den hindras från att utnyttja mer diskutrymme.

Om man trycker på Kontrollera quota läser systemet igenom hela filsystemet och kontrollerar block- och filutnyttjandet för alla användare. Detta kan vara nödvändigt att göra om quota har varit avstängt någon tid eller om det just har slagits på för någon användare.

Längst ned på sidan finns ett formulär för att definiera block- och filquota för nya användare. Dessa inställningar gäller endast för de användare som skapas med Webmin-modulen Användare och grupper.


quota/help/group_grace.sv.html0100644000567100000120000000064607142735513016447 0ustar jcameronwheel
Tidsintervall för grupper
Här anger du den tid som en grupp får överskrida sin mjuka gräns innan den hindras att använda mer diskutrymme och skapa nya filer. När en grupp överskrider sin mjuka blockgräns har den det angivna tidsintervallet på sig att minska diskanvändningen, så att gränsen inte överskrids, innan den hindras att använda fler block. Den mjuka filgränsen fungerar på liknande sätt.
quota/help/user_grace.es.html0100644000567100000120000000075510067401522016237 0ustar jcameronwheel
Tiempo de Gracia para el Usuario
Los tiempos de gracia son la cantidad de tiempo que un usuario puede exceder su límite de soft antes de ser prevenido de no utilizar más espacio de disco o de no crear más archivos. Una vez que el usuario excede su límite de bloque de soft, tiene la cantidad de tiempo especificado para reducir su utilización de disco bajo el límite antes de que sea prevenido de no usar más bloques. Lo mismo se aplica al límite de archivos por soft.
quota/help/copy_group.html0100644000567100000120000000077407060351555015712 0ustar jcameronwheel
Copy Group Quotas
The page allows you to copy quotas on all filesystems for some group to one or more other groups. There are three ways of choosing which groups to copy to :
All Groups
Quotas will be copied to every other group on your system.
Selected Groups
Quotas will be copied to the group or groups selected.
Groups Containing Users
Quotas will be copied to all groups of which any of the selected users is a member.

quota/help/edit_group_quota.zh_TW.Big5.html0100644000567100000120000000021510075155062020676 0ustar jcameronwheel
½s¿è¸s²Õ°tÃB
ªÌ­Óªí³æ¥i¥HÅý±z½s¿è©Ò¿ï¾Ü¸s²Õªº°tÃB­­¨î. ±z¥i¥H¹ïÀɮ׼Ʃΰ϶ô¼Æ¿é¤Jµw©Ê­­¨î, ³n©Ê­­¨î, ©Î³]©w¦¨¤£­­¨î.
quota/help/group_filesys.html0100644000567100000120000000113007060351555016401 0ustar jcameronwheel
Group Quotas
This page lists all the filesystems on which some group has a quota. You can click on a filesystem from the list to edit its quota, or select a filesystem from the menu below and click on Edit Quota. If a filesystem is not on the list there is no limit to the number of files or amount of space the group may occupy on that filesystem.

Clicking the Copy Quotas button allows you to copy all quotas for this group to one or more other groups. This can be useful if you want to allocate a number of groups the same amount of disk space.


quota/help/copy_group.es.html0100644000567100000120000000110110067401522016270 0ustar jcameronwheel
Copiar Cuotas de Grupo
Esta página te permite copiar cuotas en todos los sistemas de archivos desde algún grupo a otro u otros grupos. Hay tres maneras de seleccionar a qué grupos copiar:
Todos los Grupos
Las cuotas serán copiadas a cada uno de los demás grupos de tu sistema.
Grupos Seleccionados
Las cuotas serán copiadas al grupo o grupos seleccionados.
Grupos que Contengan Usuarios
Las cuotas serán copiadas a todos los grupos en que cualquiera de los usuarios seleccionados sea miembro.

quota/help/list_users.html0100644000567100000120000000200007060351555015700 0ustar jcameronwheel
Filesystem Users
This page lists all users who have quotas on some filesystem. You can click on a username to edit their quota, or select a user from the menu below the list and click on Edit Quota. If a user is not on the list there is no limit on the number of files or the amount of disk space he may use.

Beneath the list of users is the Edit Grace Times button. This takes you to a form for editing the amount of time a user is allowed to exceed his soft limit before being prevented from using any more disk space.

Clicking the Check Quotas button performs a scan of the entire filesystem to bring the block and file usage by each user up to date. This may be necessary is quotas have been disabled for some time, or if they have just been enabled for some user.

At the bottom of the page is a form for setting the initial block and file quotas for new users. These will only be applied for users created with the Webmin Users and Groups module.


quota/help/group_filesys.es.html0100644000567100000120000000125710067401522017010 0ustar jcameronwheel
Cuotas de Grupo
Esta página lista todos los sistemas de archivo en que algún grupo tiene cuotas. Puedes hacer click en los sistemas de archivo para edita su cuota o seleccionar un sistema de archivos desde el menú inferior y hacer click en Editar Cuota. Si un sistema de archivos no está en la lista, no hay límite en el número de archivos o cantidad de espacio que el grupo puede ocupar en ese sistema de archivos.

Haciendo click en el botón de Copiar Cuotas te permite copiar todas las cuotas para este grupo a uno o más grupos. Esto puede ser útil si quieres reservar para un número de grupos la misma cantidad de espacio en disco.


quota/help/edit_group_quota.sv.html0100644000567100000120000000034107142735513017514 0ustar jcameronwheel
Ändra quota för grupp
I detta formulär kan du ändra quotan för en grupp. Du kan välja att ange bestämda värden för de hårda och mjuka gränserna för block och filer eller att låta dem vara obegränsade.
quota/help/intro.es.html0100644000567100000120000000552510067401522015253 0ustar jcameronwheel
Cuotas de Disco

Introducción

Las cuotas son un método de controlar cuánto espacio en disco pueden usar los usuarios y los grupos. Para cada sistema de archivos puedes colocar límites de cuánto espacio en disco y cuántos archivos puede utilizar cada usuario. Algunos sistemas Unix pueden tambien permitirte limitar el espacio y los archivos utilizados por todos los miembros de algún grupo.

Las cuotas pueden configurarse sólamente para sistemas de archivo Unix locales. Los sistemas de archivo NFS montados desde otros sistemas utilizan las cuotas de su servidor, si tienen. Los sistemas de archivo no Unix como MS-DOS o ISO9660 no pueden soportar ningún tipo de cuotas.

Para cada usuario se imponen cuatro límites:

Límite de bloque por soft
El número de bloques de disco permitidos antes de que se muestre un mensaje de aviso.
Límite de bloque por hard
El máximo número de bloques que un archivo de usuario puede ocupar.
Límite de archivo por soft
El número de archivos permitidos antes de que se muestre un mensaje de aviso.
Límite de archivo por Hard
El máximo número de archivos que un usuario puede tener.
Los bloques de disco son típicamente de 512 o 1024 bytes de tamaño, dependiendo del sistema operativo. Cuando se calculan las cuotas, todas las medidas de los archivos son redondeadas al siguiente bloque por encima. Por ello, incluso los archivos vacíos usan al menos un bloque.

Para propósito de cuotas de archivo, cada directorio, dispositivo, enlace simbólico o archivo normal es tenido en cuenta para el máximo número de archivos que puede tener un usuario. Técnicamente, la cuota de archivos es actualmente una cuenta de i-nodos.

El Módulo de Cuotas de Disco

La página principal de este modulo muestra una lista de sistemas de archivo locales que pueden soportar cuotas. Si las cuotas están activadas en este momento en tu sistema, puedes hacer click en su trayectoria para mostrar las cuotas de cada usuario. Si no, haciendo click en Activar Cuotas activará las cuotas de ese sistema de archivos.

El sistema operativo Linux no permite activar las cuotas a menos que el sistema de archivos tenga la opción Usar Cuotas puesta en el módulo de los Discos y en el de los Sistemas de archivo. Si ninguno de tus sistemas de archivo tiene esta opción puesta, no se lista a nadie en la página principal.

Bajo la lista de sistemas de archivo hay un botón para mostrar todas las cuotas de un usuario seleccionado. Esto será sólamente mostrado si al menos un sistema de archivos tiene activadas las cuotas de usuario. De forma similar, si al menos un sistema de archivos tiene grupos de cuotas activadas habrá un botón para mostrar todas las cuotas del grupo seleccionado.


quota/help/list_users.es.html0100644000567100000120000000236410067401522016312 0ustar jcameronwheel
Usuarios de Sistemas de Archivo
Esta página lista todos los usuarios que tienen cuotas en algún sistema de archivos. Puedes hacer click en un nombre de usuario para editar sus cuotas o seleccionar un usuario del menú bajo la lista y hacer click en Editar Cuota. Si un usuario no está en la lista no hay límite en el número de archivos o de cantidad de espacio en disco que puede usar.

Más allá de la lista de usuarios está el botón de Editar Tiempos de Gracia. Este te lleva a un formulario para editar la cantidad de tiempo que un usuario está autorizado a exceder su límite de soft antes de ser prevenido de que no utilice más espacio de disco.

Hacer click en el botón Revisar Cuotas realiza una exploración de todo el sistema de archivos para traer toda la utilización de los bloques y archivos de cada usuario hasta la fecha. Esto puede ser necesario si se han desactivado las cuotas durante algún tiempo o si sólo han sido activadas para algunos usuarios.

En la parte inferior de la página hay un formulario para poder poner las cuotas iniciales de bloque y archivo de los nuevos usuarios. Estas se aplicarán sólo para los usuarios creados mediante el módulo de Webmin de Usuarios y Grupos.


quota/help/edit_user_quota.fr.html0100644000567100000120000000027107060351555017316 0ustar jcameronwheel
Édit les Quotas d'un Usager
Cette page vous permet d'éditer les quotas d'un usager. Chacune des limites doive être entrée ou ils seront considérés illimité.
quota/help/group_grace.es.html0100644000567100000120000000076410067401522016415 0ustar jcameronwheel
Tiempo de Gracia para el Grupo
Los tiempos de gracia son la cantidad de tiempo en que un grupo puede exceder su límite de soft antes de ser prevenido de no utilizar más espacio en disco o de no crear más archivos. Una vez que un grupo excede su límite de bloque de soft, tiene la cantidad de tiempo especificada para reducir su utilización de disco por debajo del límite antes de que sea prevenido de no utilizar más bloques. Lo mismo se aplica al límite de archivos de soft.
quota/help/edit_group_quota.html0100644000567100000120000000027507060351555017072 0ustar jcameronwheel
Edit Group Quota
This form allows you to edit the quotas for some group. Each of the hard and soft limits for blocks and files may be entered, or set as unlimited.
quota/help/edit_user_quota.zh_TW.Big5.html0100644000567100000120000000022110075155062020515 0ustar jcameronwheel
½s¿è¨Ï¥ÎªÌ°tÃB
ªÌ­Óªí³æ¥i¥HÅý±z½s¿è©Ò¿ï¾Ü¨Ï¥ÎªÌªº°tÃB­­¨î. ±z¥i¥H¹ïÀɮ׼Ʃΰ϶ô¼Æ¿é¤Jµw©Ê­­¨î, ³n©Ê­­¨î, ©Î³]©w¦¨¤£­­¨î.
quota/help/copy_user.fr.html0100644000567100000120000000107607060351555016136 0ustar jcameronwheel
Copier Quotas d'un Usager
Cette page vous permet de copier les quotas de tous les systèmes de fichier d'un usager à d'autres. Il y a trois façons pour choisir à quel usager les copier:
Tous les Usagers
Les quotas seront copier à tous les autres usagers du système.
Usagers Sélectionnés
Les quotas seront copiés aux usagers choisis.
Membres d'un Groupe Sélectionné
Les quotas seront copiés à tous les usagers des groupes sélectionnés, que ce soit leur groupe primaire ou secondaire.

quota/help/user_grace.html0100644000567100000120000000062207060351555015633 0ustar jcameronwheel
User Grace Times
Grace times are the amount of time a user may exceed his soft limit by before being prevented from using any more disk space or creating any more files. Once a user exceeds his soft block limit, he has the specified amount of time to reduce his disk usage below the limit before he is prevented from using more blocks. The same applies for the soft file limit.
quota/help/list_groups.fr.html0100644000567100000120000000264207060351555016500 0ustar jcameronwheel
Système de Fichier pour Groupes
Le système quota Unix compte tous les fichiers appartenant à un groupe formant le quota de ce groupe. Les groupes réels dans lesquels l'utilisateur qui possède le fichier est dedans n'importe pas.

Cette page liste tous les groupes qui ont des quotas sur un certain système de fichier. Vous pouvez cliquer sur un nom de groupe pour éditeur leurs quotas, ou choisir un groupe à partir du menu sous la liste et cliquer sur Éditer Quotas. Si un groupe n'est pas dans la liste c'est qu'il n'a aucune limite sur le nombre de fichier ou d'espace disque qu'il peut utiliser.

Sous la liste de groupes se trouve le bouton Éditer le Temps de Grâce. Ceci vous amène à une page pour le temps alloué à un groupe de dépasser sa limite douce avant d'être empêché d'utiliser plus d'espace disque.

Cliquer le bouton Vérification des Quotas exécute un balayage du système de fichier entier pour calculer l'utilisation de bloc et de fichier par chaque groupe. Ceci peut être nécessaire si les quotas ont été interrompus quelque temps ou s'il vienne d'être mit effectif pour un certain groupe.

En bas de la page se trouve un formulaire pour configurer le nombre de bloc initial et de fichier pour de nouveaux groupes. Ceux-ci seront seulement appliqués pour des groupes créés avec le module de gestion d'utilisateurs et de groupe de Webmin.


quota/help/edit_group_quota.es.html0100644000567100000120000000033710067401522017466 0ustar jcameronwheel
Editar Cuotas de Grupo
Este formulario te permite editar las cuotas de algún grupo. Se pueden digitar o poner como ilimitado cada uno de los límites de hard y soft respecto a los bloques y archivos.
quota/help/user_filesys.fr.html0100644000567100000120000000130107060351555016631 0ustar jcameronwheel
Quotas des Usagers
Cette page liste tout les systèmes de fichier sur lesquels des usagers ont un quota. Vous pouvez cliquer sur un système de fichier de la liste pour éditer son quota ou sélectionner un système de fichier du menu en dessous en cliquant sur Éditer Quotas. Si un système de fichier n'est pas dans la liste c'est qu'il n'a aucune limite du nombre de fichiers ou d'espaces disque qu'un usager peut occuper sur ce système de fichier.

Cliquer sur le bouton Copier Quotas vous permettra de copier tous les quotas de cet usager à d'autres usagers. Ceci peut être utile si vous voulez allouer à un nombre d'usager le même espace disque.


quota/help/edit_user_quota.sv.html0100644000567100000120000000035007142735513017336 0ustar jcameronwheel
Ändra quota för användare
I detta formulär kan du ändra quotan för en användare. Du kan välja att ange bestämda värden för de hårda och mjuka gränserna för block och filer eller att låta dem vara obegränsade.
quota/help/user_grace.fr.html0100644000567100000120000000054407060351555016244 0ustar jcameronwheel
Temps de Grâce d'un Usager
Le temps de grâce est le temps qu'un usager puisse excéder sa limite douce avant de ne plus pouvoir utiliser d'espace disque ou créer plus de fichiers. Une fois qu'un groupe a excédé sa limite douce, il a le temps spécifié pour libérer de l'espace disque sous la limite avant qu'elle ne s'applique.
quota/help/copy_user.zh_TW.Big5.html0100644000567100000120000000056610075155062017345 0ustar jcameronwheel
½Æ»s¨Ï¥ÎªÌ°tÃB
³o¤@­¶¥i¥HÅý±z½Æ»s¬Y­Ó¨Ï¥ÎªÌ¦bÀɮרt²Î¤W¥þ³¡ªº°tÃB­­¨îµ¹¨ä¥Lªº¨Ï¥ÎªÌ. ¦@­p¦³¤TºØ¤è¦¡¥i¥H«ü©w­n½Æ»s¨ìªº¨Ï¥ÎªÌ:
¥þ³¡¨Ï¥ÎªÌ
°tÃB­­¨î·|½Æ»s¨ì±z¨t²Î¤Wªº¨C¤@­Ó¨Ï¥ÎªÌ.
¿ï¾Üªº¨Ï¥ÎªÌ
°tÃB­­¨î±N·|½Æ»s¨ì±z©Ò¿ï¾Üªº¨Ï¥ÎªÌ.
¿ï¾Ü¸s²Õªº¦¨­û
°tÃB­­¨î·|½Æ»s¨ì¥H©Ò¿ï¾Ü¸s²Õ¬°¥D­n©Î¦¸­n¸s²Õªº¨Ï¥ÎªÌ.

quota/help/intro.html0100644000567100000120000000446607060351555014661 0ustar jcameronwheel
Disk Quotas

Introduction

Quotas are a method of controlling how much disk space users and groups can use. For each filesystem you can place limits on how much disk space and how many files each user may use. Some Unix systems may also allow you to limit the space and files used by all members of some group.

Quotas can only be setup for local Unix filesystems. NFS filesystems mounted from other systems use the quotas from the server, if any. Non Unix filesystems like MS-DOS or ISO9660 cannot support quotas at all.

For each user four limits are imposed :

Soft block limit
The number of disk blocks allowed before a warning message is displayed.
Hard block limit
The maximum number of blocks that the user's file may occupy.
Soft file limit
The number of files allowed before a warning message is displayed.
Hard file limit
The maximum number of files that the user may own.
Disk blocks are typically 512 or 1024 bytes in size, depending on the operating system. When computing quotas, all file sizes are rounded up to the nearest block. Thus even an empty file uses at least on block.

For the purpose of file quotas, every directory, device, symbolic link or normal file counts towards the maximum number of files a user may own. Technically, the file quota is actually a quota on inodes.

The Disk Quotas Module

The main page of this module shows a list of local filesystems that can support quotas. If quotas are currently enabled for a filesystem, you may click on its path to display the quotas for each user. If not, clicking on Enabled Quotas will activate quotas for that filesystem.

The Linux operating system does not allow quotas to be turned on unless the filesystem has the Use Quotas option set in the Disks and Filesystems module. If none of your filesystems have this option set then none will be listed on the main page.

Below the list of filesystems is a button for displaying all quotas for a selected user. This will only be displayed if at least one filesystem has user quotas enabled. Similarly, if at least one filesystem has group quotas enabled there will be a button for displaying all quotas for a selected group.


quota/help/user_filesys.zh_TW.Big5.html0100644000567100000120000000065710075155062020052 0ustar jcameronwheel
¨Ï¥ÎªÌ°tÃB
³o¤@­¶¦C¥X¤F¦bÀɮרt²Î¤W¦³³]©w¨Ï¥ÎªÌ°tÃBªº¸Ô²Ó¸ê®Æ. ±z¥i¥H¦b¦Cªí¤¤«ö¤UÀɮרt²Î¦WºÙ¥H½s¿è¥Lªº°tÃB­­¨î; ©Î¦b¤U­±ªºªí³æ¤¤¿ï¾Ü­nÅܧóªºÀɮרt²Î, ¨Ã«ö¤U½s¿èºÏºÐ°tÃB¥HÅܧó¤§. ¦pªGÀɮרt²Î¤£¦b¦Cªí¤¤, ªí¥Ü¸ÓÀɮרt²Î¨Ã¨S¦³³]©wÀɮ׼ƥةΤj¤pªº°tÃB­­¨î³]©w.

«ö¤U½Æ»s°tÃB«ö¶s¥i¥HÅý±z½Æ»s³o­Ó¨Ï¥ÎªÌªº°tÃB­­¨îµ¹¨ä¥Lªº¨Ï¥ÎªÌ. ·í±z·Q­n¨Ï¨ä¥L¨Ï¥ÎªÌ¦³¬Û¦Pªº°tÃB­­¨î®É, ³o­Ó¥\¯à±N·|¦³¥Î.


quota/help/copy_group.fr.html0100644000567100000120000000103407060351555016306 0ustar jcameronwheel
Copier Quotas d'un Groupe
Cette page vous permet de copier les quotas de tous les systèmes de fichier d'un groupe à un autre. Il y a trois façons de choisir quel groupe à qui copier :
Tous les Groupes
Les quotas seront copiés à tous les autres groupes du système.
Groupes Sélectionné
Les quotas seront copiés aux groupes choisis.
Groupes contenant les Usagers
Les quotas seront copiés à tous les groupes dans lequel certains usagers sont membre.

quota/help/edit_user_quota.html0100644000567100000120000000027307060351555016712 0ustar jcameronwheel
Edit User Quota
This form allows you to edit the quotas for some user. Each of the hard and soft limits for blocks and files may be entered, or set as unlimited.
quota/help/group_grace.html0100644000567100000120000000062507060351555016014 0ustar jcameronwheel
Group Grace Times
Grace times are the amount of time a group may exceed its soft limit by before being prevented from using any more disk space or creating any more files. Once a group exceeds its soft block limit, it has the specified amount of time to reduce its disk usage below the limit before it is prevented from using more blocks. The same applies for the soft file limit.
quota/help/user_grace.zh_TW.Big5.html0100644000567100000120000000033510075155062017446 0ustar jcameronwheel
¨Ï¥ÎªÌ
¼u©Ê®É¶¡¬O¥i¥H¤¹³\¨Ï¥ÎªÌ¶W¹L¨ä³n©Ê­­¨îªº®É¶¡. ¦b³o¬q®É¶¡¤§¤¤, ¨Ï¥ÎªÌ¤´µM¥i¥H¨Ï¥Î§ó¦hªººÏºÐªÅ¶¡©Î«Ø¥ß§ó¦hªºÀÉ®×. ·í¨Ï¥ÎªÌ¨Ï¥Î¶W¹L¨ä³n©Ê®É¶¡«á, ¥¦·|³]©w¤@­Ó®É¶¡­n¨D¨Ï¥ÎªÌ¦b®É¶¡¤§¤º²M°£¨äªÅ¶¡.
quota/help/copy_user.sv.html0100644000567100000120000000112007173731646016155 0ustar jcameronwheel
Kopiera en användares quota
På denna sida kan du kopiera quota på alla filsystem från en användare till en eller flera andra användare. Det finns tre sätt att välja den eller de användare som du vill kopiera till:
Alla användare
Quotan kopieras till alla andra användare på systemet.
Angivna användare
Quotan kopieras till den eller de användare som du har angivit.
Användare som ingår i grupp(er) ...
Quotan kopieras till alla användare som har någon av de angivna grupperna som primär eller sekundär grupp.

quota/help/group_filesys.fr.html0100644000567100000120000000130407060351555017012 0ustar jcameronwheel
Quotas des Groupes
Cette page liste tous les systèmes de fichier sur lesquels des groupes ont des quotas. Vous pouvez cliquer sur un système de fichier de la liste pour éditer son quota ou sélectionner un système de fichier du menu en dessous en cliquant sur Éditer Quotas. Si un système de fichier n'est pas dans la liste c'est qu'il n'a aucune limite du nombre de fichiers ou d'espaces disque qu'un groupe peut occuper sur ce système de fichier.

Cliquer sur le bouton Copier Quotas vous permettra de copier tous les quotas de ce groupe à d'autres groupes. Ceci peut être utile si vous voulez allouer à un nombre de groupes le même espace disque.


quota/help/list_groups.sv.html0100644000567100000120000000240607173731646016527 0ustar jcameronwheel
Filsystemsgrupper
Quotasystemet på Unix räknar ihop alla filer som ägs av en grupp när gruppquota ska kontrolleras. Det spelar ingen roll vilka grupper användaren som äger filerna är med i.

På denna sida visas alla grupper som har quota på något filsystem. Här kan man klicka på ett gruppnamn för att ändra dess quota eller välja en grupp från menyn nedanför listan och trycka på Ändra quota. Om någon grupp inte finns med på listan finns det ingen begränsning för hur många filer eller hur mycket diskutrymme som gruppen får använda.

Nedanför listan finns knappen Ändra tidsintervall. När man klickar på den får man upp ett formulär där man kan ställa in den tid som en grupp får överskrida sin mjuka gräns innan den hindras från att utnyttja mer diskutrymme.

Om man trycker på Kontrollera quota läser systemet igenom hela filsystemet och kontrollerar block- och filutnyttjandet för alla grupper. Detta kan vara nödvändigt att göra om quota har varit avstängt någon tid eller om det just har slagits på för någon grupp.

Längst ned på sidan finns ett formulär för att definiera block- och filquota för nya grupper. Dessa inställningar gäller endast för de grupper som skapas med Webmin-modulen Användare och grupper.


quota/help/intro.fr.html0100644000567100000120000000465007060351555015262 0ustar jcameronwheel
Quotas Disque

Introduction

Les quotas est une méthode pour contrôler combien d'espace disque chaque utilisateur et groupe peut utiliser. Pour chaque système de fichier vous pouvez placer des limites sur combien d'espace disque et combien de fichier chaques usagers peut utiliser. Certains systèmes Unix vous permettent de limiter à tous les membres d'un groupe. Les quotas peuvent seulement être configuré sur un système de fichier Unix local. Les disques NFS monté de d'autres systèmes utilise les quotas du serveur, s'il y en a. Les systèmes de fichier n'appartenant pas à Unix comme MS-DOS ou ISO9660 ne supporte pas les quotas.

Pour chaque usager quatre limites sont imposées :

Limite douce de bloc
Le nombre de blocs alloué avant qu'un message d'avertissement apparaisse
Limite dure de bloc
Nombre maximum de blocs qu'un usager peut occuper.
Limite douce de fichier
Nombre de fichier alloué avant qu'un message d'avertissement apparaisse.
Limite dure de fichier
Nombre maximum de fichiers qu'un usager peut occuper.
Les blocs disque occupe généralement 512 à 4096 bytes de taille, tout dépendant du système d'exploitation. Dans le calcul des quotas, toutes les tailles de fichier sont arrondies au bloc le plus près. Même les fichiers vide utilise au moins un bloc.

Dans les quotas de fichier, même les répertoires, liens symbolique ou fichier normal compte dans le maximum de fichiers qu'un utilisateur peut avoir. Techniquement, le quota de fichier est celui des inodes.

Module de Quotas Disque

La page de ce module affiche la liste des systèmes de fichier que supporte quotas. Si un quota est actif pour un système de fichier vous pouvez cliquer sur le chemin pour afficher les quotas de chaque usager. Sinon, cliquer sur Activer les Quotas pour les activer sur le système de fichier.

Le système d'exploitation Linux n'alloue pas les quotas tant que le système de fichier n'a pas l'option Utilisation de Quotas définit dans le module de Disque et de Système de fichier de Webmin.

Sous la liste des systèmes de fichier se trouve un bouton qui affiche tous les quotas pour un usager sélectionné. Ceci est affiché seulement si au moins un système de fichier supporte les quotas pour un usager. Tout comme les groupes.


quota/help/list_users.fr.html0100644000567100000120000000232007060351555016313 0ustar jcameronwheel
Système de Fichier pour Usagers
Cette page liste tous les usagers qui ont des quotas sur un certain système de fichier. Vous pouvez cliquer sur un nom d'usager pour éditeur ses quotas, ou choisir un usager à partir du menu sous la liste et cliquer sur Éditer Quotas. Si un usager n'est pas dans la liste c'est qu'il n'a aucune limite sur le nombre de fichier ou d'espace disque qu'il peut utiliser.

Sous la liste d'usager se trouve le bouton Éditer le Temps de Grâce. Ceci vous amène à une page pour le temps permit à un usager de dépasser sa limite douce avant d'être empêché d'utiliser plus d'espace disque.

Cliquer le bouton Vérification des Quotas exécute un balayage du système de fichier entier pour calculer l'utilisation de bloc et de fichier par chaque usager. Ceci peut être nécessaire si les quotas ont été interrompus quelque temps ou s'il vienne d'être mit effectif pour un certain usager.

En bas de la page se trouve un formulaire pour configurer le nombre de bloc initial et de fichier pour de nouveaux usagers. Ceux-ci seront seulement appliqués pour des usagers créés avec le module de gestion d'utilisateurs et de groupe de Webmin.


quota/help/edit_user_quota.es.html0100644000567100000120000000034310067401522017305 0ustar jcameronwheel
Editar Cuotas de Usuario
Este formulario te permite editar las cuotas de algún usuario. Se pueden digitar o poner como ilimitado cada uno de los límites de hard y soft respecto a los bloques y archivos.
quota/help/user_filesys.sv.html0100644000567100000120000000111707142735514016661 0ustar jcameronwheel
Quota för användare
På denna sida visas alla filsystem där någon användare har quota. Klicka på ett filsystem i listan för att ändra quota eller välj ett filsystem från menyn nedan och tryck på Ändra quota. Om något filsystem inte finns med på listan är antalet filer och utrymmet som användaren får använda obegränsat på detta filsystem.

Tryck på Kopiera quota för att kopiera quota från denna användare till en eller flera andra användare. Detta är användbart om man vill att många användare ska ha tillgång till lika mycket diskutrymme var.


quota/help/group_grace.fr.html0100644000567100000120000000054207060351555016420 0ustar jcameronwheel
Temps de Grâce du Groupe
Le temps de grâce est le temps qu'un groupe puisse excéder sa limite douce avant de ne plus pouvoir utiliser d'espace disque ou créer plus de fichiers. Une fois qu'un groupe a excédé sa limite douce, il a le temps spécifié pour libérer de l'espace disque sous la limite avant qu'elle ne s'applique.
quota/help/copy_group.zh_TW.Big5.html0100644000567100000120000000054310075155062017516 0ustar jcameronwheel
½Æ»s¸s²Õ°tÃB
³o¤@­¶¥i¥HÅý±z½Æ»s¬Y­Ó¸s²Õ¦bÀɮרt²Î¤W¥þ³¡ªº°tÃB­­¨îµ¹¨ä¥Lªº¸s²Õ. ¦@­p¦³¤TºØ¤è¦¡¥i¥H«ü©w­n½Æ»s¨ìªº¸s²Õ:
¥þ³¡¸s²Õ
°tÃB­­¨î·|½Æ»s¨ì±z¨t²Î¤Wªº¨C¤@­Ó¸s²Õ.
¿ï¾Üªº¸s²Õ
°tÃB­­¨î±N·|½Æ»s¨ì±z©Ò¿ï¾Üªº¸s²Õ.
¥]§t¨Ï¥ÎªÌ...ªº¸s²Õ
°tÃB­­¨î±N·|½Æ»s¨ì©Ò¦³¥]§t©Ò¿ï¾Ü¨Ï¥ÎªÌªº¸s²Õ.

quota/help/user_grace.sv.html0100644000567100000120000000066007142735514016266 0ustar jcameronwheel
Tidsintervall för användare
Här anger du den tid som en användare får överskrida sin mjuka gräns innan den hindras att använda mer diskutrymme och skapa nya filer. När en användare överskrider sin mjuka blockgräns har den det angivna tidsintervallet på sig att minska diskanvändningen, så att gränsen inte överskrids, innan den hindras att använda fler block. Den mjuka filgränsen fungerar på liknande sätt.
quota/help/copy_user.html0100644000567100000120000000102007060351555015515 0ustar jcameronwheel
Copy User Quotas
The page allows you to copy quotas on all filesystems for some user to one or more other users. There are three ways of choosing which users to copy to :
All Users
Quotas will be copied to every other user on your system.
Selected Users
Quotas will be copied to the user or users selected.
Members of Selected Groups
Quotas will be copied to all users who have one of the selected groups as their primary or a secondary group.

quota/help/group_filesys.zh_TW.Big5.html0100644000567100000120000000064510075155062020225 0ustar jcameronwheel
¸s²Õ°tÃB
³o¤@­¶¦C¥X¤F¦bÀɮרt²Î¤W¦³³]©w¸s²Õ°tÃBªº¸Ô²Ó¸ê®Æ. ±z¥i¥H¦b¦Cªí¤¤«ö¤UÀɮרt²Î¦WºÙ¥H½s¿è¥Lªº°tÃB­­¨î; ©Î¦b¤U­±ªºªí³æ¤¤¿ï¾Ü­nÅܧóªºÀɮרt²Î, ¨Ã«ö¤U½s¿èºÏºÐ°tÃB¥HÅܧó¤§. ¦pªGÀɮרt²Î¤£¦b¦Cªí¤¤, ªí¥Ü¸ÓÀɮרt²Î¨Ã¨S¦³³]©wÀɮ׼ƥةΤj¤pªº°tÃB­­¨î³]©w.

«ö¤U½Æ»s°tÃB«ö¶s¥i¥HÅý±z½Æ»s³o­Ó¸s²Õªº°tÃB­­¨îµ¹¨ä¥Lªº¸s²Õ. ·í±z·Q­n¨Ï¨ä¥L¸s²Õ¦³¬Û¦Pªº°tÃB­­¨î®É, ³o­Ó¥\¯à±N·|¦³¥Î.


quota/help/intro.zh_TW.Big5.html0100644000567100000120000000327710075155062016472 0ustar jcameronwheel
ºÏºÐ°tÃB

²¤¶

ºÏºÐ°tÃB¬O¤@¯à±±¨î¨Ï¥ÎªÌ©Î¸s²Õ¨Ï¥ÎºÏºÐªÅ¶¡ªº¤è¦¡. ¹ï©ó¨C¤@­ÓÀɮרt²Î±z³£¥i¥H³]©w¹ï©óºÏºÐªÅ¶¡©ÎÀɮ׼ƪº­­¨î. ¬Y¨Ç Unix ¨t²Î¤]¥i¥HÅý±z¹ï©ó¸s²Õ¤¤ªº©Ò¦³¨Ï¥ÎªÌ³]©w¬Û¦Pªº­­¨î.

ºÏºÐ°tÃB¥u¯à³]©w¦b¥»¦aºÝªº Unix Àɮרt²Î¤W. ±q¨ä¥L¥D¾÷±¾¸üªº NFS Àɮרt²Î¬O¨ü¨ì¦øªA¾¹¥D¾÷ªººÏºÐ°tÃB­­¨î. ¦Ó«D Unix Àɮרt²Î¨Ò¦p MS-DOS ©Î ISO9660 ¨Ã¤£¤ä´©ºÏºÐ°tÃB.

¹ï©ó¨C¤@­Ó¨Ï¥ÎªÌ¥i¥H³]©w¤U¦C¥|ºØ³]©w:

³n©Ê°Ï¶ô¼Æ³]©w
¦bĵ§i°T®§¥X²{«e, ¤¹³\¨Ï¥ÎªººÏºÐªÅ¶¡ (°Ï¶ô¼Æ).
µw©Ê°Ï¶ô¼Æ³]©wt
¨Ï¥ÎªÌ©Ò¯à¨Ï¥Îªº³Ì¤jºÏºÐªÅ¶¡ (°Ï¶ô¼Æ).
³n©ÊÀÉ®×­­¨î
¦bĵ§i°T®§¥X²{«e, ¤¹³\¾Ö¦³ªºÀɮ׼ƥØ.
µw©ÊÀÉ®×­­¨î
¨Ï¥ÎªÌ©Ò¯à¾Ö¦³ªº³Ì¤jÀɮ׼ƥØ.
ºÏºÐ°Ï¶ôªº¤j¤p³q±`¬° 512 ©Î 1024 ¦ì¤¸²Õ, ¨Ì¾Ú±zªº§@·~¨t²Î¦Ó¤£¦P. ·í­pºâ°tÃB­­¨î®É, ©Ò¦³ªºÀɮפj¤p³£·|¶i¦ì¨ì³Ì±µªñªº°Ï¶ô¼Æ. ©Ò¥H§Y¨Ï¬OªÅÀɮפ]·|¨Ï¥Î¤@­Ó°Ï¶ô.

¹ï©óÀɮתº°tÃB, ¨Ï¥ÎªÌ©Ò¾Ö¦³ªº¨C¤@­Ó¥Ø¿ý, ³]³Æ, ²Å¸¹³s±µ©Î¤@¯ëªºÀɮ׳£·|³Q²Ö¥[¨ì­p¼Æ¤§¤¤. §Þ³N¤W¦Ó¨¥, ÀÉ®×°tÃB¹ê»Ú¤W­­¨î©Ò¨Ï¥Î inode ªº¼Æ¥Ø.

ºÏºÐ°tÃB¼Ò²Õ

³o­Ó¼Ò²Õªº¥D­nµe­±Åã¥Ü¥i¥H¤ä´©°tÃB­­¨îªº¥»¦aºÝÀɮרt²Î. ¦pªGÀɮרt²ÎªººÏºÐ°tÃB¤w¸g±Ò°Ê, ±z¥i¥H«ö¤U¥¦ªº¸ô®|¥HÅã¥Ü¨ä¤W¨C¤@­Ó¨Ï¥ÎªÌªº°tÃB­­¨î; ¦pªG©|¥¼±Ò°Ê, ±z¥i¥H«ö¤U±Ò°ÊºÏºÐ°tÃBªº«ö¶s¥H±Ò°ÊÀɮרt²Î¤W­±ªº°tÃB­­¨î.

¹ï©ó Linux §@·~¨t²Î¦Ó¨¥, °£«D±z¦³¦bºÏºÐ»Pºô¸ôÀɮרt²Î¼Ò²Õ¤¤³]©w¸ÓÀɮרt²Îªº¨Ï¥ÎºÏºÐ°tÃB¿ï¶µ, §_«h±z±N¤£¯à±Ò°ÊºÏºÐ°tÃB¥\¯à. ¦pªG±z¨S¦³Àɮרt²Î¦³³]©w³o­Ó¿ï¶µ, ³o¤@­¶±N¤£·|¦C¥X¥ô¦óÀɮרt²Î.

¦bÀɮרt²Î¦Cªí¤U­±ªº«ö¶s¬O¥Î¥HÅã¥Ü¿ï¾Ü¨Ï¥ÎªÌªº¥þ³¡°tÃB­­¨î. ³o±N¥u·|Åã¥Ü¦Ü¤Ö¦³³]©w¤@­ÓÀɮרt²Î°tÃB­­¨îªº¨Ï¥ÎªÌ. ¬Û¦üªº, ¦pªG¦³Àɮרt²Î³]©w¸s²Õ°tÃB, ±N·|¦³¤@­Ó«ö¶s¥i¥H¿¤¥«©Ò¿ï¾Ü¸s²Õ°tÃB­­¨îªº«ö¶s.


quota/help/list_groups.html0100644000567100000120000000227007060351555016067 0ustar jcameronwheel
Filesystem Groups
The Unix quota system counts all files owned by a group towards the quota for that group. The actual groups in which the user who owns the file is in does not matter.

This page lists all groups who have quotas on some filesystem. You can click on a group name to edit their quota, or select a group from the menu below the list and click on Edit Quota. If a group is not on the list there is no limit on the number of files or the amount of disk space it may use.

Beneath the list of groups is the Edit Grace Times button. This takes you to a form for editing the amount of time a group is allowed to exceed his soft limit before being prevented from using any more disk space.

Clicking the Check Quotas button performs a scan of the entire filesystem to bring the block and file usage by each group up to date. This may be necessary is quotas have been disabled for some time, or if they have just been enabled for some group.

At the bottom of the page is a form for setting the initial block and file quotas for new groups. These will only be applied for groups created with the Webmin Users and Groups module.


quota/help/list_users.zh_TW.Big5.html0100644000567100000120000000124210075155062017521 0ustar jcameronwheel
Àɮרt²Î¨Ï¥ÎªÌ
³o¤@­¶¦C¥X©Ò¦³¦bÀɮרt²Î¤W¦³³]©wºÏºÐ°tÃBªº¨Ï¥ÎªÌ. ±z¥i¥H«ö¤U¨Ï¥ÎªÌ¦WºÙ¥H½s¨ä¥Lªº°tÃB­­¨î, ©ÎªÌ±q¦Cªí¤U­±¿ï¾Ü¨Ï¥ÎªÌ¨Ã«ö¤U½s¿è°tÃB. ¦pªG¨Ï¥ÎªÌ¤£¦b¦Cªí¤¤, ³oªí¥Ü¸Ó¨Ï¥ÎªÌ¦bÀɮרt²Î¤W¨S¦³¥ô¦óªº°tÃB­­¨î.

¨Ï¥ÎªÌªº¨Ï¥Î¼u©Ê¥i¥H§Q¥Î½s¿è¼u©Ê®É¶¡«ö¶s±±¨î. ³o­Ó±N¥i¥HÅý±z½s¿è¨Ï¥ÎªÌ¥i¥H¶W¹L¨ä³n©Ê­­¨î¨ÃÄ~Äò¨ú±oªÅ¶¡ªº®É¶¡­­¨î.

«ö¤UÀˬd°tÃB«ö¶s¥H±½´yÀɮרt²Î¤W¨Ï¥ÎªÌ©Ò¨Ï¥ÎªºªÅ¶¡»P¼Æ¥Ø¨Ã§ó·s¦Cªí. ¦bºÏºÐ°tÃB´¿¸g³QÃö³¬ªºª¬ªp¤U, ©Î­è³]©w¨Ï¥ÎªÌªº°tÃB­­¨î¤§«á. ³o­Ó°Ê§@±N¬O¥²­nªº.

¦b¥»­¶©³ºÝªºªí³æ¥i¥H³]©w·s¨Ï¥ÎªÌªº¹w³]°Ï¶ô»PÀɮ׼ƥس]©w. ³o¥u¯à®M¥Î¦b§Q¥Î Webmin ¨Ï¥ÎªÌ»P¸s²Õ¼Ò²Õ©Ò«Ø¥ßªº·s¨Ï¥ÎªÌ¤W.


quota/help/edit_group_quota.pl.html0100664000567100000120000000036007166225203017476 0ustar jcameronwheel
Zmieñ quota dla grupy
Ten formularz pozwala zmieniæ ustawienia quota dla pewnej grupy. Ka¿dy z limitów: twardy i miêkki, dla bloków jak i plików mo¿e byæ wprowadzony b±d¼ ustawiony jako nieograniczony.
quota/help/edit_user_quota.pl.html0100664000567100000120000000037507166225203017326 0ustar jcameronwheel
Zmieñ quota dla u¿ytkownika
Ten formularz pozwala zmieniæ ustawienia quota dla pewnego u¿ytkownika. Ka¿dy z limitów: twardy i miêkki, dla bloków jak i plików mo¿e byæ wprowadzony b±d¼ ustawiony jako nieograniczony.
quota/help/copy_user.pl.html0100664000567100000120000000125207166225203016135 0ustar jcameronwheel
Kopiuj quota dla u¿ytkowników
Ta strona pozwala ci na skopiowanie ustawieñ quota na wszystkich systemach plików z pewnego u¿ytkownika do jednego lub kilku innych u¿ytkowników. Istniej± trzy sposoby okre¶lenia, do jakich grup kopiowaæ :
Do wszystkich u¿ytkowników
Quota zostanie skopiowane do wszystkich u¿ytkowników w systemie.
Do Wybranych u¿ytkowników
Quota zostanie skopiowane do zaznaczonego u¿ytkownika lub u¿ytkowników.
Do cz³onków zaznaczonych grup
Quota zostanie skopiowane do wszystkich u¿ytkowników, dla których jedna znbsp;zaznaczonych grup jest grup± podstawow± lub dodatkow±.

quota/help/list_groups.pl.html0100664000567100000120000000254707166225203016507 0ustar jcameronwheel
Grupy systemu plików
Uniksowy system quota system zlicza wszystkie pliki nale¿±ce do danej grupy okre¶laj±c quota dla tej grupy. Bie¿±ca grupa, do której nale¿y u¿ytkownik bêd±cy w³a¶cicielem pliku nie ma znaczenia.

Ta strona zawiera listê wszystkich grup, które maj± quota na pewnym systemie plików. Aby zmieniæ ich quota mo¿esz nacisn±æ nazwê grupy lub wybraæ grupê z menu poni¿ej listy i nacisn±æ Zmieñ quota. Je¶li grupy nie ma na li¶cie, nie ma ona ograniczeñ na liczbê plików ani na rozmiar przestrzeni dyskowej, której mo¿e u¿ywaæ.

Poni¿ej listy grup znajduje siê przycisk Zmieñ czasy ulgi. Prowadzi on do formularza pozwalaj±cego na zmiany okresów czasu, przez jakie wolno grupie przekraczaæ miêkki limit, zanim zostanie jej uniemo¿liwione zaalokowanie dodatkowej przestrzeni dyskowej.

Naciskaj±c przycisk Sprawd¼ quota powoduje przejrzenie ca³ego systemu plików aby okre¶liæ aktualn± ilo¶æ bloków i plików u¿ywanych przez ka¿d± z grup. Mo¿e byc to niezbêdne, je¶li quota by³o wy³±czone przez pewien czas lub je¶li zosta³o w³a¶nie w³±czone dla pewnej grupy.

Na dole strony znajduje siê formularz do ustawiania pocz±tkowych limitów quota dla bloków i plików dla nowych grup. Te warto¶ci s± stosowane jedynie w przypadku tworzenia grup przez modu³ U¿ytkownicy i Grupy Webmina.


quota/help/user_filesys.pl.html0100664000567100000120000000135107166225203016641 0ustar jcameronwheel
Quota dla u¿ytkowników
Na tej stronie zobaczysz liste systemów plików, na których ustawiono quota dla pewnego u¿ytkownika. Mo¿esz nacisn±æ na system plików z listy, aby zmieniæ na nim ustawienia quota lub wybraæ system plików z menu poni¿ej i nacisn±æ Zmieñ quota. Je¶li jaki¶ system plików nie znajduje siê na li¶cie, to nie ma na nim ograniczeñ na liczbe plików ani na rozmiar przestrzeni dyskowej zajêtej przez tego u¿ytkownika.

Naciskaj±c przycisk Kopiuj quota mo¿esz skopiowaæ wszystkie limity ustawione dla tego u¿ytkownika do jednego lub kilku innych u¿ytkowników. Mo¿e to byæ u¿yteczne je¿eli, chcesz przydzieliæ kilku u¿ytkownikom taki sam rozmiar przestrzeni dyskowej.


quota/help/user_grace.pl.html0100664000567100000120000000104107166225203016240 0ustar jcameronwheel
Czasy ulgi dla u¿ytkownika
Czasy ulgi s± okresem czasu, na jaki u¿ytkownik mo¿e przekroczyæ miêkki limit quota, zanim zostan± zablokowane mo¿liwo¶ci u¿ycia jakiejkolwiek dodatkowej przestrzeni dyskowej i tworzenia nowych plików. Od chwili, gdy u¿ytkownik przekroczy miêkki limit, ma on okre¶lony czas na to, by zmniejszyæ rozmiar zajmowanej przestrzeni dyskowej poni¿ej limitu. Je¶li tego nie uczyni zostanie zablokowana mo¿liwo¶æ u¿ycia przez niego nowych bloków. To samo stosuje sie do miêkkiego limitu dla plików.
quota/help/copy_group.pl.html0100664000567100000120000000107107166225203016312 0ustar jcameronwheel
Kopiuj quota dla grupy
Ta strona pozwala ci na skopiowanie ustawieñ quota na wszystkich systemach plików z pewnej grupy do jednej lub kilku innych grup. Istniej± trzy sposoby okre¶lenia, do jakich grup kopiowaæ :
Do wszystkich grup
Quota zostanie skopiowane do wszystkich grup w systemie.
Do wybranych grup
Quota zostanie skopiowane do zaznaczonej grupy lub grup.
Do grup zawieraj±cych u¿ytkowników
Quota zostanie skopiowane do grup, do których nale¿± zaznaczeni u¿ytkownicy.

quota/help/list_users.pl.html0100664000567100000120000000235607166225203016327 0ustar jcameronwheel
U¿ytkownicy systemu plików
Ta strona zawiera listê wszystkich u¿ytkowników, którzy maj± quota na pewnym systemie plików. Aby zmieniæ ich quota mo¿esz nacisn±æ nazwê u¿ytkownika lub wybraæ u¿ytkownika z menu poni¿ej listy i nacisn±æ Zmieñ quota. Je¶li u¿ytkownika nie ma na li¶cie, nie ma on ograniczeñ na liczbê plików ani na rozmiar przestrzeni dyskowej, której mo¿e u¿ywaæ.

Poni¿ej listy u¿ytkowników znajduje siê przycisk Zmieñ czasy ulgi. Prowadzi on do formularza pozwalaj±cego na zmiany okresów czasu, przez jakie wolno u¿ytkownikowi przekraczaæ miêkki limit, zanim zostanie mu uniemo¿liwione zaalokowanie dodatkowej przestrzeni dyskowej.

Naciskaj±c przycisk Sprawd¼ quota powoduje przejrzenie ca³ego systemu plików aby okre¶liæ aktualn± ilo¶æ bloków i plików u¿ywanych przez ka¿dego z u¿ytkowników. Mo¿e byc to niezbêdne, je¶li quota by³o wy³±czone przez pewien czas lub je¶li zosta³o w³a¶nie w³±czone dla pewnego u¿ytkownika.

Na dole strony znajduje siê formularz do ustawiania pocz±tkowych limitów quota dla bloków i plików dla nowych u¿ytkowników. Te warto¶ci s± stosowane jedynie w przypadku tworzenia u¿ytkowników przez modu³ U¿ytkownicy i grupy Webmina.


quota/help/group_filesys.pl.html0100664000567100000120000000127407166225203017023 0ustar jcameronwheel
Quota dla grup
Na tej stronie zobaczysz liste systemów plików, na których ustawiono quota dla pewnej grupy. Mo¿esz nacisn±æ na system plików z listy, aby zmieniæ na nim ustawienia quota lub wybraæ system plików z menu poni¿ej i nacisn±æ Zmieñ quota. Je¶li jaki¶ system plików nie znajduje siê na li¶cie, to nie ma na nim ograniczeñ na liczbe plików ani na rozmiar przestrzeni dyskowej zajêtej przez tê grupê.

Naciskaj±c przycisk Kopiuj quota mo¿esz skopiowaæ wszystkie limity ustawione dla tej grupy do jednej lub kilku innych grup. Mo¿e to byæ u¿yteczne je¿eli, chcesz przydzieliæ kilku grupom taki sam rozmiar przestrzeni dyskowej.


quota/help/intro.pl.html0100664000567100000120000000551507166225203015266 0ustar jcameronwheel
Quota dla dysków

Wprowadzenie

Quota jest metod± ograniczania rozmiaru przestrzeni dyskowej, która mo¿e byæ wykorzystana przez poszczególnych u¿ytkowników i grupy. Dla ka¿dego systemu plików mo¿esz ustawiæ limity rozmiaru przestrzeni dyskowej oraz ilo¶ci plików, które dany u¿ytkownik mo¿e wykorzystaæ. Niektóre systemy uniksowe mog± równie¿ pozwalaæ na ograniczenie przestrzeni dyskowej i plików u¿ywanych przez wszystkich cz³onków pewnych grup.

Quota moga byæ ustawione wy³±cznie na lokalnych uniksowych systemach plików. Systemy plików montowane przez NFS z innych systemów u¿ywaj± quota z serwera, je¶li takie ustawiono. Nieuiniksowe systemy plików, takie jak MS-DOS czy ISO9660 nie wspomagaj± quota w ogóle.

Dla ka¿dego u¿ytkownika narzucone s± cztery limity :

Miêkki limit bloków
Liczba bloków na dysku, po zajêciu której wy¶wietlane jest ostrze¿enie.
Twardy limit bloków
Maksymalna liczba bloków na dysku, które mog± byæ zajête przez pliki u¿ytkownika.
Miêkki limit plików
Liczba plików, po utworzeniu której wy¶wietlane jest ostrze¿enie.
Twardy limit plików
Maksymalna liczba plików, które u¿ytkownik mo¿e posiadaæ.
Bloki na dysku s± zazwyczaj 512 lub 1024 bajtowe, zale¿nie od systemu operacyjnego. W czasie naliczania quota wszystkie rozmiary plików s± zaokr±glane w górê do najbli¿szego bloku. Wobec czego nawet pusty plik zu¿ywa co najmniej jeden blok.

W przypadku qouta dla plików zliczany jest ka¿dy katalog, urz±dzenie, dowi±zanie symboliczne oraz zwyk³y plik. Ich ³±czna ilo¶æ nie mo¿e przekroczyæ maksymalnej liczby plików, które u¿ytkownik mo¿e posiadaæ. Technicznie, qouta dla plików jest w rzeczywisto¶ci quota dla i-nodów.

Modu³ Quota dla dysków

Strona g³ówna tego modu³u zawiera listê lokalnych systemów plików, które mog± wspomagaæ quota. Je¶li quota jest aktualnie w³±czone dla danego systemu plików, mo¿esz nacisn±æ na jego ¶cie¿ce, aby wy¶wietliæ quota dla poszczególnych u¿ytkowników. Je¶li nie, nacisniêcie W³±czone quota uaktywni quota dla tego systemu plików.

System operacyjny Linux nie pozwala na w³±czenie quota, je¶li dla systemu plików nie ustawiono opcji U¿ywaj quota w module Dyski i systemy plików. Je¶li ¿aden z twoich systemów plików nie ma ustawionej tej opcji nic nie zostanie wy¶wietlone na g³ównej stronie.

Pod list± systemów plikowych znajduje sie przycisk do wy¶wietlania wszystkich quota dla wybranego u¿ytkownika. Bêdzie on widoczny tylko, je¶li co najmniej jeden system plików ma w³±czone quota dla u¿ytkowników. Podobnie, je¶li co najmniej jeden system plików ma w³±czone quota dla grup, pojawi siê przycisk do wy¶wietlania wszystkich quota dla wybranej grupy.


quota/help/group_grace.pl.html0100664000567100000120000000102007166225203016413 0ustar jcameronwheel
Czasy ulgi dla grupy
Czasy ulgi s± okresem czasu, na jaki grupa mo¿e przekroczyæ miêkki limit quota, zanim zostan± zablokowane mo¿liwo¶ci u¿ycia jakiejkolwiek dodatkowej przestrzeni dyskowej i tworzenia nowych plików. Od chwili, gdy grupa przekroczy miêkki limit, ma ona okre¶lony czas na to, by zmniejszyæ rozmiar zajmowanej przestrzeni dyskowej poni¿ej limitu. Je¶li tego nie uczyni zostanie zablokowana mo¿liwo¶æ u¿ycia przez ni± nowych bloków. To samo stosuje sie do miêkkiego limitu dla plików.
quota/help/copy_group.ca.html0100644000567100000120000000106210067401512016251 0ustar jcameronwheel
Copia Quotes de Grup
Aquesta pàgina permet copiar les quotes quotes de tots els sistemes de fitxers d'un grup a un o més grups. Hi tres maneres de triar a quins grups s'han de copiar:
Tots els grups
Les quotes es copiaran a cada grup del sistema.
Grups seleccionats
Les quotes es copiaran al grup o grup seleccionats.
Grups que contenen els usuaris
Les quotes es copiaran a tots els grups tals que tinguin per membre qualsevol dels usuaris seleccionats.

quota/help/copy_user.ca.html0100644000567100000120000000111510067401512016072 0ustar jcameronwheel
Copia Quotes d'Usuari
Aquesta pàgina permet copiar les quotes de tots els sistemes de fitxers d'un usuari a un o més usuaris. Hi tres maneres de triar a quins usuaris s'han de copiar:
Tots els usuaris
Les quotes es copiaran a cada usuari del sistema.
Grups seleccionats
Les quotes es copiaran al usuari o usuari seleccionats.
Membres dels grups seleccionats
Les quotes es copiaran a tots els usuaris tals que tinguin per grup primari o secundari qualsevol dels grups seleccionats.

quota/help/edit_group_quota.ca.html0100644000567100000120000000032710067401512017440 0ustar jcameronwheel
Edició de Quota de Grup
Aquest formulari permet editar les quotes d'un grup. Es poden introduir tant els límits laxos com estrictes de blocs i fitxers, o bé establir-los com a il·limitats.
quota/help/edit_user_quota.ca.html0100644000567100000120000000033510067401512017261 0ustar jcameronwheel
Edició de Quota d'Usuari
Aquest formulari permet editar les quotes d'un usuari. Es poden introduir tant els límits de laxos com estrictes de blocs i fitxers, o bé establir-los com a il·limitats.
quota/help/group_filesys.ca.html0100644000567100000120000000127510067401512016763 0ustar jcameronwheel
Quotes de Grup
Aquesta pàgina llista tots els sistemes de fitxers allà on hi ha algun grup que hi tingui quotes. Pots fer clic sobre un sistema de fitxers de la llista per editar-ne la quota, o bé selecciona un sistema de fitxers del menú de sota i fes clic a Edita la Quota. Si un sistema de fitxers no és a la llista, llavors és que no té cap límit respecte el nombre de fitxers o la quantitat d'espai que el grup pot ocupar en aquest sistema de fitxers.

Fer clic sobre el botó Copia les Quotes permet copiar totes les quotes d'aquest grup a un o més grups. Això pot ser útil si vols assignar la mateixa quantitat d'espai en disc a més d'un grup.


quota/help/group_grace.ca.html0100644000567100000120000000066710067401512016372 0ustar jcameronwheel
Períodes de Gràcia dels Grups
Els períodes de gràcia són el període de temps durant el qual un grup pot excedir el seu límit abans d'impedir-li de fer servir més espai o crear més fitxers. Un cop un grup excedeix el seu límit lax de blocs, té el temps especificat per reduir el seu espai utilitzat per sota del límit abans que se li impedeixi fer servir més blocs. S'aplica el mateix per al límit lax de fitxers.
quota/help/intro.ca.html0100644000567100000120000000516410067401512015225 0ustar jcameronwheel
Quotes de Disc

Introducció

Les quotes són un sistema per controlar quant disc poden fer servir els usuaris i els grups. Per cada sistema de fitxers, pots establir límits sobre quant espai de disc i quants fitxers pot tenir un usuari. Alguns sistemes Unix també et deixen limitar l'espai i els fitxers utilitzats pels membres d'un grup.

Només es poden establir quotes per als sistemes de fitxers Unix locals. Els sistemes de fitxers NFS muntats des d'altres sistemes fan servir les quotes establertes al servidor (si n'hi ha). Els sistemes de fitxers no Unix (com per exemple, MS-DOS o ISO9660) no suporten quotes.

Per cada usuari es poden imposar quatre límits:

Límit lax de blocs
El nombre de blocs de disc permesos abans de mostrar un missatge d'avís.
Límit estricte de blocs
El nombre màxim de blocs que un usuari pot ocupar.
Límit lax de fitxers
El nombre de fitxers permesos abans de mostrar un missatge d'avís.
Límit estricte de fitxers
El nombre màxim de fitxers que un usuari pot tenir.
Els blocs de disc tenen una mida típica de 512 o 1024 bytes, depenen del sistema operatiu. En calcular les quotes, totes les mides de fitxers s'arrodoneixen al bloc més proper. Així doncs, un fitxer buit ocupa al menys 1 bloc.

Pel que fa a les quotes de fitxers, cada directori, dispositiu, enllaç simbòlic o fitxer normal, compta en el límit màxim de fitxers que un usuari pot tenir. Tècnicament, la quota de fitxers és una quota sobre els inodes.

El Mòdul de Quotes de Disc

La pàgina principal d'aquest mòdul mostra una llista de sistemes de fitxers locals que poden suportar quotes. SI hi ha quotes activades per a un sistema de fitxers, llavors pots fer clic sobre el seu camí per veure les quotes de cada usuari. Si no, fent clic sobre Activa les Quotes activarà les quotes d'aquest sistema de fitxers.

El sistema Operatiu Linux no permet activar les quotes si no és que el sistema de fitxers té l'opció Fes servir Quotes activada al mòdul de Discs i Sistemes de Fitxers. Si cap dels teus sistemes de fitxers té aquesta opció activada, no en sortirà cap de llistat a la pàgina principal.

Sota la llista de sistemes de fitxers hi ha un botó per veure totes les quotes d'un usuari seleccionat. Aquest només es mostrarà si hi ha almenys un sistema de fitxers amb quotes d'usuari activades. Igualment, si hi ha almenys un sistema de fitxers amb quotes de grup activades, hi haurà un botó per veure totes les quotes d'un grup seleccionat.


quota/help/list_groups.ca.html0100644000567100000120000000247210067401512016443 0ustar jcameronwheel
Grups del Sistema de Fitxers
El sistema de quotes de Unix compta tots els fitxers que són propietat d'un grup per determinar la quota del grup. Els grups als quals de fet pertany l'usuari propietari del fitxer no importa.

Aquesta pàgina llista tots els grups que tenen quotes en algun sistema de fitxers. Pots fer clic sobre el nom del grup per editar-ne la quota, o bé seleccionar un grup del menú sota la llista i fer clic sobre Edita la Quota. Si un grup no és a la llista, llavors no hi ha cap límit en el nombre de fitxers ni l'espai en disc que pot fer servir.

Sota la llista de grups hi ha el botó Edita els Períodes de Gràcia. Aquest porta a un formulari per editar el temps que un grup té permès d'ultrapassar el seu límit lax abans d'impedir-li fer servir més espai.

Fent clic al botó Comprova les Quotes, es realitza una comprovació de tot el sistema de fitxers per actualitzar l'ús de blocs i fitxers per part de cada grup. Això pot caldre si les quotes han estat desactivades durant algun temps, o si només han estat activades per a algun grup.

Al peu de la pàgina hi ha un formulari per establir les quotes inicials de blocs i fitxers per als grups nous. Aquestes només s'aplicaran a aquells grups creats amb el mòdul d'Usuaris i Grups de Webmin.


quota/help/list_users.ca.html0100644000567100000120000000221210067401512016255 0ustar jcameronwheel
Usuaris del Sistema de Fitxers
Aquesta pàgina llista tots els usuaris que tenen quotes en algun sistema de fitxers. Pots fer clic sobre el nom del usuari per editar-ne la quota, o bé seleccionar un usuari del menú sota la llista i fer clic sobre Edita la Quota. Si un usuari no és a la llista, llavors no hi ha cap límit en el nombre de fitxers ni l'espai en disc que pot fer servir.

Sota la llista de usuaris hi ha el botó Edita els Períodes de Gràcia. Aquest porta a un formulari per editar el temps que un usuari té permès d'ultrapassar el seu límit lax abans d'impedir-li fer servir més espai.

Fent clic al botó Comprova les Quotes, es realitza una comprovació de tot el sistema de fitxers per actualitzar l'ús de blocs i fitxers per part de cada usuari. Això pot caldre si les quotes han estat desactivades durant algun temps, o si només han estat activades per a algun usuari.

Al peu de la pàgina hi ha un formulari per establir les quotes inicials de blocs i fitxers per als usuaris nous. Aquestes només s'aplicaran a aquells usuaris creats amb el mòdul d'Usuaris i Grups de Webmin.


quota/help/user_filesys.ca.html0100644000567100000120000000130710067401512016601 0ustar jcameronwheel
Quotes d'Usuari
Aquesta pàgina llista tots els sistemes de fitxers allà on hi ha algun usuari que hi tingui quotes. Pots fer clic sobre un sistema de fitxers de la llista per editar-ne la quota, o bé selecciona un sistema de fitxers del menú de sota i fes clic a Edita la Quota. Si un sistema de fitxers no és a la llista, llavors és que no té cap límit respecte el nombre de fitxers o la quantitat d'espai que l'usuari pot ocupar en aquest sistema de fitxers.

Fer clic sobre el botó Copia les Quotes permet copiar totes les quotes d'aquest usuari a un o més usuaris. Això pot ser útil si vols assignar la mateixa quantitat d'espai en disc a més d'un usuari.


quota/help/user_grace.ca.html0100644000567100000120000000067510067401512016213 0ustar jcameronwheel
Períodes de Gràcia dels Usuaris
Els períodes de gràcia són el període de temps durant el qual un usuari pot excedir el seu límit abans d'impedir-li de fer servir més espai o crear més fitxers. Un cop un usuari excedeix el seu límit lax de blocs, té el temps especificat per reduir el seu espai utilitzat per sota del límit abans que se li impedeixi fer servir més blocs. S'aplica el mateix per al límit lax de fitxers.
quota/help/copy_group.nl.html0100644000567100000120000000104607432705646016322 0ustar jcameronwheel
Kopieer Groepsquota
Met deze pagina kunt u de quota in alle bestandssystemen voor een groep kopiëren naar één of meer andere groepen. Er zijn drie manieren om te bepalen naar welke groepen dit moet gebeuren:
Alle Groepen
Quota worden gekopieerd naar alle groepen in uw systeem.
Bepaalde Groepen
Quota worden gekopieerd naar de geselecteerde groep(en).
Groepen met Gebruikers
Quota worden gekopieerd naar die groepen waarvan de geselecteerde gebruikers lid zijn.

quota/help/copy_user.nl.html0100644000567100000120000000113407432705646016142 0ustar jcameronwheel
Kopieer Gebruikersquotum
Met deze pagina kunt u de quota in alle bestandssystemen voor een gebruiker kopiëren naar één of meer andere gebruikers. Er zijn drie manieren om te bepalen naar welke gebruikers dit moet gebeuren:
Alle Gebruikers
Quota worden gekopieerd naar alle gebruikers in uw systeem.
Bepaalde Gebruikers
Quota worden gekopieerd naar de geselecteerde gebruiker(s).
Leden van Groepen
Quota worden gekopieerd naar de gebruikers die de geselecteerde groep(en) als primaire of als secundaire groep hebben.

quota/help/edit_group_quota.nl.html0100644000567100000120000000033307432705646017504 0ustar jcameronwheel
Wijzigen Groepsquotum
Met dit formulier kunt u het quotum van een groep veranderen. De harde en zachte limieten van zowel blokken als bestanden kunnen worden opgegeven of op 'onbeperkt' gezet.
quota/help/edit_user_quota.nl.html0100644000567100000120000000033007432705646017323 0ustar jcameronwheel
Wijzig Quotum
Met dit formulier kunt u het quotum van een gebruiker veranderen. De harde en zachte limieten van zowel blokken als bestanden kunnen worden opgegeven of op 'onbeperkt' gezet.
quota/help/group_filesys.nl.html0100644000567100000120000000133507432705646017027 0ustar jcameronwheel
Groepsquota
Deze pagina geeft een overzicht van alle bestandssystemen, waar deze groep een quotum heeft. U kunt op een bestandssysteem in de lijst klikken om het quotum daar te veranderen of een bestandssysteem kiezen uit het onderstaande menu en klikken op Quotum Wijzigen. Als een bestandssysteem niet in de lijst voorkomt, is er geen beperking van kracht op het aantal bestanden en de hoeveelheid ruimte die de groep in dat bestandssysteem mag gebruiken.

Door te klikken op Kopieer Groepsquota kunt u alle quota van deze groep kopiëren naar één of meer andere groepen. Dit kan handig zijn als u voor een aantal groepen dezelfde hoeveelheid harddisk ruimte wilt toestaan.


quota/help/group_grace.nl.html0100644000567100000120000000063407432705646016433 0ustar jcameronwheel
Groeps Waarschuwingstijd
Waarschuwingstijd is de hoeveelheid tijd dat een groep de zachte limiet mag overschrijden voordat het gebruik van méér harddisk ruimte of het aanmaken van méér bestanden wordt geblokkeerd. Als een groep de zachte limiet overschrijdt, heeft de groep de opgegeven hoeveelheid tijd om het gebruik terug te brengen. Dit geldt zowel voor blok- als bestandslimieten.
quota/help/intro.nl.html0100644000567100000120000000545607432705646015300 0ustar jcameronwheel
Disk Quota

Introductie

Quota zijn een manier om het gebruik van harddisk ruimte door gebruikers en groepen in de hand te houden. Voor elk bestandssysteem kunt u beperkingen aanbrengen op het gebruik van harddisk ruimte en het aantal bestanden. Sommige Unix systemen geven u ook te mogelijkheid om de ruimte en bestanden van de gezamenlijke leden van een groep ('de groep') te beperken.

Quota kunnen alleen worden opgezet voor lokale Unix bestandssystemen. NFS bestandssystemen die vanaf andere systemen worden gemount, zijn onderhevig aan de quota van hun eigen server (voor zover van toepassing). Niet-Unix bestandssystemen zoals MS-DOS of ISO9660 ondersteunen geen quota.

Voor elke gebruiker zijn vier limieten van kracht:

Zachte bloklimiet
Het aantal blokken dat mag worden gebruikt vóór er een waarschuwing wordt gegeven.
Harde bloklimiet
Het maximum aantal blokken dat de bestanden van een gebruiker mogen gebruiken.
Zachte bestandslimiet
Het aantal bestanden dat mag worden gebruikt vóórdat een waarschuwing wordt gegeven.
Harde bestandslimiet
Het maximum aantal bestanden dat een gebruiker mag bezitten.
Disk blokken zijn normaliter 512 of 1024 bytes groot, afhankelijk van het besturingssysteem. Bij het berekenen van quota worden alle bestanden naar boven afgerond op gehele blokken. Daarom telt ook een leeg bestand voor één blok.

Ten behoeve van bestandsquota wordt iedere map, device, symbolische verwijzing of normaal bestand meegeteld om het maximum aantal bestanden dat een gebruiker mag bezitten vast te stellen. Technisch gesproken is het bestandsquotum een quota in inodes.

Het Disk Quota Module

De hoofdpagina van dit module toont een lijst met lokale bestandssystemen die quota ondersteunen. Als Quota zijn aangezet voor een bestandssysteem, kunt u op het pad ervan klikken om de quota van de individuele gebruikers te tonen. Als quota niet aangezet zijn, kunt u klikken op Quota Aanzetten om quota voor dit bestandssysteem te activeren. In het Linux besturingssysteem kunnen quota alleen worden aangezet als het bestandssysteem de Use Quotas optie heeft in het Disks en Filesystems module. Als geen enkel bestandssysteem deze optie heeft, zal er geen bestandssysteem op de hoofdpagina worden getoond.

Onder de lijst met bestandssystemen vindt u een knop om het quotum van één bepaalde gebruiker te tonen en eventueel te wijzigen. Deze wordt alleen getoond als tenminste één bestandssysteem de gebruikersquota optie actief heeft. Als tenminste één bestandssysteem de groepsquota optie actief heeft, zal een knop worden getoond waarmee het quotum van een bepaalde groep kan worden getoond en desgewenst gewijzigd.


quota/help/list_groups.nl.html0100644000567100000120000000302507432705646016505 0ustar jcameronwheel Het Unix quota systeem telt alle bestanden van een groep samen en zet die af tegen het quotum voor die groep. De huidige primaire groep van een gebruiker doet daarbij niet terzake: het gaat om de groep waarin het bestand is geregistreerd.

Deze pagina geeft een lijst van alle groepen die quota hebben op enig bestandsstysteem. U kunt klikken op de groepsnaam om het quotum van die groep te wijzigen of een groep selecteren uit het menu onderaan de lijst en klikken op Wijzig Quotum. Als het bestandssysteem niet in de lijst voorkomt, is er geen beperking van kracht op het aantal bestanden en de hoeveelheid ruimte die de groep in dat bestandssysteem mag gebruiken.

Onderaan de groepslijst vindt u een knop Wijzig Waarschuwingstijd. Deze opent een pagina waarop u wijzigen kunt aanbrengen in de tijd dat het een groep is toegestaan de zachte limieten te overschrijden voordat het gebruik van meer disk ruimte geheel wordt verhinderd.

Door te klikken op de Controleer Quota knop, laat u het systeem het gehele bestandssysteem doorlopen om het gebruik van blokken en bestanden bij te werken. Dit kan nodig zijn als de quota functie enige tijd buiten bedrijf is geweest of voor een bepaalde groep was uitgeschakeld.

Onderaan de pagina vindt u een formulier voor het instellen van de initiële blok- en bestandsquota voor nieuwe groepen. Deze zullen worden toegepast voor groepen die met het Webmin Gebruikers en Groepen module worden aangemaakt.


quota/help/list_users.nl.html0100644000567100000120000000246007432705646016331 0ustar jcameronwheel
Bestandssysteem Gebruikers
Deze pagina geeft een lijst van alle gebruikers die een quotum hebben op enig bestandsstysteem. U kunt klikken op de gebruikersnaam om het quotum van die gebruiker te wijzigen of een gebruiker selecteren uit het menu onderaan de lijst en klikken op Wijzig Quotum. Als een gebruiker niet in de lijst voorkomt, is er geen beperking van kracht op het aantal bestanden en de hoeveelheid ruimte die de gebruiker mag gebruiken.

Onderaan de gebruikerslijst vindt u een knop Wijzig Waarschuwingstijd. Deze opent een pagina waarop u wijzigen kunt aanbrengen in de tijd dat het een gebruiker is toegestaan de zachte limieten te overschrijden voordat het gebruik van meer disk ruimte geheel wordt verhinderd.

Door te klikken op de Controleer Quota knop, laat u het systeem het gehele bestandssysteem doorlopen om het gebruik van blokken en bestanden bij te werken. Dit kan nodig zijn als de quota functie enige tijd buiten bedrijf is geweest of voor een bepaalde gebruiker was uitgeschakeld.

Onderaan de pagina vindt u een formulier voor het instellen van de initiële blok- en bestandsquota voor nieuwe gebruikers. Deze zullen worden toegepast voor gebruikers die met het Webmin Gebruikers en Groepen module worden aangemaakt.


quota/help/user_filesys.nl.html0100644000567100000120000000136007432705646016647 0ustar jcameronwheel
Gebruikersquota
Deze pagina geeft een overzicht van alle bestandssystemen, waar deze gebruiker een quotum heeft. U kunt op een bestandssysteem in de lijst klikken om het quotum daar te veranderen of een bestandssysteem kiezen uit het onderstaande menu en klikken op Quotum Wijzigen. Als een bestandssysteem niet in de lijst voorkomt, is er geen beperking van kracht op het aantal bestanden en de hoeveelheid ruimte die de gebruiker in dat bestandssysteem mag gebruiken.

Door te klikken op de Kopieer Quotum kunt u alle quota van deze gebruiker kopiëren naar één of meer andere gebruikers. Dit kan handig zijn als u voor een aantal gebruikers dezelfde hoeveelheid harddisk ruimte wilt toestaan.


quota/help/user_grace.nl.html0100644000567100000120000000065307432705646016256 0ustar jcameronwheel
Gebruikers Waarschuwingstijd
Waarschuwingstijd is de hoeveelheid tijd dat een gebruiker de zachte limiet mag overschrijden voordat het gebruik van méér harddisk ruimte of het aanmaken van méér bestanden wordt geblokkeerd. Als een gebruiker de zachte limiet overschrijdt, heeft de gebruiker de opgegeven hoeveelheid tijd om het gebruik terug te brengen. Dit geldt zowel voor blok- als bestandslimieten.
quota/notes0100755000567100000120000000331107060351555012752 0ustar jcameronwheelSolaris ------- The quota or rq options in /etc/vfstab are only used by quotaon -a at boot time, to determine whether to turn on quotas for the filesystem. When quotas are activated, the quota option is added to /etc/mnttab. Actually mounting with this option is pointless - only the quotaon command can really turn on quotas. When quotas are newly enabled for a filesystem and a user assigned block limits (but not file), these limits seem to take effect immediately. When the file limits are turned on, they also take effect immediately (but the number of existing files does not seem to be computed). On the other hand, blocks used are always recorded even if the quotas are set to 'unlimited'. Linux ----- The usrquota and grpquota options in /etc/fstab are used by quotaon whenever it is run. Unlike solaris, the filesystem must exist in the fstab file (and have quota options) for quotaon to do anything. Also, quotaon does not update the mtab file when quotas are turned on (but does complain if quotas are activated twice). Similarly, quotaoff does nothing unless the quota options are given in /etc/fstab The quota option documented in the man pages seems to be totally ignored - only usrquota and grpquota are used by quotaon. Quotas seem to have some problems under redhat linux using kernel 2.0.21 (redhat 5.1). quotacheck and repquota will often hang when both user and group quotas are active at the same time. Each can be used separately with no problems though (as long as a quotacheck is done after creating the quotas file!) When quotas are enable for some filesystem, they take effect immediately for both files and blocks. Even if a user creates files and then has quotas set, the counts will be up to date. quota/solaris-lib.pl0100755000567100000120000001740110256142365014457 0ustar jcameronwheel# solaris-lib.pl # Quota functions for solaris 2.5+ # quotas_init() sub quotas_init { return undef; } # quotas_supported() # Returns 1 for user quotas, 2 for group quotas or 3 for both sub quotas_supported { return 1; } # free_space(filesystem) # Returns an array containing btotal, bfree, ftotal, ffree sub free_space { local($out); $out = `df -t $_[0]`; $out =~ /(\d+) blocks\s+(\d+) files\n.*\s+(\d+) blocks\s+(\d+) files/; return ($3, $1, $4, $2); } # quota_can(&mnttab, &fstab) # Can this filesystem type support quotas? # 0 = No quota support (or not turned on in /etc/fstab) # 1 = User quotas only # 2 = Group quotas only # 3 = User and group quotas sub quota_can { return $_[0]->[2] eq "ufs" && $_[0]->[1] ne $_[0]->[0] ? 1 : 0; } # quota_now(&mnttab, &fstab) # Are quotas currently active? # 0 = Not active # 1 = User quotas active # 2 = Group quotas active # 3 = Both active sub quota_now { return $_[0]->[3] =~ /,quota/ || $_[0]->[3] =~ /^quota/ ? 1 : 0; } # filesystem_users(filesystem) # Fills the array %user with information about all users with quotas # on this filesystem. This may not be all users on the system.. sub filesystem_users { local($rep, @rep, $n, %hasu, $u); $rep = `$config{'user_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } setpwent(); while(@uinfo = getpwent()) { $hasu{$uinfo[0]}++; } endpwent() if ($gconfig{'os_type'} ne 'hpux'); @rep = split(/\n/, $rep); @rep = @rep[3..$#rep]; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /(\S+)\s+[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s+(.{0,15})\s+(\d+)\s+(\d+)\s+(\d+)(.*)/ || $rep[$n] =~ /(\S+)\s+[\-\+]{2}(.{7})(.{7})(.{7})(.{13})(.{7})(.{7})(.{7})(.*)/) { $user{$n,'user'} = $1; $user{$n,'ublocks'} = int($2); $user{$n,'sblocks'} = int($3); $user{$n,'hblocks'} = int($4); $user{$n,'gblocks'} = $5; $user{$n,'ufiles'} = int($6); $user{$n,'sfiles'} = int($7); $user{$n,'hfiles'} = int($8); $user{$n,'gfiles'} = $9; $user{$n,'user'} =~ s/^#//g; if ($user{$n,'user'} !~ /^\d+$/ && !$hasu{$user{$n,'user'}}) { # Username was truncated! Try to find him.. foreach $u (keys %hasu) { if (substr($u, 0, length($user{$n,'user'})) eq $user{$n,'user'}) { # found him.. $user{$n,'user'} = $u; last; } } } $user{$nn,'gblocks'} = &trunc_space($user{$nn,'gblocks'}); $user{$nn,'gfiles'} = &trunc_space($user{$nn,'gfiles'}); } } return $n; } # edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_quota_file { local($rv, $line); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^fs (\S+) blocks \(soft = (\d+), hard = (\d+)\) inodes \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) { # found line to change $line = "fs $_[1] blocks (soft = $_[2], hard = $_[3]) inodes (soft = $_[4], hard = $_[5])"; } $rv .= "$line\n"; } return $rv; } # quotaon(filesystem, mode) # Activate quotas and create quota file for some filesystem. The mode can # be 1 for user only, 2 for group only or 3 for user and group sub quotaon { return if (&is_readonly_mode()); local($qf, $out); $qf = "$_[0]/quotas"; if (!(-r $qf)) { &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, $qf); } $out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # quotaoff(filesystem, mode) # Turn off quotas for some filesystem sub quotaoff { return if (&is_readonly_mode()); local($out); $out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # quotacheck(filesystem, mode) # Runs quotacheck on some filesystem sub quotacheck { $out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # copy_user_quota(user, [user]+) # Copy the quotas for some user to many others sub copy_user_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'user_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # user_filesystems(user) # Fills the array %filesys with details of all filesystems some user has # quotas on sub user_filesystems { local($n, $_); open(QUOTA, "$config{'user_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|Filesystem)/i) { next; } if (/^(\S+)$/) { # Bogus wrapped line! $filesys{$n,'filesys'} = $1; local $nl = ; if ($nl =~ /^\s+(\d+)\s+(\d+)\s+(\d+)\s(.{0,15})\s(\d+)\s+(\d+)\s+(\d+)(.*)/ || $nl =~ /^.{13}(.{7})(.{7})(.{7})(.{12})(.{7})(.{7})(.{7})(.*)/) { $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'gblocks'} = $4; $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'gfiles'} = $8; $filesys{$n,'gblocks'} = &trunc_space($filesys{$n,'gblocks'}); $filesys{$n,'gfiles'} = &trunc_space($filesys{$n,'gfiles'}); $n++; } } elsif (/^(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s(.{0,15})\s(\d+)\s+(\d+)\s+(\d+)(.*)/ || /^(.{13})(.{7})(.{7})(.{7})(.{12})(.{7})(.{7})(.{7})(.*)/) { $filesys{$n,'filesys'} = $1; $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'gblocks'} = $5; $filesys{$n,'ufiles'} = int($6); $filesys{$n,'sfiles'} = int($7); $filesys{$n,'hfiles'} = int($8); $filesys{$n,'gfiles'} = $9; $filesys{$n,'filesys'} =~ s/\s+$//g; $filesys{$n,'gblocks'} = &trunc_space($filesys{$n,'gblocks'}); $filesys{$n,'gfiles'} = &trunc_space($filesys{$n,'gfiles'}); $n++; } } close(QUOTA); return $n; } # get_user_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day, 4=week, 5=month sub get_user_grace { local(@rv); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'user_grace_command'} |"); while() { if (/^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[0]) { if ($2 == 0) { push(@rv, 0, 0); } else { push(@rv, $2, $name_to_unit{$3}); } if ($4 == 0) { push(@rv, 0, 0); } else { push(@rv, $4, $name_to_unit{$5}); } } } close(GRACE); return @rv; } # default_grace() # Returns 0 if grace time can be 0, 1 if zero grace means default sub default_grace { return 1; } # edit_grace_file(data, filesystem, btime, bunits, ftime, funits) sub edit_grace_file { local($rv, $line); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[1]) { # replace this line $line = "fs $_[1] blocks time limit = $_[2] $unit_to_name{$_[3]}, files time limit = $_[4] $unit_to_name{$_[5]}"; } $rv .= "$line\n"; } return $rv; } # grace_units() # Returns an array of possible units for grace periods sub grace_units { return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'}, $text{'grace_days'}, $text{'grace_weeks'}, $text{'grace_months'}); } # quota_block_size(dir, device, filesystem) # Returns the size of quota blocks on some filesystem, or undef if unknown. # Always 1024, even though *filesystem* blocks are not! sub quota_block_size { return 1024; } # fs_block_size(dir, device, filesystem) # Returns the size of blocks on some filesystem, or undef if unknown. sub fs_block_size { if ($_[2] eq "ufs") { local $kout = `df -k $_[0]`; local $bout = `df -t $_[0]`; if ($kout =~ /\n\Q$_[1]\E\s+(\d+)/) { local $ks = $1; if ($bout =~ /total\s*:\s*(\d+)\s+blocks/) { local $bs = $1; return ($ks*1024) / $bs; } } } return 1024; } %name_to_unit = ( "sec", 0, "secs", 0, "min", 1, "mins", 1, "hour", 2, "hours", 2, "day", 3, "days", 3, "week", 4, "weeks", 4, "month", 5, "months", 5 ); foreach $k (keys %name_to_unit) { $unit_to_name{$name_to_unit{$k}} = $k; } 1; quota/uninstall.pl0100664000567100000120000000034210143273043014234 0ustar jcameronwheel# uninstall.pl # Called when webmin is uninstalled require 'quota-lib.pl'; sub module_uninstall { &foreign_require("cron", "cron-lib.pl"); local $job = &find_email_job(); if ($job) { &cron::delete_cron_job($job); } } 1; quota/config.info0100644000567100000120000000244710256467135014032 0ustar jcameronwheelline1=Configurable options,11 display_max=Maximum number of users or groups to display,0 threshold_pc=Threshold percentage to highlight used quota,3,Don't show sort_mode=Sort users and groups by,1,0-Blocks used,2-Name,1-Order from repquota block_mode=Show quotas in,1,1-Kilobytes (where possible),0-Blocks email_msg=Email message for users over quota,9,80,5,\t email_subject=Subject for email message,3,Default line2=System configuration,11 show_grace=Show grace times if available?,1,1-Yes,0-No user_repquota_command=Command to list users on a filesystem,0 group_repquota_command=Command to list groups on a filesystem,0 user_edquota_command=Command to edit user's quota,0 group_edquota_command=Command to edit group's quota,0 user_quota_command=Command to check a user's quota,0 group_quota_command=Command to check a group's quota,0 user_copy_command=Command to copy a user's quota,0 group_copy_command=Command to copy a group's quota,0 user_quotaon_command=Command to turn on user quotas,0 group_quotaon_command=Command to turn on group quotas,0 user_quotaoff_command=Command to turn off user quotas,0 group_quotaoff_command=Command to turn off group quotas,0 quotacheck_command=Command to check quotas,0 user_grace_command=Command to edit user grace times,0 group_grace_command=Command to edit group grace times,0 quota/user_grace_form.cgi0100755000567100000120000000340110147351030015511 0ustar jcameronwheel#!/usr/local/bin/perl # user_grace_form.cgi # Display a form for editing user grace times for some filesystem require './quota-lib.pl'; &ReadParse(); $access{'ugrace'} && &can_edit_filesys($in{'filesys'}) || &error($text{'ugracef_ecannot'}); &ui_print_header(undef, $text{'ugracef_title'}, "", "user_grace"); print "$text{'ugracef_info'}

\n"; @gr = &get_user_grace($in{'filesys'}); print "

\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
",&text('ugracef_graces', $in{'filesys'}),"
$text{'ugracef_block'} \n"; if (&default_grace()) { printf " $text{'default'}\n", $gr[0] ? "" : "checked"; printf "\n", $gr[0] ? "checked" : ""; } print ""; &select_units("bunits", $gr[1]); print "
$text{'ugracef_file'} \n"; if (&default_grace()) { printf " $text{'default'}\n", $gr[2] ? "" : "checked"; printf "\n", $gr[2] ? "checked" : ""; } print ""; &select_units("funits", $gr[3]); print "
\n"; print "
\n"; &ui_print_footer("list_users.cgi?dir=".&urlize($in{'filesys'}), $text{'ugracef_return'}); sub select_units { @uarr = &grace_units(); print "\n"; } quota/quota-lib.pl0100755000567100000120000001700510254722714014134 0ustar jcameronwheel# quota-lib.pl # Common functions for quota management. do '../web-lib.pl'; &init_config(); require '../ui-lib.pl'; if ($gconfig{'os_type'} =~ /^\S+\-linux$/) { do "linux-lib.pl"; } else { do "$gconfig{'os_type'}-lib.pl"; } if ($module_info{'usermin'}) { &switch_to_remote_user(); } else { %access = &get_module_acl(); &foreign_require("mount", "mount-lib.pl"); } $email_cmd = "$module_config_directory/email.pl"; # list_filesystems() # Returns a list of details of local filesystems on which quotas are supported # directory device type options quotacan quotanow sub list_filesystems { local $f; local @mtab = &mount::list_mounted(); foreach $f (&mount::list_mounts()) { $fmap{$f->[0],$f->[1]} = $f; } map { $_->[4] = "a_can($_, $fmap{$_->[0],$_->[1]}) } @mtab; map { $_->[5] = "a_now($_, $fmap{$_->[0],$_->[1]}) } @mtab; return grep { $_->[4] } @mtab; } # parse_options(type, options) # Convert an options string for some filesystem into the associative # array %options sub parse_options { local($_); undef(%options); if ($_[0] ne "-") { foreach (split(/,/, $_[0])) { if (/^([^=]+)=(.*)$/) { $options{$1} = $2; } else { $options{$_} = ""; } } } } # user_quota(user, filesystem) # Returns an array of ublocks, sblocks, hblocks, ufiles, sfiles, hfiles # for some user, or an empty array if no quota has been assigned sub user_quota { local (%user, $n, $i); $n = &filesystem_users($_[1]); for($i=0; $i<$n; $i++) { if ($user{$i,'user'} eq $_[0]) { return ( $user{$i,'ublocks'}, $user{$i,'sblocks'}, $user{$i,'hblocks'}, $user{$i,'ufiles'}, $user{$i,'sfiles'}, $user{$i,'hfiles'} ); } } return (); } # group_quota(group, filesystem) # Returns an array of ublocks, sblocks, hblocks, ufiles, sfiles, hfiles # for some group, or an empty array if no quota has been assigned sub group_quota { local (%group, $n, $i); $n = &filesystem_groups($_[1]); for($i=0; $i<$n; $i++) { if ($group{$i,'group'} eq $_[0]) { return ( $group{$i,'ublocks'}, $group{$i,'sblocks'}, $group{$i,'hblocks'}, $group{$i,'ufiles'}, $group{$i,'sfiles'}, $group{$i,'hfiles'} ); } } return (); } # edit_user_quota(user, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_user_quota { $ENV{'EDITOR'} = $ENV{'VISUAL'} = "$module_root_directory/edquota.pl"; $ENV{'QUOTA_USER'} = $_[0]; $ENV{'QUOTA_FILESYS'} = $_[1]; $ENV{'QUOTA_SBLOCKS'} = $_[2]; $ENV{'QUOTA_HBLOCKS'} = $_[3]; $ENV{'QUOTA_SFILES'} = $_[4]; $ENV{'QUOTA_HFILES'} = $_[5]; &system_logged("$config{'user_edquota_command'} ". quotemeta($_[0])." >/dev/null 2>&1"); } # edit_group_quota(group, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_group_quota { $ENV{'EDITOR'} = $ENV{'VISUAL'} = "$module_root_directory/edquota.pl"; $ENV{'QUOTA_USER'} = $_[0]; $ENV{'QUOTA_FILESYS'} = $_[1]; $ENV{'QUOTA_SBLOCKS'} = $_[2]; $ENV{'QUOTA_HBLOCKS'} = $_[3]; $ENV{'QUOTA_SFILES'} = $_[4]; $ENV{'QUOTA_HFILES'} = $_[5]; &system_logged("$config{'group_edquota_command'} ". quotemeta($_[0])." >/dev/null 2>&1"); } # edit_user_grace(filesystem, btime, bunits, ftime, funits) # Change the grace times for blocks and files on some filesystem sub edit_user_grace { $ENV{'EDITOR'} = $ENV{'VISUAL'} = "$module_root_directory/edgrace.pl"; $ENV{'QUOTA_FILESYS'} = $_[0]; $ENV{'QUOTA_BTIME'} = $_[1]; $ENV{'QUOTA_BUNITS'} = $_[2]; $ENV{'QUOTA_FTIME'} = $_[3]; $ENV{'QUOTA_FUNITS'} = $_[4]; &system_logged($config{'user_grace_command'}); } # edit_group_grace(filesystem, btime, bunits, ftime, funits) # Change the grace times for blocks and files on some filesystem sub edit_group_grace { $ENV{'EDITOR'} = $ENV{'VISUAL'} = "$module_root_directory/edgrace.pl"; $ENV{'QUOTA_FILESYS'} = $_[0]; $ENV{'QUOTA_BTIME'} = $_[1]; $ENV{'QUOTA_BUNITS'} = $_[2]; $ENV{'QUOTA_FTIME'} = $_[3]; $ENV{'QUOTA_FUNITS'} = $_[4]; &system_logged($config{'group_grace_command'}); } # quota_input(name, value, [blocksize]) sub quota_input { print "",&ui_radio($_[0]."_def", $_[1] == 0 ? 1 : 0, [ [ 1, $text{'quota_unlimited'} ], [ 0, " " ] ]); if ($_[2]) { # We know the real size, so can offer units local $sz = $_[1]*$_[2]; local $units = 1; if ($sz >= 10*1024*1024*1024) { $units = 1024*1024*1024; } elsif ($sz >= 10*1024*1024) { $units = 1024*1024; } elsif ($sz >= 10*1024) { $units = 1024; } else { $units = 1; } $sz = $sz == 0 ? "" : sprintf("%.2f", ($sz*1.0)/$units); print &ui_textbox($_[0], $sz, 8); print &ui_select($_[0]."_units", $units, [ [ 1, "bytes" ], [ 1024, "kB" ], [ 1024*1024, "MB" ], [ 1024*1024*1024, "GB" ] ]); } else { # Just show blocks print &ui_textbox($_[0], $_[1], 8); } print " \n"; } # quota_parse(name, [bsize]) sub quota_parse { if ($in{$_[0]."_def"}) { return 0; } elsif ($_[1]) { # Include units, and covert to blocks return int($in{$_[0]}*$in{$_[0]."_units"}/$_[1]); } else { # Just use blocks return int($in{$_[0]}); } } # can_edit_filesys(filesys) sub can_edit_filesys { local $fs; foreach $fs (split(/\s+/, $access{'filesys'})) { return 1 if ($fs eq "*" || $fs eq $_[0]); } return 0; } # can_edit_user(user) sub can_edit_user { if ($access{'umode'} == 0) { return 1; } elsif ($access{'umode'} == 3) { local @u = getpwnam($_[0]); return $access{'users'} == $u[3]; } elsif ($access{'umode'} == 4) { local @u = getpwnam($_[0]); return (!$access{'umin'} || $u[2] >= $access{'umin'}) && (!$access{'umax'} || $u[2] <= $access{'umax'}); } else { local ($u, %ucan); map { $ucan{$_}++ } split(/\s+/, $access{'users'}); return $access{'umode'} == 1 && $ucan{$_[0]} || $access{'umode'} == 2 && !$ucan{$_[0]}; } } # can_edit_group(group) sub can_edit_group { return 1 if ($access{'gmode'} == 0); return 0 if ($access{'gmode'} == 3); local ($g, %gcan); map { $gcan{$_}++ } split(/\s+/, $access{'groups'}); return $access{'gmode'} == 1 && $gcan{$_[0]} || $access{'gmode'} == 2 && !$gcan{$_[0]}; } # filesystem_info(filesystem, &hash, count, [blocksize]) sub filesystem_info { local @fs = &free_space($_[0], $_[3]); if ($_[3]) { local $i; foreach $i (0 .. 3) { $fs[$i] = $i < 2 ? &nice_size($fs[$i]*$_[3]) : int($fs[$i]); } } if ($_[1]) { local $bt = 0; local $ft = 0; local $i; for($i=0; $i<$_[2]; $i++) { $bt += $_[1]->{$i,'hblocks'}; $ft += $_[1]->{$i,'hfiles'}; } if ($_[3]) { $bt = &nice_size($bt*$_[3]); } return ( "$fs[0] total / $fs[1] free / $bt granted", "$fs[2] total / $fs[3] free / $ft granted" ); } else { return ( "$fs[0] total / $fs[1] free", "$fs[2] total / $fs[3] free" ); } } # block_size(dir, [for-filesys]) # Returns the size (in bytes) of blocks on some filesystem sub block_size { return undef if (!$config{'block_mode'}); return undef if (!defined("a_block_size) && !defined(&fs_block_size)); local @mounts = &mount::list_mounted(); local ($mount) = grep { $_->[0] eq $_[0] } @mounts; if ($mount) { if ($_[1]) { return &fs_block_size(@$mount); } else { if (defined("a_block_size)) { return "a_block_size(@$mount); } else { return &fs_block_size(@$mount); } } } return undef; } # print_limit(amount, no-blocks) sub print_limit { if ($_[0] == 0) { print "$text{'quota_unlimited'}\n"; } elsif ($bsize && !$_[1]) { print "",&nice_size($_[0]*$bsize),""; } else { print "$_[0]\n"; } } sub print_grace { print "",($_[0] || "
"),"\n"; } sub find_email_job { local @jobs = &cron::list_cron_jobs(); local ($job) = grep { $_->{'command'} eq $email_cmd } @jobs; return $job; } # trunc_space(string) # Removes spaces from the start and end of a string sub trunc_space { local $rv = $_[0]; $rv =~ s/^\s+//; $rv =~ s/\s+$//; return $rv; } 1; quota/email.pl0100775000567100000120000000622610267562441013336 0ustar jcameronwheel#!/usr/local/bin/perl # Send email to users approaching their quotas $no_acl_check++; require './quota-lib.pl'; &foreign_require("mailboxes", "mailboxes-lib.pl"); # Find filesystems with quotas foreach $fs (&list_filesystems()) { if ($fs->[4] && $fs->[5]) { $fslist{$fs->[0]}++; } } # Look for filesystems with warning enabled $now = time(); foreach $k (keys %config) { if ($k =~ /^email_(\S+)$/ && $fslist{$1}) { # Found a filesystem to check $f = $1; $n = &filesystem_users($f); local %emailtimes; local $qf = $f; $qf =~ s/\//_/g; &read_file("$module_config_directory/emailtimes.$qf", \%emailtimes); $interval = $config{'email_interval_'.$f}*60*60; for($i=0; $i<$n; $i++) { if ($config{'email_type_'.$f}) { $limit = $user{$i,'hblocks'}; } else { $limit = $user{$i,'sblocks'}; } next if (!$limit); # Check if over threshold $upercent = 100.0*$user{$i,'ublocks'}/$limit; next if ($upercent < $config{'email_percent_'.$f}); # Check if time to email next if ($emailtimes{$user{$i,'user'}} >= $now - $interval); # Work out the domain, perhaps from Virtualmin $email = $user{$i,'user'}."\@". $config{'email_domain_'.$f}; if ($config{'email_virtualmin_'.$f} && &foreign_check("virtual-server")) { &foreign_require("virtual-server", "virtual-server-lib.pl"); local $d = &virtual_server::get_user_domain( $user{$i,'user'}); if ($d) { local @users = &virtual_server::list_domain_users($d, 0, 0, 1, 1); local ($uinfo) = grep { $_->{'user'} eq $user{$i,'user'} } @users; if ($uinfo && $uinfo->{'email'}) { $email = $uinfo->{'email'}; } } } # Email the user &send_quota_mail( $user{$i,'user'}, $email, $limit, $user{$i,'ublocks'}, $f, $upercent, $config{'email_from_'.$f}, ); # Save last email time $emailtimes{$user{$i,'user'}} = $now; } &write_file("$module_config_directory/emailtimes.$qf", \%emailtimes); } } sub send_quota_mail { local ($user, $addr, $limit, $used, $fs, $percent, $from) = @_; local $bsize = &block_size($fs); if ($bsize) { $used = &nice_size($used*$bsize); $limit = &nice_size($limit*$bsize); } else { $used = "$used blocks"; $limit = "$limit blocks"; } local $body; local %hash = ( 'USER' => $user, 'FS' => $fs, 'PERCENT' => int($percent), 'USED' => $used, 'QUOTA' => $limit ); if ($config{'email_msg'}) { # Use configured template $body = &substitute_template($config{'email_msg'}, \%hash); $body =~ s/\t/\n/g; } else { # Fall back to default $body = &text('email_msg', $user, $fs, int($percent), $used, $limit); $body =~ s/\\n/\n/g; } local $subject; if ($config{'email_subject'}) { # Use configured subject $subject = &substitute_template($config{'email_subject'}, \%hash); } else { # Fall back to default $subject = $text{'email_subject'}; } local $mail = { 'headers' => [ [ 'From', $from || 'webmin@'.&get_system_hostname() ], [ 'To', $addr ], [ 'Subject', $subject ], ], 'attach' => [ { 'headers' => [ [ 'Content-type', 'text/plain' ] ], 'data' => $body } ] }; &mailboxes::send_mail($mail); } quota/edquota.pl0100755000567100000120000000077610317074507013710 0ustar jcameronwheel#!/usr/local/bin/perl # edquota.pl # Run by edquota to edit some user's quota $no_acl_check++; $0 =~ /^(\S+)\//; chdir($1); require './quota-lib.pl'; $u = $ENV{'QUOTA_USER'}; $fs = $ENV{'QUOTA_FILESYS'}; $sb = $ENV{'QUOTA_SBLOCKS'}; $hb = $ENV{'QUOTA_HBLOCKS'}; $sf = $ENV{'QUOTA_SFILES'}; $hf = $ENV{'QUOTA_HFILES'}; $f = $ARGV[0]; open(FILE, $f); while() { $qdata .= $_; } close(FILE); $nqdata = &edit_quota_file($qdata, $fs, $sb, $hb, $sf, $hf); open(FILE, "> $f"); print FILE $nqdata; close(FILE); quota/log_parser.pl0100664000567100000120000000251410143273664014374 0ustar jcameronwheel# log_parser.pl # Functions for parsing this module's logs do 'quota-lib.pl'; # parse_webmin_log(user, script, action, type, object, ¶ms) # Converts logged information from this module into human-readable form sub parse_webmin_log { local ($user, $script, $action, $type, $object, $p) = @_; $object = &html_escape($object); if ($action eq 'activate') { return &text($p->{'mode'} == 1 ? 'log_activate_u' : $p->{'mode'} == 2 ? 'log_activate_g' : 'log_activate_ug', "$object"); } elsif ($action eq 'deactivate') { return &text($p->{'mode'} == 1 ? 'log_deactivate_u' : $p->{'mode'} == 2 ? 'log_deactivate_g' : 'log_deactivate_ug', "$object"); } elsif ($action eq 'save') { return &text('log_save', "$object", "$p->{'filesys'}"); } elsif ($action eq 'sync') { return &text($type eq 'user' ? 'log_sync' : 'log_gsync', "$object"); } elsif ($action eq 'grace') { return &text($type eq 'user' ? 'log_grace_u' : 'log_grace_g', "$object"); } elsif ($action eq 'check') { return &text('log_check', "$object"); } elsif ($action eq 'copy') { return &text($type eq 'user' ? 'log_copy_u' : 'log_copy_g', "$object"); } elsif ($action eq 'email') { return &text('log_email', "$object"); } else { return undef; } } quota/config.info.tr0100644000567100000120000000245410225071063014437 0ustar jcameronwheelline1=Yapýlandýrýlabilir seçenekler,11 display_max=Görüntülenecek en çok kullanýcý ve grup sayýsý,0 sort_mode=Kullanýcý ve gruplarý sýralama biçimi,1,0-Kullanýlan blok,2-Ýsim,1-repquota'daki sýra ile block_mode=Kotalarý þu þekilde göster,1,1-Kilobyte (mümkünse),0-Blok line2=Sistem yapýlandýrmasý,11 show_grace=Eðer yapýlabilir ise gecikme süreleri gösterilsin mi?,1,1-Evet,0-Hayýr user_repquota_command=Bir dosya sistemindeki kullanýcýlarý listeleme komutu,0 group_repquota_command=Bir dosya sistemindeki gruplarý listeleme komutu,0 user_edquota_command=Bir kullanýcýnýn kotasýný düzenleme komutu,0 group_edquota_command=Bir grubun kotasýný düzenleme komutu,0 user_quota_command=Bir kullanýcýnýn kotasýný kontrol komutu,0 group_quota_command=Bir grubun kotasýný kontrol komutu,0 user_copy_command=Bir kullanýcýnýn kotasýný kopyalama komutu,0 group_copy_command=Bir grubun kotasýný kopyalama komutu,0 user_quotaon_command=Kullanýcý kotalarýný aktif hale getirme komutu,0 group_quotaon_command=Grup kotalarýný aktif hale getirme komutu,0 user_quotaoff_command=Kullanýcý kotalarýný kapatma komutu,0 group_quotaoff_command=Grup kotalarýný kapatma komutu,0 quotacheck_command=Kota kontrol komutu,0 user_grace_command=Kullanýcý gecikme sürelerini düzenleme komutu,0 group_grace_command=Grup gecikme sürelerini düzenleme komutu,0 quota/config.info.pl0100644000567100000120000000177707166225203014443 0ustar jcameronwheeldisplay_max=Maksymalna liczba wy¶wietlanych u¿ytkowników lub grup,0 user_repquota_command=Polecenie wy¶wietlaj±ce u¿ytkowników w systemie plików,0 group_repquota_command=Polecenie wy¶wietlaj±ce grupy w systemie plików,0 user_edquota_command=Polecenie do zmiany quota u¿ytkownika,0 group_edquota_command=Polecenie do zmiany quota grupy,0 user_quota_command=Polecenie do sprawdzenia quota u¿ytkownika,0 group_quota_command=Polecenie do sprawdzenia quota grupy,0 user_copy_command=Polecenie do skopiowania quota u¿ytkownika,0 group_copy_command=Polecenie do skopiowania quota grupy,0 user_quotaon_command=Polecenie do w³±czenia quota u¿ytkowników,0 group_quotaon_command=Polecenie do w³±czenia quota grup,0 user_quotaoff_command=Polecenie do wy³±czenia quota u¿ytkowników,0 group_quotaoff_command=Polecenie do wy³±czenia quota grup,0 quotacheck_command=Polecenie do naliczenia quota,0 user_grace_command=Polecenie do zmiany czasu ulgi dla u¿ytkowników,0 group_grace_command=Polecenie do zmiany czasu ulgi dla grup,0 quota/config.info.ru_RU0100664000567100000120000000215207614360513015054 0ustar jcameronwheeluser_quotaoff_command=Êîìàíäà âûêëþ÷åíèÿ êâîò ïîëüçîâàòåëÿ,0 user_quotaon_command=Êîìàíäà âêëþ÷åíèÿ êâîò ïîëüçîâàòåëÿ,0 group_copy_command=Êîìàíäà êîïèðîâàíèÿ êâîòû ãðóïïû,0 quotacheck_command=Êîìàíäà ïðîâåðêè êâîò,0 user_quota_command=Êîìàíäà ïðîâåðêè êâîòû ïîëüçîâàòåëÿ,0 group_grace_command=Êîìàíäà èçìåíåíèÿ âðåìåíè îòñðî÷êè äëÿ ãðóïïû,0 user_repquota_command=Êîìàíäà âûâîäà ïîëüçîâàòåëåé äëÿ ôàéëîâîé ñèñòåìû,0 group_quotaoff_command=Êîìàíäà âûêëþ÷åíèÿ êâîò ãðóïïû,0 user_edquota_command=Êîìàíäà èçìåíåíèÿ êâîòû ïîëüçîâàòåëÿ,0 group_quotaon_command=Êîìàíäà âêëþ÷åíèÿ êâîò ãðóïïû,0 group_quota_command=Êîìàíäà ïðîâåðêè êâîòû ãðóïïû,0 user_copy_command=Êîìàíäà êîïèðîâàíèÿ êâîòû ïîëüçîâàòåëÿ,0 group_repquota_command=Êîìàíäà âûâîäà ãðóïï äëÿ ôàéëîâîé ñèñòåìû,0 display_max=Ìàêñèìàëüíîå ÷èñëî ïîêàçûâàåìûõ ïîëüçîâàòåëåé èëè ãðóïï,0 group_edquota_command=Êîìàíäà èçìåíåíèÿ êâîòû ãðóïïû,0 user_grace_command=Êîìàíäà èçìåíåíèÿ âðåìåíè îòñðî÷êè äëÿ ïîëüçîâàòåëÿ,0 sort_mode=Óïîðÿäî÷èâàòü ïîëüçîâàòåëåé è ãðóïïû ïî,1,0-Èñïîëüçîâàííûì áëîêàì,2-Èìåíè,1-Ïîðÿäîê èç repquota line1=Íàñòðàèâàåìûå ïàðàìåòðû,11 line2=Ñèñòåìíûå ïàðàìåòðû,11 quota/config-netbsd0100644000567100000120000000132510256466545014353 0ustar jcameronwheeluser_quotaoff_command=quotaoff -u user_quotaon_command=quotaon -u group_copy_command=edquota -g -p quotacheck_command=quotacheck user_quota_command=quota -v -u group_grace_command=edquota -t -g user_repquota_command=repquota -u -v user_edquota_command=edquota -u group_quotaoff_command=quotaoff -g group_quotaon_command=quotaon -g group_quota_command=quota -v -g user_copy_command=edquota -u -p group_repquota_command=repquota -g -v display_max=100 group_edquota_command=edquota -g user_grace_command=edquota -t -u sort_mode=0 block_mode=1 show_grace=0 email_msg=Disk usage for user ${USER} on filesystem ${FS} has reached ${PERCENT}% of the allowed quota. ${USED} of disk space is being used, out of a maximum of ${QUOTA}. quota/netbsd-lib.pl0100644000567100000120000002255710256142064014263 0ustar jcameronwheel# openbsd-lib.pl # Quota functions for openbsd # quotas_init() sub quotas_init { return undef; } # quotas_supported() # Returns 1 for user quotas, 2 for group quotas or 3 for both sub quotas_supported { return 3; } # free_space(filesystem) # Returns an array containing btotal, bfree, ftotal, ffree sub free_space { local(@out, @rv); $ENV{'BLOCKSIZE'} = 1024; `df -i $_[0]` =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)\s+\S+\s+(\d+)\s+(\d+)/; return ($1, $2, $3+$4, $4); } # quota_can(&mnttab, &fstab) # Can this filesystem type support quotas? # 0 = No quota support (or not turned on in /etc/fstab) # 1 = User quotas only # 2 = Group quotas only # 3 = User and group quotas sub quota_can { return ($_[1]->[3] =~ /userquota/ ? 1 : 0) + ($_[1]->[3] =~ /groupquota/ ? 2 : 0); } # quota_now(&mnttab, &fstab) # Are quotas currently active? # 0 = Not active # 1 = User quotas active # 2 = Group quotas active # 3 = Both active sub quota_now { return $_[0]->[3] =~ /quota/ ? 3 : 0; } # quotaon(filesystem, mode) # Activate quotas and create quota files for some filesystem. The mode can # be 1 for user only, 2 for group only or 3 for user and group sub quotaon { return if (&is_readonly_mode()); local($out, $qf, @qfile, $flags); if ($_[1]%2 == 1) { # turn on user quotas $qf = "$_[0]/quota.user"; if (!(-r $qf)) { &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, $qf); &system_logged("$config{'quotacheck_command'} $_[0]"); } $out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { # turn on group quotas $qf = "$_[0]/quota.group"; if (!(-r $qf)) { &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); &set_ownership_permissions(undef, undef, 0600, $qf); &system_logged("$config{'quotacheck_command'} $_[0]"); } $out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } # quotaoff(filesystem, mode) # Turn off quotas for some filesystem sub quotaoff { return if (&is_readonly_mode()); local($out); if ($_[1]%2 == 1) { $out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { $out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } # user_filesystems(user) # Fills the array %filesys with details of all filesystem some user has # quotas on sub user_filesystems { local($n, $_, %mtab); open(QUOTA, "$config{'user_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|\s+Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line $filesys{$n,'filesys'} = $1; =~/^.{15}(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/; $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'ufiles'} = int($4); $filesys{$n,'sfiles'} = int($5); $filesys{$n,'hfiles'} = int($6); $n++; } elsif (/^(.{15})(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/) { $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'filesys'} = $1; $filesys{$n,'filesys'} =~ s/^\s+//g; $n++; } } close(QUOTA); return $n; } # group_filesystems(group) # Fills the array %filesys with details of all filesystem some group has # quotas on sub group_filesystems { local($n, $_, %mtab); open(QUOTA, "$config{'group_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|\s+Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line $filesys{$n,'filesys'} = $1; =~/^.{15}(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/; $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'ufiles'} = int($4); $filesys{$n,'sfiles'} = int($5); $filesys{$n,'hfiles'} = int($6); $n++; } elsif (/^(.{15})(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/) { $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'filesys'} = $1; $filesys{$n,'filesys'} =~ s/^\s+//g; $n++; } } close(QUOTA); return $n; } # filesystem_users(filesystem) # Fills the array %user with information about all users with quotas # on this filesystem. This may not be all users on the system.. sub filesystem_users { local($rep, @rep, $n, $what); $rep = `$config{'user_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } @rep = split(/\n/, $rep); @rep = grep { !/^root\s/ } @rep[3..$#rep]; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) { $user{$n,'user'} = $1; $user{$n,'ublocks'} = int($2); $user{$n,'sblocks'} = int($3); $user{$n,'hblocks'} = int($4); $user{$n,'ufiles'} = int($5); $user{$n,'sfiles'} = int($6); $user{$n,'hfiles'} = int($7); } } return $n; } # filesystem_groups(filesystem) # Fills the array %group with information about all groups with quotas # on this filesystem. This may not be all groups on the system.. sub filesystem_groups { local($rep, @rep, $n, $what); $rep = `$config{'group_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } @rep = split(/\n/, $rep); @rep = @rep[3..$#rep]; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) { $group{$n,'group'} = $1; $group{$n,'ublocks'} = int($2); $group{$n,'sblocks'} = int($3); $group{$n,'hblocks'} = int($4); $group{$n,'ufiles'} = int($5); $group{$n,'sfiles'} = int($6); $group{$n,'hfiles'} = int($7); } } return $n; } # edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_quota_file { local($rv, $line, %mtab, @m); @line = split(/\n/, $_[0]); for($i=0; $i<@line; $i++) { if ($line[$i] =~ /^(\S+): (blocks|kbytes) in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) { # found lines to change $rv .= "$1: $2 in use: $3, limits (soft = $_[2], hard = $_[3])\n"; $line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/; $rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n"; } else { $rv .= "$line[$i]\n"; } } return $rv; } # quotacheck(filesystem, mode) # Runs quotacheck on some filesystem sub quotacheck { $out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # copy_user_quota(user, [user]+) # Copy the quotas for some user to many others sub copy_user_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'user_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # copy_group_quota(group, [group]+) # Copy the quotas for some group to many others sub copy_group_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'group_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # default_grace() # Returns 0 if grace time can be 0, 1 if zero grace means default sub default_grace { return 0; } # get_user_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_user_grace { local(@rv, %mtab, @m); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'user_grace_command'} $_[0] |"); while() { if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } } close(GRACE); return @rv; } # get_group_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_group_grace { local(@rv, %mtab, @m); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'group_grace_command'} $_[0] |"); while() { if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } } close(GRACE); return @rv; } # edit_grace_file(data, filesystem, btime, bunits, ftime, funits) sub edit_grace_file { local($rv, $line, @m, %mtab); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[1]) { # replace this line $line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}"; } $rv .= "$line\n"; } return $rv; } # grace_units() # Returns an array of possible units for grace periods sub grace_units { return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'}, $text{'grace_days'}); } # fs_block_size(dir, device, filesystem) # Returns the size of blocks on some filesystem, or undef if unknown. # Always 1024, because the ENV setting above forces this. sub fs_block_size { return 1024; } %name_to_unit = ( "second", 0, "seconds", 0, "minute", 1, "minutes", 1, "hour", 2, "hours", 2, "day", 3, "days", 3, ); foreach $k (keys %name_to_unit) { $unit_to_name{$name_to_unit{$k}} = $k; } 1; quota/config-irix0100644000567100000120000000070310256466540014041 0ustar jcameronwheelquotacheck_command=/usr/etc/quotacheck user_quota_command=/usr/bsd/quota -v user_repquota_command=/usr/etc/repquota -v user_edquota_command=/usr/etc/edquota user_copy_command=/usr/etc/edquota -p display_max=100 user_grace_command=edquota -t sort_mode=0 block_mode=1 show_grace=0 email_msg=Disk usage for user ${USER} on filesystem ${FS} has reached ${PERCENT}% of the allowed quota. ${USED} of disk space is being used, out of a maximum of ${QUOTA}. quota/config.info.ca0100644000567100000120000000277310307032155014401 0ustar jcameronwheelline1=Opcions configurables,11 display_max=Nombre màxim d'usuaris o grups a llistar,0 threshold_pc=Percentatge llindar per ressaltar la quota utilitzada,3,No ho mostris sort_mode=Ordena els usuaris i els grups per,1,0-Blocs usats,2-Nom,1-Ordre de repquota block_mode=Mostra les quotes en,1,1-Kilobytes (on sigui possible),0-Blocs email_msg=Missatge de correu per als usuaris que excedeixen la quota,9,80,5,\t email_subject=Tema del missatge de correu,3,Per defecte line2=Configuració del sistema,11 show_grace=Mostra els periodes de gràcia, si estan disponibles,1,1-Sí,0-No user_repquota_command=Ordre per llistar els usuaris d'un sistema de fitxers,0 group_repquota_command=Ordre per llistar els grups d'un sistema de fitxers,0 user_edquota_command=Ordre per editar la quota d'un usuari,0 group_edquota_command=Ordre per editar la quota d'un grup,0 user_quota_command=Ordre per comprovar la quota d'un usuari,0 group_quota_command=Ordre per comprovar la quota d'un grup,0 user_copy_command=Ordre per copiar la quota d'un usuari,0 group_copy_command=Ordre per copiar la quota d'un grup,0 user_quotaon_command=Ordre per activar les quotes d'usuari,0 group_quotaon_command=Ordre per activar les quotes de grup,0 user_quotaoff_command=Ordre per desactivar les quotes d'usuari,0 group_quotaoff_command=Ordre per desactivar les quotes de grup,0 quotacheck_command=Ordre per comprovar les quotes,0 user_grace_command=Ordre per editar el nombre d'intents de l'usuari,0 group_grace_command=Ordre per editar el nombre d'intents del grup,0 quota/irix-lib.pl0100644000567100000120000001341507660024432013753 0ustar jcameronwheel# openbsd-lib.pl # Quota functions for openbsd # quotas_init() sub quotas_init { if (-x "/usr/etc/repquota") { return undef; } else { return "The quotas product does not appear to be installed on ". "your system\n"; } } # quotas_supported() # Returns 1 for user quotas, 2 for group quotas or 3 for both sub quotas_supported { return 1; } # free_space(filesystem) # Returns an array containing btotal, bfree, ftotal, ffree sub free_space { local(@out, @rv); `df -i '$_[0]'` =~ /Mounted\n\S+\s+\S+\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/; return ($1, $3, $5+$6, $6); } # quota_can(&mnttab, &fstab) # Can this filesystem type support quotas? # 0 = No quota support (or not turned on in /etc/fstab) # 1 = User quotas only # 2 = Group quotas only # 3 = User and group quotas sub quota_can { return $_[1]->[2] eq 'xfs' && $_[1]->[3] =~ /quota|qnoenforce/ ? 1 : 0; } # quota_now(&mnttab, &fstab) # Are quotas currently active? # 0 = Not active # 1 = User quotas active # 2 = Group quotas active # 3 = Both active # Adding 4 means they cannot be turned off (such as for XFS) sub quota_now { return $_[0]->[3] =~ /quota|qnoenforce/ ? 5 : 0; } # quotaon(filesystem, mode) # Activate quotas and create quota files for some filesystem. The mode can # be 1 for user only, 2 for group only or 3 for user and group sub quotaon { # Does nothing, because XFS quotas are only enabled at mount/boot return undef; } # quotaoff(filesystem, mode) # Turn off quotas for some filesystem sub quotaoff { # Does nothing, because XFS quotas are never turned off return undef; } # user_filesystems(user) # Fills the array %filesys with details of all filesystem some user has # quotas on sub user_filesystems { local($n, $_, %mtab); open(QUOTA, "$config{'user_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^\s*(Disk|Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line $filesys{$n,'filesys'} = $1; =~ /^\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,17}\s(\d+)\s+(\d+)\s+(\d+)/; $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'ufiles'} = int($4); $filesys{$n,'sfiles'} = int($5); $filesys{$n,'hfiles'} = int($6); $n++; } elsif (/^(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,17}\s(\d+)\s+(\d+)\s+(\d+)/) { $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $filesys{$n,'filesys'} = $1; $filesys{$n,'filesys'} =~ s/^\s+//g; $n++; } } close(QUOTA); return $n; } # filesystem_users(filesystem) # Fills the array %user with information about all users with quotas # on this filesystem. This may not be all users on the system.. sub filesystem_users { local($rep, @rep, $n = 0, $r); $rep = `$config{'user_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } @rep = split(/\n/, $rep); foreach $r (@rep) { if ($r =~ /(\S+)\s*[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,16}\s(\d+)\s+(\d+)\s+(\d+)/) { $user{$n,'user'} = $1; $user{$n,'ublocks'} = int($2); $user{$n,'sblocks'} = int($3); $user{$n,'hblocks'} = int($4); $user{$n,'ufiles'} = int($5); $user{$n,'sfiles'} = int($6); $user{$n,'hfiles'} = int($7); $n++; } } return $n; } # edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_quota_file { local($rv, $line, %mtab, @m); @line = split(/\n/, $_[0]); for($i=0; $i<@line; $i++) { if ($line[$i] =~ /^fs\s+(\S+)\s+kbytes\s+\(soft = (\d+), hard = (\d+)\)\s+inodes\s+\(soft = (\d+), hard = (\d+)\)/ && $1 eq $_[1]) { # found line to change $rv .= "fs $1 kbytes (soft = $_[2], hard = $_[3]) inodes (soft = $_[4], hard = $_[5])\n"; } else { $rv .= "$line[$i]\n"; } } return $rv; } # quotacheck(filesystem, mode) # Runs quotacheck on some filesystem sub quotacheck { $out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # copy_user_quota(user, [user]+) # Copy the quotas for some user to many others sub copy_user_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'user_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # default_grace() # Returns 0 if grace time can be 0, 1 if zero grace means default sub default_grace { return 1; } # get_user_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_user_grace { local(@rv, %mtab, @m); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'user_grace_command'} $_[0] 2>/dev/null |"); while() { if (/^fs\s+(\S+)\s+kbytes\s+time\s+limit\s+=\s+(\S+)\s+(\S+),\s+files\s+time\s+limit\s+=\s+(\S+)\s+(\S+)/) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } } close(GRACE); return @rv; } # edit_grace_file(data, filesystem, btime, bunits, ftime, funits) sub edit_grace_file { local($rv, $line, @m, %mtab); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^fs\s+(\S+)\s+kbytes\s+time\s+limit\s+=\s+(\S+)\s+(\S+),\s+files\s+time\s+limit\s+=\s+(\S+)\s+(\S+)/ && $1 eq $_[1]) { # replace this line $line = "fs $1 kbytes time limit = $_[2] $unit_to_name{$_[3]}, files time limit = $_[4] $unit_to_name{$_[5]}"; } $rv .= "$line\n"; } return $rv; } # grace_units() # Returns an array of possible units for grace periods sub grace_units { return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'}, $text{'grace_days'}, $text{'grace_weeks'}, $text{'grace_months'}); } %name_to_unit = ( "second", 0, "seconds", 0, "minute", 1, "minutes", 1, "hour", 2, "hours", 2, "day", 3, "days", 3, "week", 4, "weeks", 4, "month", 5, "months", 5, ); foreach $k (keys %name_to_unit) { $unit_to_name{$name_to_unit{$k}} = $k; } 1; quota/module.info.bak0100644000567100000120000000113207371425445014576 0ustar jcameronwheeldesc_ko_KR.euc=µð½ºÅ© ÇÒ´ç risk=low medium high desc_ru_SU=äÉÓËÏ×ÙÅ ë×ÏÔÙ desc_zh_TW.Big5=ºÏºÐ°tÃB desc_pl=Quota na dyskach desc_de=Festplatten-Quotas name=Quota desc_zh_CN=´ÅÅÌÏÞ¶î desc_pt=Quotas de Disco category=system desc_tr=Disk Kotalarý os_support=solaris redhat-linux mandrake-linux slackware-linux debian-linux suse-linux hpux freebsd open-linux unixware turbo-linux openbsd corel-linux cobalt-linux msc-linux desc=Disk Quotas desc_es=Cuotas de Disco desc_sv=Diskquota desc_fr=Quotas des Disques desc_ja_JP.euc=¥Ç¥£¥¹¥¯¤Î³ä¤êÅö¤Æ depends=mount desc_ru_RU=Äèñêîâûå Êâîòû desc_ca=Quotes de Disc quota/config.info.nl0100644000567100000120000000211507432705645014435 0ustar jcameronwheeldisplay_max=Maximum aantal te tonen gebruikers of groepen,0 user_repquota_command=Commando om gebruikers te tonen van een bestandssysteem,0 group_repquota_command=Commando om groepen te tonen van een bestandssysteem,0 user_edquota_command=Commando om quotum van gebruiker te wijzigen,0 group_edquota_command=Commando om quotum van groep te wijzigen,0 user_quota_command=Commando om quotum van gebruikers te controleren,0 group_quota_command=Commando om quotum van groep te controleren,0 user_copy_command=Commando om quotum van gebruiker te kopieëren,0 group_copy_command=Commando om quotum van groep te kopieëren,0 user_quotaon_command=Commando om quota van gebruiker aan te zetten,0 group_quotaon_command=Commando om quota van groep aan te zetten,0 user_quotaoff_command=Commando om quota van gebruiker uit te zetten,0 group_quotaoff_command=Commando om quota van groep uit te zetten,0 quotacheck_command=Commando om quota te controleren,0 user_grace_command=Commando om waarschuwingstijd van een gebruiker te wijzigen,0 group_grace_command=Commando om waarschuwingstijd van een groep te wijzigen,0 quota/linux-lib.pl.bak0100644000567100000120000002656307440577775014726 0ustar jcameronwheel# linux-lib.pl # Quota functions for all linux version # quotas_init() sub quotas_init { if (&has_command("quotaon") && &has_command("quotaoff")) { return undef; } else { return "The quotas package does not appear to be installed on ". "your system\n"; } } # quotas_supported() # Returns 1 for user quotas, 2 for group quotas or 3 for both sub quotas_supported { return 3; } # free_space(filesystem) # Returns an array containing btotal, bfree, ftotal, ffree sub free_space { local(@out, @rv); $out = `df $_[0]`; $out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/; push(@rv, ($1, $2)); $out = `df -i $_[0]`; $out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/; push(@rv, ($1, $2)); return @rv; } # quota_can(&mnttab, &fstab) # Can this filesystem type support quotas? # 0 = No quota support (or not turned on in /etc/fstab) # 1 = User quotas only # 2 = Group quotas only # 3 = User and group quotas sub quota_can { return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) + ($_[1]->[3] =~ /grpquota/ ? 2 : 0); } # quota_now(&mnttab, &fstab) # Are quotas currently active? # 0 = Not active # 1 = User quotas active # 2 = Group quotas active # 3 = Both active # Adding 4 means they cannot be turned off (such as for XFS) sub quota_now { local $rv = 0; local $dir = $_[0]->[0]; if ($_[0]->[2] eq "xfs") { # For XFS, assume enabled if setup in fstab local %opts; map { $opts{$_}++ } split(/,/, $_[0]->[3]); $rv += 1 if ($opts{'quota'} || $opts{'usrquota'} || $opts{'uqnoenforce'}); $rv += 2 if ($opts{'grpquota'} || $opts{'gqnoenforce'}); return $rv + 4; } if ($_[0]->[4]%2 == 1) { # test user quotas if (-r "$dir/quota.user" || -r "$dir/aquota.user") { $out = `$config{'user_quotaon_command'} $dir 2>&1`; if ($out =~ /Device or resource busy/i) { # already on.. $rv += 1; } elsif ($out =~ /Package not installed/i) { # No quota support! return 0; } else { # was off.. need to turn on again `$config{'user_quotaoff_command'} $dir 2>&1`; } } } if ($_[0]->[4] > 1) { # test group quotas if (-r "$dir/quota.group" || -r "$dir/aquota.group") { $out = `$config{'group_quotaon_command'} $dir 2>&1`; if ($out =~ /Device or resource busy/i) { # already on.. $rv += 2; } elsif ($out =~ /Package not installed/i) { # No quota support! return 0; } else { # was off.. need to turn on again `$config{'group_quotaoff_command'} $dir 2>&1`; } } } return $rv; } # quotaon(filesystem, mode) # Activate quotas and create quota files for some filesystem. The mode can # be 1 for user only, 2 for group only or 3 for user and group sub quotaon { local($out, $qf, @qfile, $flags); if ($_[1]%2 == 1) { # turn on user quotas $qf = &has_command("convertquota") ? "$_[0]/aquota.user" : "$_[0]/quota.user"; if (!(-r $qf)) { open(QUOTAFILE, "> $qf"); close(QUOTAFILE); chmod(0600, $qf); &system_logged("$config{'quotacheck_command'} $_[0]"); } $out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { # turn on group quotas $qf = &has_command("convertquota") ? "$_[0]/aquota.group" : "$_[0]/quota.group"; if (!(-r $qf)) { open(QUOTAFILE, "> $qf"); close(QUOTAFILE); chmod(0600, $qf); &system_logged("$config{'quotacheck_command'} $_[0]"); } $out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } # quotaoff(filesystem, mode) # Turn off quotas for some filesystem sub quotaoff { local($out); if ($_[1]%2 == 1) { $out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { $out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } # user_filesystems(user) # Fills the array %filesys with details of all filesystem some user has # quotas on sub user_filesystems { return &parse_quota_output("$config{'user_quota_command'} $_[0]"); } # user_filesystems(user) # Fills the array %filesys with details of all filesystem some group has # quotas on sub group_filesystems { return &parse_quota_output("$config{'group_quota_command'} $_[0]"); } sub parse_quota_output { local($n, $_, %mtab); open(MTAB, "/etc/mtab"); while() { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; } close(MTAB); open(QUOTA, "$_[0] |"); $n=0; while() { chop; if (/^(Disk|\s+Filesystem)/) { next; } if (/^(\S+)$/) { # Bogus wrapped line $filesys{$n,'filesys'} = $mtab{$1}; =~/^.{15}.(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/; $filesys{$n,'ublocks'} = int($1); $filesys{$n,'sblocks'} = int($2); $filesys{$n,'hblocks'} = int($3); $filesys{$n,'ufiles'} = int($4); $filesys{$n,'sfiles'} = int($5); $filesys{$n,'hfiles'} = int($6); $n++; } elsif (/^(.{15}).(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/) { $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($5); $filesys{$n,'sfiles'} = int($6); $filesys{$n,'hfiles'} = int($7); $dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g; $filesys{$n,'filesys'} = $mtab{$dev}; $n++; } } close(QUOTA); return $n; } # filesystem_users(filesystem) # Fills the array %user with information about all users with quotas # on this filesystem. This may not be all users on the system.. sub filesystem_users { return &parse_repquota_output( "$config{'user_repquota_command'} $_[0]", "user"); } sub filesystem_groups { return &parse_repquota_output( "$config{'group_repquota_command'} $_[0]", "group"); } sub parse_repquota_output { local($rep, @rep, $n, $what, $u, @uinfo); $what = $_[1]; $rep = `$_[0] 2>&1`; if ($?) { return -1; } if ($what eq 'user') { setpwent(); while(@uinfo = getpwent()) { $hasu{$uinfo[0]}++; } endpwent() if ($gconfig{'os_type'} ne 'hpux'); } else { setgrent(); while(@uinfo = getgrent()) { $hasu{$uinfo[0]}++; } endgrent() if ($gconfig{'os_type'} ne 'hpux'); } @rep = split(/\n/, $rep); @rep = @rep[3..$#rep]; local $nn = 0; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /^\s*(\S+)\s+[\-\+]{2}\s+(\S+)\s+(\S+)\s+(\S+).{7}\s+(\S+)\s+(\S+)\s+(\S+)/ || $rep[$n] =~ /([^\-\s]\S*)\s*[\-\+]{2}(.{8})(.{8})(.{8}).{7}(.{8})(.{6})(.{6})/) { $$what{$nn,$what} = $1; $$what{$nn,'ublocks'} = int($2); $$what{$nn,'sblocks'} = int($3); $$what{$nn,'hblocks'} = int($4); $$what{$nn,'ufiles'} = int($5); $$what{$nn,'sfiles'} = int($6); $$what{$nn,'hfiles'} = int($7); if ($$what{$nn,$what} !~ /^\d+$/ && !$hasu{$$what{$nn,$what}}) { # User/group name was truncated! Try to find him.. foreach $u (keys %hasu) { if (substr($u, 0, length($$what{$nn,$what})) eq $$what{$nn,$what}) { # found him.. $$what{$nn,$what} = $u; last; } } } $nn++; } } return $nn; } # edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_quota_file { local($rv, $line, %mtab, @m, @line, $i); open(MTAB, "/etc/mtab"); while() { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; } close(MTAB); @line = split(/\n/, $_[0]); for($i=0; $i<@line; $i++) { if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{$1} eq $_[1]) { # found lines to change $rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n"; $line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/; $rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n"; } elsif ($line[$i] =~ /^device\s+(\S+)\s+\((\S+)\):/i && $2 eq $_[1]) { # even newer-style line to change $rv .= "$line[$i]\n"; $line[++$i] =~ /^used\s+(\S+),\s+limits:\s+soft=(\d+)\s+hard=(\d+)/i; $rv .= "Used $1, limits: soft=$_[2] hard=$_[3]\n"; $line[++$i] =~ /^used\s+(\S+) inodes,\s+limits:\s+soft=(\d+)\s+hard=(\d+)/i; $rv .= "Used $1 inodes, limits: soft=$_[4] hard=$_[5]\n"; } elsif ($line[$i] =~ /^\s+(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)$/ && $mtab{$1} eq $_[1]) { # new-style line to change $rv .= " $1 $2 $_[2] $_[3] $5 $_[4] $_[5]\n"; print STDERR "rv = $rv"; } else { $rv .= "$line[$i]\n"; } } return $rv; } # quotacheck(filesystem, mode) # Runs quotacheck on some filesystem sub quotacheck { $out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # copy_user_quota(user, [user]+) # Copy the quotas for some user to many others sub copy_user_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1"); if ($?) { return $out; } } return undef; } # copy_group_quota(group, [group]+) # Copy the quotas for some group to many others sub copy_group_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1"); if ($?) { return $out; } } return undef; } # get_user_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_user_grace { return &parse_grace_output($config{'user_grace_command'}, $_[0]); } # get_group_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_group_grace { return &parse_grace_output($config{'group_grace_command'}, $_[0]); } # default_grace() # Returns 0 if grace time can be 0, 1 if zero grace means default sub default_grace { return 0; } sub parse_grace_output { local(@rv, %mtab, @m); open(MTAB, "/etc/mtab"); while() { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; } close(MTAB); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$_[0] 2>&1 |"); while() { if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } elsif (/^\s+(\S+)\s+(\d+)(\S+)\s+(\d+)(\S+)/ && $mtab{$1} eq $_[1]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } elsif (/^device\s+(\S+)\s+\((\S+)\):/i && $2 eq $_[1]) { if ( =~ /^block\s+grace:\s+(\S+)\s+(\S+)\s+inode\s+grace:\s+(\S+)\s+(\S+)/i) { @rv = ($1, $name_to_unit{$2}, $3, $name_to_unit{$4}); last; } } } close(GRACE); return @rv; } # edit_grace_file(data, filesystem, btime, bunits, ftime, funits) sub edit_grace_file { local($rv, $line, @m, %mtab, @line, $i); open(MTAB, "/etc/mtab"); while() { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; } close(MTAB); @line = split(/\n/, $_[0]); for($i=0; $i<@line; $i++) { $line = $line[$i]; if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) { # replace this line $line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}"; } elsif ($line =~ /^\s+(\S+)\s+(\d+)(\S+)\s+(\d+)(\S+)/ && $mtab{$1} eq $_[1]) { # replace new-style line $line = " $1 $_[2]$unit_to_name{$_[3]} $_[4]$unit_to_name{$_[5 ]}"; } elsif ($line =~ /^device\s+(\S+)\s+\((\S+)\):/i && $2 eq $_[1]) { # replace even newer-style line $rv .= "$line\n"; $line = "Block grace: $_[2] $unit_to_name{$_[3]} Inode grace: $_[4] $unit_to_name{$_[5]}"; $i++; } $rv .= "$line\n"; } return $rv; } # grace_units() # Returns an array of possible units for grace periods sub grace_units { return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'}, $text{'grace_days'}); } %name_to_unit = ( "second", 0, "seconds", 0, "minute", 1, "minutes", 1, "hour", 2, "hours", 2, "day", 3, "days", 3, ); foreach $k (keys %name_to_unit) { $unit_to_name{$name_to_unit{$k}} = $k; } 1; quota/index.cgi.bak0100755000567100000120000000631507440573534014242 0ustar jcameronwheel#!/usr/local/bin/perl # index.cgi # Display a list of all local filesystems, and allow editing of quotas # on those which have quotas turned on. The actual turning on of quotas must # be done in the mount module first. require './quota-lib.pl'; &header($text{'index_title'}, "", "intro", 1, 1, 0, &help_search_link("quota", "man", "howto")); print "
\n"; $err = "as_init(); if ($err) { print "

$err

\n"; print "


\n"; &footer("/", $text{'index_return'}); exit; } @list = &list_filesystems(); if (@list) { print "\n"; print "\n"; print "\n"; if ($access{'enable'}) { print "\n"; } else { print "\n"; } foreach $f (@list) { $qc = $f->[4]; $qc = $qc&1 if ($access{'gmode'} == 3); next if (!$qc); next if (!&can_edit_filesys($f->[0])); $qn = $f->[5]; if ($qc == 1) { $msg = $text{'index_quser'}; } elsif ($qc == 2) { $msg = $text{'index_qgroup'}; } elsif ($qc == 3) { $msg = $text{'index_qboth'}; } $canactivate = 1; if ($qn >= 4) { $chg = $text{'index_mountonly'}; $qn -= 4; $canactivate = 0; if ($qn) { $msg .= " $text{'index_active'}"; } else { $msg .= " $text{'index_inactive'}"; } } elsif ($qn) { $msg .= " $text{'index_active'}"; $chg = $text{'index_disable'}; } else { $msg .= " $text{'index_inactive'}"; $chg = $text{'index_enable'}; } if ($qn%2 == 1) { $useractive++; } if ($qn > 1) { $groupactive++; } print "\n"; print "\n"; print "\n"; print "\n"; if ($access{'enable'}) { if ($canactivate) { print "\n"; } else { print "\n"; } } print "\n"; } print "
$text{'index_fs'} $text{'index_type'}$text{'index_mount'} $text{'index_status'}$text{'index_action'}
\n"; $dir = $f->[0]; if (!$qn) { print $dir; } elsif ($qc == 1) { print "$dir";} elsif ($qc == 2) { print"$dir";} elsif ($qc == 3) { print "$dir (users)
"; print "$dir (groups)"; } print "
",&foreign_call("mount", "fstype_name", $f->[2]),"",&foreign_call("mount", "device_name", $f->[1]),"$msg$chg
\n"; } else { print "$text{'index_nosupport'}.
\n"; } print "\n"; if ($useractive) { print "\n"; print "\n"; } else { print "\n"; } if ($groupactive) { print "\n"; print "\n"; } else { print "\n"; } print "
\n"; print " ", &user_chooser_button("user", 0),"
\n"; print "\n"; print " ", &group_chooser_button("group", 0, $useractive ? 1 : 0), "
\n"; print "
\n"; &footer("/", $text{'index_return'}); quota/quota-lib.pl.bak0100755000567100000120000001223307440600013014654 0ustar jcameronwheel# quota-lib.pl # Common functions for quota management. do '../web-lib.pl'; &init_config(); do "./$gconfig{'os_type'}-lib.pl"; %access = &get_module_acl(); &foreign_require("mount", "mount-lib.pl"); # list_filesystems() # Returns a list of details of local filesystems on which quotas are supported # directory device type options quotacan quotanow sub list_filesystems { local $f; local @mtab = &foreign_call("mount", "list_mounted"); foreach $f (&foreign_call("mount", "list_mounts")) { $fmap{$f->[0],$f->[1]} = $f; } map { $_->[4] = "a_can($_, $fmap{$_->[0],$_->[1]}) } @mtab; map { $_->[5] = "a_now($_, $fmap{$_->[0],$_->[1]}) } @mtab; return grep { $_->[4] } @mtab; } # parse_options(type, options) # Convert an options string for some filesystem into the associative # array %options sub parse_options { local($_); undef(%options); if ($_[0] ne "-") { foreach (split(/,/, $_[0])) { if (/^([^=]+)=(.*)$/) { $options{$1} = $2; } else { $options{$_} = ""; } } } } # user_quota(user, filesystem) # Returns an array of ublocks, sblocks, hblocks, ufiles, sfiles, hfiles # for some user, or an empty array if no quota has been assigned sub user_quota { local (%user, $n, $i); $n = &filesystem_users($_[1]); for($i=0; $i<$n; $i++) { if ($user{$i,'user'} eq $_[0]) { return ( $user{$i,'ublocks'}, $user{$i,'sblocks'}, $user{$i,'hblocks'}, $user{$i,'ufiles'}, $user{$i,'sfiles'}, $user{$i,'hfiles'} ); } } return (); } # group_quota(group, filesystem) # Returns an array of ublocks, sblocks, hblocks, ufiles, sfiles, hfiles # for some group, or an empty array if no quota has been assigned sub group_quota { local (%group, $n, $i); $n = &filesystem_groups($_[1]); for($i=0; $i<$n; $i++) { if ($group{$i,'group'} eq $_[0]) { return ( $group{$i,'ublocks'}, $group{$i,'sblocks'}, $group{$i,'hblocks'}, $group{$i,'ufiles'}, $group{$i,'sfiles'}, $group{$i,'hfiles'} ); } } return (); } # edit_user_quota(user, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_user_quota { $ENV{'EDITOR'} = $ENV{'VISUAL'} = "./edquota.pl"; $ENV{'QUOTA_USER'} = $_[0]; $ENV{'QUOTA_FILESYS'} = $_[1]; $ENV{'QUOTA_SBLOCKS'} = $_[2]; $ENV{'QUOTA_HBLOCKS'} = $_[3]; $ENV{'QUOTA_SFILES'} = $_[4]; $ENV{'QUOTA_HFILES'} = $_[5]; &system_logged("$config{'user_edquota_command'} $_[0]"); } # edit_group_quota(group, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_group_quota { $ENV{'EDITOR'} = $ENV{'VISUAL'} = "./edquota.pl"; $ENV{'QUOTA_GROUP'} = $_[0]; $ENV{'QUOTA_FILESYS'} = $_[1]; $ENV{'QUOTA_SBLOCKS'} = $_[2]; $ENV{'QUOTA_HBLOCKS'} = $_[3]; $ENV{'QUOTA_SFILES'} = $_[4]; $ENV{'QUOTA_HFILES'} = $_[5]; &system_logged("$config{'group_edquota_command'} $_[0]"); } # edit_user_grace(filesystem, btime, bunits, ftime, funits) # Change the grace times for blocks and files on some filesystem sub edit_user_grace { $ENV{'EDITOR'} = $ENV{'VISUAL'} = "./edgrace.pl"; $ENV{'QUOTA_FILESYS'} = $_[0]; $ENV{'QUOTA_BTIME'} = $_[1]; $ENV{'QUOTA_BUNITS'} = $_[2]; $ENV{'QUOTA_FTIME'} = $_[3]; $ENV{'QUOTA_FUNITS'} = $_[4]; &system_logged($config{'user_grace_command'}); } # edit_group_grace(filesystem, btime, bunits, ftime, funits) # Change the grace times for blocks and files on some filesystem sub edit_group_grace { $ENV{'EDITOR'} = $ENV{'VISUAL'} = "./edgrace.pl"; $ENV{'QUOTA_FILESYS'} = $_[0]; $ENV{'QUOTA_BTIME'} = $_[1]; $ENV{'QUOTA_BUNITS'} = $_[2]; $ENV{'QUOTA_FTIME'} = $_[3]; $ENV{'QUOTA_FUNITS'} = $_[4]; &system_logged($config{'group_grace_command'}); } # quota_input(name) sub quota_input { printf " $text{'quota_unlimited'}\n", $_[1]==0 ? "checked" : ""; printf "\n", $_[1]==0 ? "" : "checked"; printf " \n", $_[1]==0 ? "" : $_[1]; } # can_edit_filesys(filesys) sub can_edit_filesys { local $fs; foreach $fs (split(/\s+/, $access{'filesys'})) { return 1 if ($fs eq "*" || $fs eq $_[0]); } return 0; } # can_edit_user(user) sub can_edit_user { if ($access{'umode'} == 0) { return 1; } elsif ($access{'umode'} == 3) { local @u = getpwnam($_[0]); return $access{'users'} == $u[3]; } elsif ($access{'umode'} == 4) { local @u = getpwnam($_[0]); return (!$access{'umin'} || $u[2] >= $access{'umin'}) && (!$access{'umax'} || $u[2] <= $access{'umax'}); } else { local ($u, %ucan); map { $ucan{$_}++ } split(/\s+/, $access{'users'}); return $access{'umode'} == 1 && $ucan{$_[0]} || $access{'umode'} == 2 && !$ucan{$_[0]}; } } # can_edit_group(group) sub can_edit_group { return 1 if ($access{'gmode'} == 0); return 0 if ($access{'gmode'} == 3); local ($g, %gcan); map { $gcan{$_}++ } split(/\s+/, $access{'groups'}); return $access{'gmode'} == 1 && $gcan{$_[0]} || $access{'gmode'} == 2 && !$gcan{$_[0]}; } # filesystem_info(filesystem, &hash, count) sub filesystem_info { local @fs = &free_space($_[0]); if ($_[1]) { local $bt = 0; local $ft = 0; local $i; for($i=0; $i<$_[2]; $i++) { $bt += $_[1]->{$i,'hblocks'}; $ft += $_[1]->{$i,'hfiles'}; } return ( "$fs[0] total / $fs[1] free / $bt granted", "$fs[2] total / $fs[3] free / $ft granted" ); } else { return ( "$fs[0] total / $fs[1] free", "$fs[2] total / $fs[3] free" ); } } quota/macos-lib.pl0100644000567100000120000002166510256142344014106 0ustar jcameronwheel# macos-lib.pl # Quota functions for OSX # XXX checking if on/off # quotas_init() sub quotas_init { if (&has_command("quotaon") && &has_command("quotaoff")) { return undef; } else { return "The quotas programs do not appear to be installed on ". "your system\n"; } } # quotas_supported() # Returns 1 for user quotas, 2 for group quotas or 3 for both sub quotas_supported { return 3; } # free_space(filesystem) # Returns an array containing btotal, bfree, ftotal, ffree sub free_space { local(@out, @rv); $ENV{'BLOCKSIZE'} = 1024; `df -i $_[0]` =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)\s+\S+\s+(\d+)\s+(\d+)/; return ($1, $2, $3+$4, $4); } # quota_can(&mnttab, &fstab) # Can this filesystem type support quotas? # 0 = No quota support (or not turned on in /etc/fstab) # 1 = User quotas only # 2 = Group quotas only # 3 = User and group quotas sub quota_can { return 0 if ($_[0]->[2] ne 'ufs' && $_[0]->[2] ne 'hfs'); return "a_now($_[0], $_[1]) || 3; # use the current mode if active } # quota_now(&mnttab, &fstab) # Are quotas currently active? # 0 = Not active # 1 = User quotas active # 2 = Group quotas active # 3 = Both active sub quota_now { local $rv; $rv += 1 if (-r "$_[0]->[0]/.quota.ops.user" && &big_enough("$_[0]->[0]/.quota.user")); $rv += 2 if (-r "$_[0]->[0]/.quota.ops.group" && &big_enough("$_[0]->[0]/.quota.group")); return $rv; } # quotaon(filesystem, mode) # Activate quotas and create quota files for some filesystem. The mode can # be 1 for user only, 2 for group only or 3 for user and group sub quotaon { return if (&is_readonly_mode()); local($out, $qf, @qfile, $flags); if ($_[1]%2 == 1) { # turn on user quotas $qf = "$_[0]/.quota.ops.user"; &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); $qf = "$_[0]/.quota.user"; if (!&big_enough($qf)) { &unlink_file($qf); &system_logged("$config{'quotacheck_command'} $_[0]"); } $out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } if ($_[1] > 1) { # turn on group quotas $qf = "$_[0]/.quota.ops.group"; &open_tempfile(QUOTAFILE, ">$qf", 0, 1); &close_tempfile(QUOTAFILE); $qf = "$_[0]/quota.group"; if (!&big_enough($qf)) { &unlink_file($qf); &system_logged("$config{'quotacheck_command'} $_[0]"); } $out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1"); if ($?) { return $out; } } return undef; } sub big_enough { local @st = stat($_[0]); return $st[7] >= 1024; } # quotaoff(filesystem, mode) # Turn off quotas for some filesystem sub quotaoff { return if (&is_readonly_mode()); local($out); if ($_[1]%2 == 1) { $out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } &unlink_file("$_[0]/.quota.ops.user"); } if ($_[1] > 1) { $out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1"); if ($?) { return $out; } &unlink_file("$_[0]/.quota.ops.group"); } return undef; } # user_filesystems(user) # Fills the array %filesys with details of all filesystem some user has # quotas on sub user_filesystems { local($n, $_, %mtab); open(QUOTA, "$config{'user_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|\s+Filesystem)/) { next; } if (/^(\S+)\s+(\S+)\s+(\S+)\s+(\S+).(.{9})\s+(\S+)\s+(\S+)\s+(\S+)/) { $filesys{$n,'filesys'} = $1; $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($6); $filesys{$n,'sfiles'} = int($7); $filesys{$n,'hfiles'} = int($8); $n++; } } close(QUOTA); return $n; } # group_filesystems(group) # Fills the array %filesys with details of all filesystem some group has # quotas on sub group_filesystems { local($n, $_, %mtab); open(QUOTA, "$config{'group_quota_command'} ".quotemeta($_[0])." |"); $n=0; while() { chop; if (/^(Disk|\s+Filesystem)/) { next; } if (/^(\S+)\s+(\S+)\s+(\S+)\s+(\S+).(.{9})\s+(\S+)\s+(\S+)\s+(\S+)/) { $filesys{$n,'filesys'} = $1; $filesys{$n,'ublocks'} = int($2); $filesys{$n,'sblocks'} = int($3); $filesys{$n,'hblocks'} = int($4); $filesys{$n,'ufiles'} = int($6); $filesys{$n,'sfiles'} = int($7); $filesys{$n,'hfiles'} = int($8); $n++; } } close(QUOTA); return $n; } # filesystem_users(filesystem) # Fills the array %user with information about all users with quotas # on this filesystem. This may not be all users on the system.. sub filesystem_users { local($rep, @rep, $n, $what); $rep = `$config{'user_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } @rep = split(/\n/, $rep); @rep = grep { !/^root\s/ } @rep[3..$#rep]; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) { $user{$n,'user'} = $1; $user{$n,'ublocks'} = int($2); $user{$n,'sblocks'} = int($3); $user{$n,'hblocks'} = int($4); $user{$n,'ufiles'} = int($5); $user{$n,'sfiles'} = int($6); $user{$n,'hfiles'} = int($7); } } return $n; } # filesystem_groups(filesystem) # Fills the array %group with information about all groups with quotas # on this filesystem. This may not be all groups on the system.. sub filesystem_groups { local($rep, @rep, $n, $what); $rep = `$config{'group_repquota_command'} $_[0] 2>&1`; if ($?) { return -1; } @rep = split(/\n/, $rep); @rep = @rep[3..$#rep]; for($n=0; $n<@rep; $n++) { if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) { $group{$n,'group'} = $1; $group{$n,'ublocks'} = int($2); $group{$n,'sblocks'} = int($3); $group{$n,'hblocks'} = int($4); $group{$n,'ufiles'} = int($5); $group{$n,'sfiles'} = int($6); $group{$n,'hfiles'} = int($7); } } return $n; } # edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles) sub edit_quota_file { local($rv, $line, %mtab, @m); @line = split(/\n/, $_[0]); for($i=0; $i<@line; $i++) { if ($line[$i] =~ /^(\S+): (.*) in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) { # found lines to change $rv .= "$1: $2 in use: $3, limits (soft = $_[2], hard = $_[3])\n"; $line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/; $rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n"; } else { $rv .= "$line[$i]\n"; } } return $rv; } # quotacheck(filesystem, mode) # Runs quotacheck on some filesystem sub quotacheck { $out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1"); if ($?) { return $out; } return undef; } # copy_user_quota(user, [user]+) # Copy the quotas for some user to many others sub copy_user_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'user_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # copy_group_quota(group, [group]+) # Copy the quotas for some group to many others sub copy_group_quota { for($i=1; $i<@_; $i++) { $out = &backquote_logged("$config{'group_copy_command'} ". quotemeta($_[0])." ".quotemeta($_[$i])." 2>&1"); if ($?) { return $out; } } return undef; } # default_grace() # Returns 0 if grace time can be 0, 1 if zero grace means default sub default_grace { return 0; } # get_user_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_user_grace { local(@rv, %mtab, @m); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'user_grace_command'} $_[0] |"); while() { if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } } close(GRACE); return @rv; } # get_group_grace(filesystem) # Returns an array containing btime, bunits, ftime, funits # The units can be 0=sec, 1=min, 2=hour, 3=day sub get_group_grace { local(@rv, %mtab, @m); $ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat"; open(GRACE, "$config{'group_grace_command'} $_[0] |"); while() { if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) { @rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5}); } } close(GRACE); return @rv; } # edit_grace_file(data, filesystem, btime, bunits, ftime, funits) sub edit_grace_file { local($rv, $line, @m, %mtab); foreach $line (split(/\n/, $_[0])) { if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[1]) { # replace this line $line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}"; } $rv .= "$line\n"; } return $rv; } # grace_units() # Returns an array of possible units for grace periods sub grace_units { return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'}, $text{'grace_days'}); } %name_to_unit = ( "second", 0, "seconds", 0, "minute", 1, "minutes", 1, "hour", 2, "hours", 2, "day", 3, "days", 3, ); foreach $k (keys %name_to_unit) { $unit_to_name{$name_to_unit{$k}} = $k; } 1; quota/config-macos0100644000567100000120000000132510256466543014174 0ustar jcameronwheeluser_quotaoff_command=quotaoff -u user_quotaon_command=quotaon -u group_copy_command=edquota -g -p quotacheck_command=quotacheck user_quota_command=quota -v -u group_grace_command=edquota -t -g user_repquota_command=repquota -u -v user_edquota_command=edquota -u group_quotaoff_command=quotaoff -g group_quotaon_command=quotaon -g group_quota_command=quota -v -g user_copy_command=edquota -u -p group_repquota_command=repquota -g -v display_max=100 group_edquota_command=edquota -g user_grace_command=edquota -t -u sort_mode=0 block_mode=1 show_grace=0 email_msg=Disk usage for user ${USER} on filesystem ${FS} has reached ${PERCENT}% of the allowed quota. ${USED} of disk space is being used, out of a maximum of ${QUOTA}. quota/save_gsync.cgi0100755000567100000120000000144010254723615014524 0ustar jcameronwheel#!/usr/local/bin/perl # save_gsync.cgi # Save default quotas for groups require './quota-lib.pl'; &ReadParse(); $access{'default'} && &can_edit_filesys($in{'filesys'}) || &error($text{'ssync_ecannot'}); $bsize = &block_size($in{'filesys'}); &lock_file("$module_config_directory/config"); $v = join(' ', "a_parse("sblocks", $bsize), "a_parse("hblocks", $bsize), ($in{'sfiles_def'} ? 0 : $in{'sfiles'}), ($in{'hfiles_def'} ? 0 : $in{'hfiles'}) ); $k = "gsync_$in{'filesys'}"; if ($v eq "0 0 0 0") { delete($config{$k}); } else { $config{$k} = $v; } &write_file("$module_config_directory/config", \%config); &unlock_file("$module_config_directory/config"); &webmin_log("sync", "group", $in{'filesys'}, \%in); &redirect("list_groups.cgi?dir=".&urlize($in{'filesys'})); quota/install_check.pl0100664000567100000120000000056507714373537015060 0ustar jcameronwheel# install_check.pl do 'quota-lib.pl'; # is_installed(mode) # For mode 1, returns 2 if the server is installed and configured for use by # Webmin, 1 if installed but not configured, or 0 otherwise. # For mode 0, returns 1 if installed, 0 if not sub is_installed { if (defined("as_init)) { local $err = "as_init(); return 0 if ($err); } return $_[0] ? 2 : 1; } quota/config-*-linux0100644000567100000120000000135310262123004014334 0ustar jcameronwheeldisplay_max=100 user_grace_command=edquota -u -t group_grace_command=edquota -g -t group_quotaon_command=quotaon -g user_quotaoff_command=quotaoff -u user_quotaon_command=quotaon -u group_quota_command=quota -v -g group_copy_command=edquota -g -p quotacheck_command=quotacheck -u -g user_quota_command=quota -v -u user_copy_command=edquota -u -p group_repquota_command=repquota -g -v user_repquota_command=repquota -u -v group_edquota_command=edquota -g user_edquota_command=edquota -u group_quotaoff_command=quotaoff -g sort_mode=0 block_mode=1 block_size=1024 show_grace=1 email_msg=Disk usage for user ${USER} on filesystem ${FS} has reached ${PERCENT}% of the allowed quota. ${USED} of disk space is being used, out of a maximum of ${QUOTA}.