Exemplo n.º 1
0
 private void RunAs(string username, string command)
 {
     if (!UserPass.ContainsKey(username))
     {
         Console.WriteLine("User does not exist");
         return;
     }
     if (services.Usermanager.CurrentUser.privLevel == services.Usermanager.privilege.User)
     {
         Console.Write($"Password for {username}: ");
         var pass = ReadPass();
         if (pass != UserPass[username])
         {
             Console.WriteLine("Wrong password. Try again.");
             return;
         }
         services.Usermanager.User old = services.Usermanager.CurrentUser;
         if (int.TryParse(File.ReadAllLines($@"0:\System\inf\{username}.usr")[1], out int priv))
         {
             services.Usermanager.CurrentUser = new services.Usermanager.User()
             {
                 username = username, privLevel = (services.Usermanager.privilege)priv
             }
         }
         ;
         else
         {
             Console.WriteLine($"An error occurred while trying to execute that command as {username}");
         }
         Console.WriteLine($"Forced by: {old.username}");
         RunCommand(command);
         services.Usermanager.CurrentUser = old;
     }
 }
Exemplo n.º 2
0
        private void Privil(string cmd)
        {
            if (!isFSloaded)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Filesystem not initialized!\nPlease initialize it with command \"fs load\"");
                Console.ResetColor();
                return;
            }
            if (!PrivilElev(services.Usermanager.CurrentUser.username))
            {
                return;
            }
            services.Usermanager.User old = services.Usermanager.CurrentUser;
            services.Usermanager.CurrentUser = new services.Usermanager.User()
            {
                username = "******", privLevel = services.Usermanager.privilege.Privileged
            };
            var comm = cmd.Split(' ');

            if (comm[0] == "-a")
            {
                if (comm.Length > 1)
                {
                    AddPrivil(comm[1]);
                }
                else
                {
                    Console.WriteLine("Syntax error: privil -a (username)");
                }
            }
            else if (comm[0] == "-r")
            {
                if (comm.Length > 1)
                {
                    RemPrivil(comm[1]);
                }
                else
                {
                    Console.WriteLine("Syntax error: privil -r (username)");
                }
            }
            else
            {
                RunCommand(cmd);
            }
            services.Usermanager.CurrentUser = old;
        }