草庐IT

python - 检查非 root 用户是否可以访问路径

我有一个用Python(在Linux中)编写的安装脚本,它以root身份运行,需要检查非root用户是否可以读取某些文件。出于这个原因,我不能使用os.path.exists()或open(filename)(并捕获任何异常)。目前我正在考虑检查每个文件的权限位,但唯一的问题是我还必须检查通向文件名的路径上的权限位(目录需要r+x位设置),如果我有数千个文件,这可能是一个非常缓慢的过程。我的解决方案是最好的,还是有更好的选择?编辑:我需要在检查文件后以root身份运行脚本,因此不幸的是,放弃root权限不是一个选项。 最佳答案 你可

linux - 以非 root 用户身份访问带有 libusb-1.0 的 USB 设备

我正在尝试以RHEL5上的非根用户身份连接USB设备。该设备是一个使用libusb-1.0的GPIO接口(interface)(其文档可以在http://www.xdimax.com/sub20/sub20.html找到)。使用其API打开设备的过程是:sub_deviced;d=sub_find_devices(0);sub_handleh=sub_open(d);当我这样做时,sub_find_devices()调用有效,但在sub_open()调用中,我收到libusb错误-3,这表明我这样做了没有权限打开设备进行写入。我对这个问题做了一些研究,发现我应该创建一个udev规则。在

linux - 没有root的Datastax Cassandra

我正在尝试在RedhatLinux上安装和运行Datastaxcassandra社区版,但我没有root权限。我在我的主目录中提取了tar,但我无法执行./cassandra我正在HPC集群上执行此操作,我想我会在我的主目录中安装Cassandra并将数据保存在我们提供的暂存空间中(主目录没有足够的空间来容纳整个数据)如有任何帮助,我将不胜感激!谢谢! 最佳答案 来自installationdocsforDataStaxcommunityedition,您唯一需要的其他步骤是创建数据和日志目录:$sudomkdir/var/lib/

linux - 如何在一行命令中将密码应用于 sudo 并执行 su root?

我创建了一个名为samX的用户,具有root权限(在visudo中附加了“samXALL=(ALL:ALL)ALL”)。我正在尝试将密码应用到sudo,然后是suroot并在一行命令中依次执行whoami。我当前的命令有点如下,但它提示错误:sudo:suroot;whoami:找不到命令echo'CbEYKFKt'|sudo-S'suroot;whoami'其中'CbEYKFKt'为用户samX的密码。有什么办法可以解决这个问题吗?非常感谢。 最佳答案 echo'CbEYKFKt'|sudo-Ssu-cwhoami应该工作--c为

python - 我如何要求 root 密码但稍后执行操作?

我有一个python脚本,我想在其中添加“完成后关机”功能。我知道我可以使用gksudo(当用户点击“完成后关闭”时)向用户询问root权限,但我如何才能在以后(当脚本实际完成时)使用这些权限。我考虑过在关机命令中使用chmodu+s,所以我不需要密码,但我真的不想这样做。有什么办法可以实现吗?提前致谢,Ember。 最佳答案 与其chmodu+s关闭命令,不如允许无密码sudo访问该命令会更好..至于允许在脚本末尾关闭,我想您可以使用sudo运行整个脚本,然后在脚本开始时将权限放弃给初始用户?

c - 如何从 root 临时删除权限?

我正在开发一个以root身份运行的守护进程,但需要与用户调用API,我检查了API代码,它使用getuid()来获取用户。如果root用户通过setuid()删除权限,则无法恢复到root。如果调用seteuid(),API仍将作为用户uid=0执行某些操作。我觉得访问API前fork和子进程setuid应该是可以的,但是即使COW,调用API多次也会消耗很大。除了使用进程池是否可以解决问题? 最佳答案 是的!创建单个进程以使用适当的UID调用API,并通过管道、UNIX域套接字或(共享内存)1与程序的其余部分通信。我的意思是,只f

linux - linux下如何在没有root权限的情况下获取CPU串口

在没有root权限的情况下如何在Linux(Ubuntu)下获取CPU序列号?我试过cpuid命令,它在没有root权限的情况下工作,但似乎返回全零(我相信是因为需要在BIOS中更改某些内容)。您能否建议我另一种无需root权限且无需修改BIOS即可从程序中检索CPU序列号的方法? 最佳答案 需要根权限。答案是dmidecode。如果您需要CPUID:dmidecode|grep-wID|sed"s/^.ID\://g"这将获取CPUID,从输出中删除“ID:”如果您需要接收计算机ID:dmidecode|grep-wUUID|se

c - chroot() 需要 root 权限吗?

当我尝试将chroot与“.”一起使用时或作为参数的完整路径名,perror告诉我“不允许操作”。如果我的问题的答案是肯定的,是否有另一种更改根目录的方法?(没有使用strcmp()/strncmp()的野蛮方法) 最佳答案 chroot只能由root他/她/自己使用。不,在不损害安全性的情况下不会有任何其他方式。来自维基百科Onlytherootusercanperformachroot.Thisisintendedtopreventusersfromputtingasetuidprograminsideaspeciallycra

linux - 如何查看 root 的 bash_history?

我在亚马逊的awsEC2上有一个linuxbox。我可以在这里查看用户的bash_history:/home/ec2-user/.bash_history但是当我root时:sudo-s我没有得到root的bash_history。如何查看/查找管理员用户的bash_history?谢谢,布雷特 最佳答案 这是快速的方法:sudoless/root/.bash_history 关于linux-如何查看root的bash_history?,我们在StackOverflow上找到一个类似的问

linux - 以非 root 用户身份运行的系统守护进程的 PID 文件的首选位置

我的问题与thisquestion有关,但有问题的进程是从cron运行的,并且由非root用户运行。因此,许多用户并没有真正的主目录(或者他们的主目录指向/usr/share/package_name,这不是PID文件的理想位置)。存储在/var/run中是有问题的,因为这个目录除了root之外是不可写的。我可以使用/tmp,但我想知道出于安全原因这是否是理想选择。我可以安排一个启动脚本在/var/run中创建一个目录,该目录由适当的用户拥有(我不能在包安装时这样做,因为/var通常作为tmpfs安装,因此不是持久的)。此处的最佳做法是什么? 最佳答案