Bugfixes
This commit is contained in:
@ -964,13 +964,6 @@ function setup_chroot(string $account, string $last_account){
|
||||
$passwd_line = "$user[name]:$user[passwd]:$user[uid]:$user[gid]:$user[gecos]:/:$user[shell]";
|
||||
exec('/var/www/setup_chroot.sh ' . escapeshellarg("/home/$system_account"));
|
||||
file_put_contents("/home/$system_account/etc/passwd", $passwd_line, FILE_APPEND);
|
||||
if($last_account !== false){
|
||||
exec('hardlink -c ' . escapeshellarg("/home/$system_account/bin") . ' ' . escapeshellarg("/home/$last_account/bin"));
|
||||
exec('hardlink -c ' . escapeshellarg("/home/$system_account/etc") . ' ' . escapeshellarg("/home/$last_account/etc"));
|
||||
exec('hardlink -c ' . escapeshellarg("/home/$system_account/lib") . ' ' . escapeshellarg("/home/$last_account/lib"));
|
||||
exec('hardlink -c ' . escapeshellarg("/home/$system_account/lib64") . ' ' . escapeshellarg("/home/$last_account/lib64"));
|
||||
exec('hardlink -c ' . escapeshellarg("/home/$system_account/usr") . ' ' . escapeshellarg("/home/$last_account/usr"));
|
||||
}
|
||||
foreach(['.cache', '.composer', '.config', '.gnupg', '.local', '.ssh', 'data', 'Maildir'] as $dir){
|
||||
if(!is_dir("/home/$system_account/$dir")){
|
||||
mkdir("/home/$system_account/$dir", 0700);
|
||||
@ -993,6 +986,13 @@ function setup_chroot(string $account, string $last_account){
|
||||
chown("/home/$system_account/$file", $system_account);
|
||||
chgrp("/home/$system_account/$file", 'www-data');
|
||||
}
|
||||
if($last_account !== false){
|
||||
exec('hardlink -t -s 0 -m ' . escapeshellarg("/home/$system_account/bin") . ' ' . escapeshellarg("/home/$last_account/bin"));
|
||||
exec('hardlink -t -s 0 -m ' . escapeshellarg("/home/$system_account/etc") . ' ' . escapeshellarg("/home/$last_account/etc"));
|
||||
exec('hardlink -t -s 0 -m ' . escapeshellarg("/home/$system_account/lib") . ' ' . escapeshellarg("/home/$last_account/lib"));
|
||||
exec('hardlink -t -s 0 -m ' . escapeshellarg("/home/$system_account/lib64") . ' ' . escapeshellarg("/home/$last_account/lib64"));
|
||||
exec('hardlink -t -s 0 -m ' . escapeshellarg("/home/$system_account/usr") . ' ' . escapeshellarg("/home/$last_account/usr"));
|
||||
}
|
||||
}
|
||||
|
||||
function update_system_user_password(string $user, string $password){
|
||||
|
@ -15,6 +15,8 @@ $newest_account=$db->query('SELECT system_account FROM users WHERE id NOT IN (SE
|
||||
$last_account = $newest_account->fetch(PDO::FETCH_NUM);
|
||||
if(is_array($last_account)){
|
||||
$last_account = $last_account[0];
|
||||
} else {
|
||||
$last_account = '';
|
||||
}
|
||||
$del=$db->prepare("DELETE FROM new_account WHERE user_id=?;");
|
||||
$approval = REQUIRE_APPROVAL ? 'WHERE new_account.approved=1': '';
|
||||
@ -144,7 +146,7 @@ while($account=$stmt->fetch(PDO::FETCH_ASSOC)){
|
||||
echo "ERROR: Account $account[system_account] looks strange\n";
|
||||
continue;
|
||||
}
|
||||
exec('quotatool -u '. escapeshellarg($system_account) . ' -i -q ' . escapeshellarg($account['quota_files']) . ' -l ' . escapeshellarg($account['quota_size']) . ' ' . HOME_MOUNT_PATH);
|
||||
exec('quotatool -u '. escapeshellarg($system_account) . ' -b -q ' . escapeshellarg($account['quota_files']) . ' -l ' . escapeshellarg($account['quota_size']) . ' ' . HOME_MOUNT_PATH);
|
||||
exec('quotatool -u '. escapeshellarg($system_account) . ' -i -q ' . escapeshellarg($account['quota_files']) . ' -l ' . escapeshellarg($account['quota_files']) . ' ' . HOME_MOUNT_PATH);
|
||||
exec('quotatool -u '. escapeshellarg($system_account) . ' -b -q ' . escapeshellarg($account['quota_size']) . ' -l ' . escapeshellarg($account['quota_size']) . ' ' . HOME_MOUNT_PATH);
|
||||
$updated->execute([$account['id']]);
|
||||
}
|
||||
|
@ -12,14 +12,14 @@ header('X-Accel-Expires: 60');
|
||||
</head><body>
|
||||
<h1>Hosting - Info</h1>
|
||||
<p>Info | <a href="register.php">Register</a> | <a href="login.php">Login</a> | <a href="list.php">List of hosted sites</a> | <a href="faq.php">FAQ</a></p>
|
||||
<p>Here you can get yourself a hosting account on my server.</p>
|
||||
<p>What you will get:</p>
|
||||
<p>Here you can get yourself a free web hosting account on my server.</p>
|
||||
<h2>What you get:</h2>
|
||||
<ul>
|
||||
<li>Completely free anonymous Tor and clearnet webhosting</li>
|
||||
<li>Completely free anonymous Tor and clearnet web hosting</li>
|
||||
<li>Choose between PHP <?php echo implode(', ', PHP_VERSIONS); ?> or no PHP support</li>
|
||||
<li>Nginx Webserver</li>
|
||||
<li>SQLite support</li>
|
||||
<li>MariaDB (MySQL) database support</li>
|
||||
<li>Up to <?php echo MAX_NUM_USER_DBS; ?> MariaDB (MySQL) databases</li>
|
||||
<li><a href="/phpmyadmin/" target="_blank">PHPMyAdmin</a> and <a href="/adminer/" target="_blank">Adminer</a> for web based database administration</li>
|
||||
<li>Web-based file manager</li>
|
||||
<li>FTP and SFTP access</li>
|
||||
@ -27,7 +27,6 @@ header('X-Accel-Expires: 60');
|
||||
<li>1GB disk quota and a maximum of 100.000 files<?php echo ENABLE_UPGRADES ? ' - upgradable' : ''; ?></li>
|
||||
<li>mail() can send e-mails from your_system_account@<?php echo ADDRESS; ?> (your_system_account@hosting.danwin1210.me for clearnet)</li>
|
||||
<li>Webmail and IMAP, POP3 and SMTP access to your mail account</li>
|
||||
<li>Mail sent to anything@your.onion gets automatically redirected to your inbox</li>
|
||||
<li>Your own .onion domains</li>
|
||||
<li>Clearnet domains or a free subdomain of danwin1210.me</li>
|
||||
<li>There is a missing feature or you need a special configuration? Just <a href="https://danwin1210.me/contact.php">contact me</a> and I'll see what I can do.</li>
|
||||
|
@ -11,7 +11,7 @@ $db = get_db_instance();
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="canonical" href="<?php echo CANONICAL_URL . $_SERVER['SCRIPT_NAME']; ?>">
|
||||
<style>td{padding:5px;}</style>
|
||||
<base target="_blank">
|
||||
<base rel="noopener" target="_blank">
|
||||
</head><body>
|
||||
<h1>Hosting - List of hosted sites</h1>
|
||||
<p><a href="index.php" target="_self">Info</a> | <a href="register.php" target="_self">Register</a> | <a href="login.php" target="_self">Login</a> | List of hosted sites | <a href="faq.php" target="_self">FAQ</a></p>
|
||||
|
@ -292,10 +292,12 @@ exec('/var/www/setup_chroot.sh /var/www');
|
||||
if(!SKIP_USER_CHROOT_UPDATE){
|
||||
$stmt=$db->query('SELECT system_account FROM users;');
|
||||
$shell = ENABLE_SHELL_ACCESS ? '/bin/bash' : '/usr/sbin/nologin';
|
||||
$last_account = '';
|
||||
while($tmp=$stmt->fetch(PDO::FETCH_ASSOC)){
|
||||
echo "Updating chroot for user $tmp[system_account]…\n";
|
||||
exec('usermod -s ' . escapeshellarg($shell) . ' ' . escapeshellarg($tmp['system_account']));
|
||||
setup_chroot($tmp['system_account']);
|
||||
setup_chroot($tmp['system_account'], $last_account);
|
||||
$last_account = $tmp['system_account'];
|
||||
}
|
||||
}
|
||||
if(!file_exists("/etc/nginx/sites-enabled/")){
|
||||
|
Reference in New Issue
Block a user