Check for sudo privileges
This commit is contained in:
parent
177e8e1190
commit
99cf9bd2bd
@ -15,6 +15,8 @@ public class Program {
|
|||||||
|
|
||||||
WhereisUtils utils = new WhereisUtils();
|
WhereisUtils utils = new WhereisUtils();
|
||||||
|
|
||||||
|
utils.prepare();
|
||||||
|
|
||||||
string fileName = Path.GetFileNameWithoutExtension(args[0]);
|
string fileName = Path.GetFileNameWithoutExtension(args[0]);
|
||||||
string fileExtension = Path.GetExtension(args[0]);;
|
string fileExtension = Path.GetExtension(args[0]);;
|
||||||
string searchPath = "/";
|
string searchPath = "/";
|
||||||
@ -25,6 +27,7 @@ public class Program {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Console.ResetColor();
|
||||||
ConcurrentBag<string> files = utils.FindFiles(fileName, fileExtension, searchPath, maxDepth: 5);
|
ConcurrentBag<string> files = utils.FindFiles(fileName, fileExtension, searchPath, maxDepth: 5);
|
||||||
|
|
||||||
bool foundFiles = false;
|
bool foundFiles = false;
|
||||||
|
@ -2,7 +2,37 @@
|
|||||||
|
|
||||||
namespace Whereis.Utils;
|
namespace Whereis.Utils;
|
||||||
public class WhereisUtils {
|
public class WhereisUtils {
|
||||||
private readonly string[] ExcludedDirectories = { "/dev", "/proc", "/tmp", "/boot", "/run", "/root", "/sys", "/etc", "/var", "/lib", "/lib64", "/usr", "/sbin", "/lost+found" };
|
|
||||||
|
public string[] ExcludedDirectories = new string[] {};
|
||||||
|
public string[] prepare() {
|
||||||
|
if (wasExecutedWithSudo() == false) {
|
||||||
|
ExcludedDirectories = new string[] { "/dev", "/proc", "/tmp", "/boot", "/run", "/root", "/sys", "/etc", "/var", "/lib", "/lib64", "/usr", "/sbin", "/lost+found" };
|
||||||
|
} else {
|
||||||
|
ExcludedDirectories = new string[] { "/dev", "/proc" };
|
||||||
|
}
|
||||||
|
|
||||||
|
return ExcludedDirectories;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool wasExecutedWithSudo() {
|
||||||
|
bool sudo = false;
|
||||||
|
try {
|
||||||
|
string protectedDirectoryPath = "/root";
|
||||||
|
|
||||||
|
// Attempt to open the protected directory
|
||||||
|
Directory.GetFiles(protectedDirectoryPath);
|
||||||
|
|
||||||
|
// Access succeeded
|
||||||
|
Console.WriteLine("Program executed with sudo privileges.");
|
||||||
|
sudo = true;
|
||||||
|
}
|
||||||
|
catch (UnauthorizedAccessException) {
|
||||||
|
// Access denied
|
||||||
|
Console.WriteLine("Program executed without sudo privileges.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return sudo;
|
||||||
|
}
|
||||||
|
|
||||||
public ConcurrentBag<string> FindFiles(string fileName, string fileExtension, string searchPath, int depth = 0, int maxDepth = 5) {
|
public ConcurrentBag<string> FindFiles(string fileName, string fileExtension, string searchPath, int depth = 0, int maxDepth = 5) {
|
||||||
var foundFiles = new ConcurrentBag<string>();
|
var foundFiles = new ConcurrentBag<string>();
|
||||||
|
Loading…
Reference in New Issue
Block a user