void SelfTestDialog::testRootUser() { KUser user; if ( user.isSuperUser() ) { report( Error, ki18n( "Akonadi was started as root" ), ki18n( "Running Internet-facing applications as root/administrator exposes you to many security risks. MySQL, used by this Akonadi installation, will not allow itself to run as root, to protect you from these risks." ) ); } else { report( Success, ki18n( "Akonadi is not running as root" ), ki18n( "Akonadi is not running as a root/administrator user, which is the recommended setup for a secure system." ) ); } }
int main(int argc, char **argv) { KAboutData aboutData("kdepasswd", 0, ki18n("KDE passwd"), KDE_VERSION_STRING, ki18n("Changes a UNIX password."), KAboutData::License_Artistic, ki18n("Copyright (c) 2000 Geert Jansen")); aboutData.addAuthor(ki18n("Geert Jansen"), ki18n("Maintainer"), "*****@*****.**"); aboutData.setProgramIconName( "preferences-desktop-user-password" ); KCmdLineArgs::init(argc, argv, &aboutData); KCmdLineOptions options; options.add("+[user]", ki18n("Change password of this user")); KCmdLineArgs::addCmdLineOptions(options); KUniqueApplication::addCmdLineOptions(); if (!KUniqueApplication::start()) { kDebug() << "kdepasswd is already running"; return 2; } KUniqueApplication app; KUser ku; QString user; bool bRoot = ku.isSuperUser(); KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); if (args->count()) user = args->arg(0); /* You must be able to run "kdepasswd loginName" */ if ( !user.isEmpty() && user!=KUser().loginName() && !bRoot) { KMessageBox::sorry(0, i18n("You need to be root to change the password of other users.")); return 1; } QByteArray oldpass; if (!bRoot) { int result = KDEpasswd1Dialog::getPassword(oldpass); if (result != KDEpasswd1Dialog::Accepted) return 1; } KDEpasswd2Dialog *dlg = new KDEpasswd2Dialog(oldpass, user.toLocal8Bit()); dlg->exec(); if (dlg->result() == KDEpasswd2Dialog::Rejected) return 1; return 0; }