[Owncloud] How to manage thousands of users?
Stefan Vollmar
vollmar at nf.mpg.de
Mon Sep 30 21:55:47 UTC 2013
Hello,
please find attached a script for setting the quota for existing users. It was inspired by Jakub's email and also aims at automated, scriptable administration of an owncloud instance.
<?php
# Set quota for existing user.
# Author: Stefan Vollmar, 2013, MPI for Neurological Research, Cologne
# using code from Jakub T. Moscicki, 2013, CERN/IT
#
# run on the owncloud application server:
# php -f set-quota.php USER QUOTA
# e.g. php -f set-quota.php aeinstein 3g
# e.g. php -f set-quota.php aeinstein "3 GB"
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/owncloud');
require_once 'lib/base.php';
$login = $argv[1];
$quota = $argv[2];
if(OC_User::userExists($login)) {
if($quota!='none' and $quota!='default') {
$quota = OC_Helper::computerFileSize($quota);
$quota = OC_Helper::humanFileSize($quota);
}
print "setting quota of user \"".$login."\" to ".$quota."\n";
OC_Preferences::setValue($login, 'files', 'quota', $quota);
print "done.\n";
}
else {
print "*** ERROR: user \"".$login."\" does not exist.\n";
}
?>
Warm regards,
Stefan
On 28.09.2013, at 13:16, Jakub Moscicki <Jakub.Moscicki at cern.ch> wrote:
> Hello again,
>
> Let me share a small script that I recently wrote by analysing the API. I would appreciate if the owncloud developers could comment if this is a right approach - it works for me but it has been developed purely experimentally and maybe there are some loopholes.
>
> It creates a user account and sets up the filesystem. Just run this script on the server possibly adjusting the location of your ownloud path.
>
> I use it for creating test accounts.
>
> I hope this will be useful for you, too.
>
> kuba
>
> --
>
> create_test_user.php:
>
> <?php
>
> # Create local user account.
> #
> # Author: Jakub T. Moscicki, 2013, CERN/IT
> #
> # To be placed and run on the owncloud application server:
> #
> # php -f create_test_user.php USER PASSWORD
> #
>
> set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/html/owncloud');
>
> require_once 'lib/base.php';
>
> $login = $argv[1];
> $password = $argv[2];
>
> if(OC_User::userExists($login)) {
> print "user already exists:".$login."\n";
> OC_User::setPassword($login,$password);
> print "password overwritten\n";
> }
> else
> {
> print "creating user... \n";
> OC_User::createUser($login,$password);
> print "user created and password set:".$login."\n";
> OC_Util::setupFS($login);
> print "setup FS done\n";
> }
>
> ?>
>
>
>
>
> On Sep 28, 2013, at 10:35 AM, Jakub Moscicki <jakub.moscicki at cern.ch> wrote:
>
>> Hello,
>>
>> I found this tool - I have not tested all functionality (only file upload with admin masquerading) but it also has the set_quota option:
>>
>> http://forum.owncloud.org/viewtopic.php?t=8684
>>
>> kuba
>>
>> --
>>
>> On Sep 28, 2013, at 12:18 AM, Stefan Vollmar <vollmar at nf.mpg.de>
>> wrote:
>>
>>> Dear CJ Keist,
>>>
>>> On 27.09.2013, at 22:28, CJ Keist <cj.keist at colostate.edu> wrote:
>>>
>>>> The web interface doesn't look to have the ability to list thousands of users on my owncloud system. So there is no way for me to set custom disk quotas for users that are not displayed on the web interface. I have tried the search function on the page but that doesn't work.
>>>> So I tried to see where disk quota settings are stored on the mysql database but have not had any luck finding where that value is set per user account. Could someone direct me on how I can set default disk quota for users on my system?
>>>
>>> I am not sure that this is the "official" way of doing things but I would suggest a different approach: if you use the MySQL backend, it seems to be pretty straightforward to set all sorts of parameters with a few lines of SQL code. In fact, this is similar to our own automated method of creating a large number of users in OwnCloud and sending automatically generated E-mails with activation links (tokens).
>>>
>>> With OwnCloud 5, you can look up user data in the oc_user table (here: "aeinstein" is the "uid" of "Albert Einstein"), you can then set a quota of 10 GB like this:
>>>
>>> INSERT INTO `oc_preferences` VALUES
>>> ('aeinstein','files','quota','10 GB');
>>>
>>> If you have a list of uids it is very easy to repeat that line as often as required.
>>>
>>> Warm regards,
>>> Stefan
>>>
>>>>
>>>>
>>>> --
>>>> C. J. Keist Email: cj.keist at colostate.edu
>>>> Systems Group Manager Solaris 10 OS (SAI)
>>>> Engineering Network Services Phone: 970-491-0630
>>>> College of Engineering, CSU Fax: 970-491-5569
>>>> Ft. Collins, CO 80523-1301
>>>>
>>>> All I want is a chance to prove 'Money can't buy happiness'
>>>>
>>>> _______________________________________________
>>>> Owncloud mailing list
>>>> Owncloud at kde.org
>>>> https://mail.kde.org/mailman/listinfo/owncloud
>>>
>>> --
>>> Dr. Stefan Vollmar, Dipl.-Phys.
>>> Head of IT group
>>> Max-Planck-Institut für neurologische Forschung
>>> Gleueler Str. 50, 50931 Köln, Germany
>>> Tel.: +49-221-4726-213 FAX +49-221-4726-298
>>> Tel.: +49-221-478-5713 Mobile: 0160-93874279
>>> E-Mail: vollmar at nf.mpg.de http://www.nf.mpg.de
>>>
>>>
>>>
>>> _______________________________________________
>>> Owncloud mailing list
>>> Owncloud at kde.org
>>> https://mail.kde.org/mailman/listinfo/owncloud
>>
>> _______________________________________________
>> Owncloud mailing list
>> Owncloud at kde.org
>> https://mail.kde.org/mailman/listinfo/owncloud
>
> _______________________________________________
> Owncloud mailing list
> Owncloud at kde.org
> https://mail.kde.org/mailman/listinfo/owncloud
--
Dr. Stefan Vollmar, Dipl.-Phys.
Head of IT group
Max-Planck-Institut für neurologische Forschung
Gleueler Str. 50, 50931 Köln, Germany
Tel.: +49-221-4726-213 FAX +49-221-4726-298
Tel.: +49-221-478-5713 Mobile: 0160-93874279
E-Mail: vollmar at nf.mpg.de http://www.nf.mpg.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4490 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/owncloud/attachments/20130930/4dbd5d21/attachment.bin>
More information about the Owncloud
mailing list