Questions tagged «linux»

这些问题通常与Linux有关-并非特定于特定发行版。如果问题恰好在Linux环境中,请在问题正文中指定Linux发行版,但不要使用/ linux标记。

2
Setuid位似乎对bash无效
我进行了一些实验,发现有些奇怪:将setuid位设置在位于bash的bash副本上/usr/bin/bash-test似乎没有任何效果。当我运行的实例时bash-test,未将主目录设置为/root,当whoami从中运行命令时bash-test,未将用户名报告为root,表明该用户名bash-test未以root身份运行。但是,如果我将setuid位设置为on whoami,则按预期,我在任何shell中都是root用户。 我也尝试设置setuid位,/usr/bin/bash并观察到相同的行为。 在bash上设置setuid位时,为什么bash不能以root身份运行?selinux可能与此有关吗?
14 linux  bash  setuid 

2
如何区分来自不同键盘的输入?
我想用Python编写一个可以与默认键盘一起使用的应用程序,以及一个专门为该应用程序设计的应用程序。我将通过使用带有标签的小型数字键盘对不同的按键进行操作来简单地进行设计。两个键盘都将通过USB连接。 但是,当按下这些键时,它们的常规信号(数字,运算符和回车键)将被发送到Python,它将无法区分来自主键盘和特殊键盘的信号。 由于Python(据我所知)没有进行这种区分的方法,因此我想在OS本身上做到这一点。我将为Raspberry Pi进行编程,因此它将是Linux。 因此,主要问题是:如何将特定键盘的键重新映射到其他键代码。我考虑过使用F键,而我不会将其用于其他目的。或只是某些键盘上不存在的字符(假设有这样的字符)。 在Linux / Unix中可以吗?如果是这样,我该怎么办?
14 linux  usb  keyboard 

3
如何模拟拔出的网络电缆或关闭的服务器?
我用netem模拟了网络延迟,这很棒。现在,我想模拟拔出的网络电缆或服务器何时关闭。我需要这样做可以简化对我的应用程序的测试,而我在网络上找不到任何可以帮助我的东西。我的服务器是虚拟CentOS实例,它们在Virtualbox上。我想从php网页上执行此操作。
14 linux  shutdown 

3
如何让SDL应用程序(不是以root用户身份运行)使用控制台
我想使用基于SDL的程序在控制台上显示图形,而不必从控制台登录,也不需要以root用户身份运行该程序。例如,我希望能够通过ssh运行它。目标操作系统是raspbian。 这是python中的一个简短示例来说明问题: import os, pygame os.environ['SDL_VIDEODRIVER'] = 'fbcon' pygame.init() s = pygame.display.set_mode() print "Success" 如果我从控制台运行它,则可以正常运行(运行到完成,不会引发异常),如果以root用户运行它,则可以通过ssh运行。 我检查了我的用户是否在音频和视频组中。 我已经使用strace来查看从控制台运行它(起作用),通过ssh以root身份运行(也可以工作)以及通过ssh以普通用户身份运行(不起作用)之间的区别。 第一个区别是我的用户没有访问/ dev / tty0的权限。我创建了一个新组(tty0),将用户置于该组中,并添加了udev规则以使该组可以访问/ dev / tty0。 strace输出在此ioctl调用处发散-此处显示失败;当程序从控制台运行或以root身份从ssh运行时,ioctl返回0: open("/dev/tty", O_RDWR) = 4 ioctl(4, VT_GETSTATE, 0xbeaa01f8) = -1 EINVAL (Invalid argument) (地址也有所不同,但这并不重要。) 鉴于我的程序在以root身份运行时可以运行,因此我认为这存在权限问题。如何为我的用户提供必要的权限,使其能够运行该程序而无需在控制台上登录(并且无需以root用户身份运行)?

3
“机器硬件”,“处理器类型”和“硬件平台”之间的区别
我的Linux机器报告“ uname -a”输出如下: [root@tom i386]# uname -a Linux tom 2.6.9-89.ELsmp #1 SMP Mon Apr 20 10:34:33 EDT 2009 i686 i686 i386 GNU/Linux [root@tom i386]# 根据uname的手册页,条目“ i686 i686 i386”表示: 机器硬件名称(i686) 处理器类型(i686) 硬件平台(i386) 附加信息: [root@tom i386]# cat /proc/cpuinfo <snip> vendor_id : GenuineIntel CPU family : 6 model : 15 model name : …

1
可以在脚本中使用功能而无需设置解释器二进制文件的大小吗?
现在,我正在cap_net_bind_service MY_USERNAME/etc/security/capability.conf中使用。 现在,我只需要设置cap_net_bind_service+i我最喜欢的脚本语言的解释器就可以通过libcap [-ng] 添加CAP_NET_BIND_SERVICE到有效集合中。 这很好用,但是我想知道是否有一种方法可以在不对解释器二进制代码设置任何上限的情况下实现相同的目的。虽然这不是一个大问题(其他用户帐户没有上限,所以即使在解释器二进制文件中设置了位,他们也无法使用该上限),但由于每次使用解释器时我都必须重新设置标志,这有点令人讨厌更新。



12
linux diff工具:创建修改文件列表
如何使用linux命令行工具以编程方式创建已修改文件的列表?我对任何特定文件(增量,补丁)中的差异都不感兴趣。我只想列出与以前的产品版本比较的新文件或修改过的文件。这样我就可以发布新产品更新。 更新:diff -qr不会产生非常方便的输出。的输出diff -qr也需要处理。有什么更好的办法吗?

2
选择哪个-BSD或Unix样式的命令(如果可用)?
诸如此类的命令ps带有许多参数,特别是因为它们提供了使用选项,可以在Unix和BSD样式标志之间进行选择。我希望你能明白我的意思。 因此,当有这样的选项可用时,我应该选择哪个选项以在所有linux系统之间获得最大的兼容性?(例如,最大兼容性是优先事项之一) 我知道Unix风格非常明显,但是出于某种原因,BSD命令包含了更多可读信息(例如列标题,CPU列等)。当然,如果我错了,请指正我,但这就是我的感受。
14 linux  bsd  ps 

5
为什么在复制有限大小的设备时指定块大小?
在在线教程中,通常建议使用以下命令将CDROM复制到iso映像: $ dd if=/dev/dvd of=foobar.iso bs=2048 为什么必须指定字节大小?我注意到实际上2048是CDROM映像的标准字节大小,但似乎dd没有指定bs=或count=同样有效。 在什么情况下不指定大小bs=或count=从有限大小的设备复制会出现问题?
14 linux  hard-disk  dd  cloning 

5
一行多行排序文本文件
我有一个这种格式的文本文件: #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 我想按KEY行对该文件排序,并在结果中保留下4行,因此排序结果应为: #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 有没有办法做到这一点 ?

1
Linux中的标准错误代码是什么?
例如,当我在bash中编写复制文件的代码时,如果文件不存在,则在终端中会看到类似于“找不到文件”的错误,如果未向脚本用户授予权限,则会显示该错误up类似于“权限被拒绝”。 基本上,无论使用哪种编程语言,例如,当您编写代码以复制文件时,所用的编程语言都会要求操作系统(在我的情况下为Linux)执行此操作,如果发生错误,操作系统将以方便的错误(代码+消息)。 我是否可以运行一个命令,该命令将列出系统上的所有标准错误代码?

2
标志,选项和参数之间有什么区别?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 ls -a(我考虑-a一种选择) sudo -u username(-u=选项,username= arg) chmod 664 my-dir(664=选项,my-dir= arg) 除了想到目录清单时,我想不出一个可能说“这是一个标志”的示例: -r--------. 1 david david 3344 May 19 17:48 611056.pdf 这为所有者设置了“读取标志”,仅此而已。是什么阻止我将其称为“读取选项”? 我主要使用DocBook XML编写和编辑技术文档,并且正在寻找差异的解释,该差异应尽可能一致和准确。但是,我已经看到一种模式形成: 标志通常是布尔值。例如,setenforce 0 选项有助于定义命令的行为方式。有些可能是可选的。 参数告诉命令要操作的对象。 我可以看到自己将标志和选项结合在一起(某些选项可能有十二个可能的值,但布尔值只有两个)。参数看起来足够不同以保持原样。

3
如何在不重新启动的情况下重新生成70-persistent-net.rules?
该文件/etc/udev/rules.d/70-persistent-net.rules在重新引导期间在具有udev的Linux系统上自动生成(如果不存在)。但是我想知道如何在不重新引导服务器的情况下(使用命令)创建此规则文件。 我闲逛了一段时间,发现这个脚本生成了rules文件: /lib/udev/write_net_rules 但是,不可能从命令行运行此脚本,因为(我假设)它想由udev启动,并且正确设置了一些环境变量。手动启动它会显示错误消息“缺少$ INTERFACE”。即使我在脚本开始之前设置了环境变量INTERFACE = eth0,它仍然会打印错误“缺少有效的匹配”。更不用说我有两个接口(eth0和eth1),并且我希望为这两个接口生成规则文件。 我也在考虑触发这样的udev事件,希望它会从udev本身启动脚本,但是没有任何变化: udevadm trigger --type=devices --action=change 因此,有人知道如何在/etc/udev/rules.d/70-persistent-net.rules不重新启动的情况下重新生成文件中的持久性网络规则吗?
14 linux  udev 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.