linux软件读取文件没权限,Linux - 从Sudo读取文件 - “权限被拒绝”

当执行驱动器的递归目录扫描以通过在sudo下运行程序可执行文件来生成每个文件的哈希时,我发现有1,000个文件正在抛出“Permission拒绝“错误。Linux - 从Sudo读取文件 - “权限被拒绝”

我的问题:这是否由设计,为什么是sudo无法读取文件?我在做什么甚至可能,因为在扫描期间文件可能被加密或当前正在使用?

当我编译到Mac OSX并执行相同的扫描sudo下,我没有这个问题,只是Linux。

Distro: 3.19.0-25-generiC#26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

许可文件的实例否认:

Can't open file: "/sys/class/gpio/unexport"

MSG: "Permission denied"

Can't open file: "/sys/class/gpio/export"

MSG: "Permission denied"

的权限设置示例:

/sys/class/gpio$ ls -al

total 0

drwxr-xr-x 2 root root 0 Oct 5 04:51 .

drwxr-xr-x 57 root root 0 Oct 4 11:25 ..

--w------- 1 root root 4096 Oct 5 04:51 export

--w------- 1 root root 4096 Oct 5 04:51 unexport

MD5函数,其中文件读取失败:

QByteArray MD5(QString sPath)

{

QByteArray resultMD5 = NULL;

QFile* file = new QFile(sPath);

if(file->open(QIODevice::ReadOnly))

{

QCryptographicHash* pHashMD5 = NULL;

resultMD5 = pHashMD5->hash(file->readAll(),QCryptographicHash::Md5);

file->close();

//Clean up pointer

delete pHashMD5;

delete file;

}

else

{

qDebug() << "Can't open file: " << sPath;

qDebug() << "MSG: " << file->errorString();

file->close();

delete file;

}

return resultMD5;

}

+0

'/ sys/...'下的文件不是真实文件,它们不存在于硬盘上。根据这些*权限*即使'root'都没有读权限,它们是*只写*'文件'。 –

+0

你真的*想读/ sys,/ dev等吗?这不是像硬盘上的图像和音乐那样的文件,而是其他奇怪的东西。从别处引用:'sysfs是基于RAM的文件系统。它提供了一种方法来导出内核数据结构及其属性,以及它们与用户空间之间的链接.'和dev是完整硬盘和其他设备的节点列表, –

+0

Yeah *'怪物'*。这是我错过的技术术语! ; o) –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值