| | |
| | | UnixUser unixUser = getPacAdminUser(pac); |
| | | String password = PasswordTool.generatePassword(); |
| | | return new CompoundProcessor( |
| | | createAddUserProc(pacName, unixUser, password), |
| | | createAddUserProc(pacName, unixUser, password), |
| | | createSetQuotaProc(pac), |
| | | createEtcHostsProc(hive), |
| | | createEtcHostsProc(hive), |
| | | createNetworkInterfacesProc(hive), |
| | | createIPTablesProc(), |
| | | createSudouersProc(hive), |
| | | createProftpdConfProc(hive), |
| | | createSudouersProc(hive), |
| | | createProftpdConfProc(hive), |
| | | createMakePacDirectoryStructure(unixUser), |
| | | createIfUp(pacName), |
| | | createHttpdVirtualProc(hive), |
| | |
| | | |
| | | private Processor createHttpdVirtualProc(Hive hive) throws ProcessorException { |
| | | Processor domSetupProcessor = new CompoundProcessor( |
| | | new CreateFileProcessor("/de/hsadmin/mods/pac/httpd-virtual.vm", hive, |
| | | new CreateFileProcessor("/de/hsadmin/mods/pac/httpd-virtual.vm", hive, |
| | | "/etc/apache2/virtual.conf.tmp", "root", "root", "644", true), |
| | | new ShellProcessor("for PEM in $( cat /etc/apache2/virtual.conf.tmp | grep SSLCertificateFile | cut -c24- ); do " + |
| | | "ls $PEM >/dev/null 2>&1 || ( " + |
| | |
| | | "done"), |
| | | new ShellProcessor("(diff -q /etc/apache2/virtual.conf.tmp /etc/apache2/virtual.conf" |
| | | + " && rm /etc/apache2/virtual.conf.tmp )" |
| | | + " || ( mv /etc/apache2/virtual.conf.tmp /etc/apache2/virtual.conf " |
| | | + " || ( mv /etc/apache2/virtual.conf.tmp /etc/apache2/virtual.conf " |
| | | + " && invoke-rc.d apache2 reload >/dev/null 2>&1 ) ")); |
| | | return domSetupProcessor; |
| | | } |
| | | |
| | | @Override |
| | | public <T extends AbstractEntity> Processor createUpdateProcessor(EntityManager em, T entity) |
| | | public <T extends AbstractEntity> Processor createUpdateProcessor(EntityManager em, T entity) |
| | | throws ProcessorException { |
| | | Pac pac = (Pac) entity; |
| | | String basepacName = pac.getBasepac().getName(); |
| | |
| | | return createSetQuotaProc(pac); |
| | | } else { |
| | | return new NullProcessor(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | WaitingTasksProcessor waiting = new WaitingTasksProcessor(createDelUserProc(pac.getName())); |
| | | waiting.appendProcessor(pac.getHiveName(), new CompoundProcessor( |
| | | createIfDown(pac.getName()), |
| | | createEtcHostsProc(hive), |
| | | createNetworkInterfacesProc(hive), |
| | | createSudouersProc(hive), |
| | | createEtcHostsProc(hive), |
| | | createNetworkInterfacesProc(hive), |
| | | createSudouersProc(hive), |
| | | createProftpdConfProc(hive), |
| | | createHttpdVirtualProc(hive), |
| | | createAccountingRulesProc()), "remove packet"); |
| | | return waiting; |
| | | } else { |
| | | return new NullProcessor(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private Processor createEtcHostsProc(Hive hive) throws ProcessorException { |
| | |
| | | quota = pacComponent.getQuantity() * 1024; |
| | | } |
| | | } |
| | | int blocksSoft = quota; |
| | | int blocksHard = ((Double) (quota * QuotaLimit.GROUP_HARD_FACTOR)).intValue(); |
| | | int inodesSoft = ((Double) (quota * QuotaLimit.INODE_LIMIT_FACTOR)).intValue(); |
| | | int inodesHard = ((Double) (quota * QuotaLimit.INODE_LIMIT_FACTOR)).intValue(); |
| | | return new ShellProcessor("setquota -g " + pac.getName() + " " |
| | | + blocksSoft + " " + blocksHard + " " |
| | | int blocksSoft = ((Double) (quota * QuotaLimit.BLOCK_QUOTA_FACTOR)).intValue(); |
| | | int blocksHard = ((Double) (quota * QuotaLimit.BLOCK_LIMIT_FACTOR)).intValue(); |
| | | int inodesSoft = ((Double) (quota * QuotaLimit.FILE_QUOTA_FACTOR)).intValue(); |
| | | int inodesHard = ((Double) (quota * QuotaLimit.FILE_QUOTA_FACTOR)).intValue(); |
| | | return new ShellProcessor("setquota -g " + pac.getName() + " " |
| | | + blocksSoft + " " + blocksHard + " " |
| | | + inodesSoft + " " + inodesHard + " " |
| | | + "`df /home/pacs/ | tail -n1 | cut -d' ' -f1`"); |
| | | } |
| | |
| | | return new ShellProcessor("chmod 711 " + homedir + " && " + |
| | | "su -l " + username + " -s \"/bin/bash\" -c \"mkdir -p " + |
| | | homedir + "/.bak " + |
| | | homedir + "/doms " + |
| | | homedir + "/doms " + |
| | | homedir + "/etc " + |
| | | homedir + "/users " + |
| | | homedir + "/var " + |
| | | homedir + "/users " + |
| | | homedir + "/var " + |
| | | "\" && " + |
| | | "chmod 0700 " + homedir + "/.bak && " + |
| | | "chown httpd " + homedir + "/doms && " + |