Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

4
您可以合法销售Linux发行版的修改版本吗?[关闭]
假设有人下载了Linux发行版,例如Ubuntu。假设进一步修改其中的一部分,例如窗口管理器。 他们出售这个经过稍微修改的Ubuntu版本的副本(将其称为Mubuntu =修改的Ubuntu)是否完全合法? 如果他们关闭了新的窗口管理器部分怎么办?出售仍然合法吗?
32 licenses 

1
在默认的Fedora bash配色方案中,“ / usr / bin / ping”显示为黄红色-这是什么意思?
列出目录时/usr/bin,您会看到 ping 显示为红色黄色: 该文件没有特殊功能: $ file /usr/bin/ping /usr/bin/ping: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=2508ea2a85b70c68967b3e6345541430f5317d5f, stripped $ stat /usr/bin/ping File: '/usr/bin/ping' Size: 62096 Blocks: 136 IO Block: 4096 regular file Device: 802h/2050d Inode: 4457229 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( …
32 ls  colors  ping 

5
一个文件要属于两个用户。怎么样?硬链接失败
两个setuid程序/usr/bin/bar和/usr/bin/baz共享一个配置文件foo。配置文件的模式为0640,因为它包含敏感信息。一个程序的运行方式为bar:bar(即,作为用户栏,组栏);另一个为baz:baz。更改用户不是一种选择,即使更改组也不可取。 我希望将单个配置文件与/etc/bar/foo和硬链接/etc/baz/foo。但是,这失败了,因为据我所知该文件必须属于root:bar或root:baz。 可能的解决方案:创建一个barbaz成员为bar和的新组baz。让foo属于root:barbaz。 对我来说,这似乎是一个繁重的解决方案。是否没有更整洁,更简单的方法foo在两个程序之间共享配置文件? 目前,我正在维护文件的两个相同副本。这有效,但是显然是错误的。什么是对的? 有关信息:我对Unix组几乎没有经验,对setgid(2)也没有经验。

1
ESC + {:这是什么?在哪里可以进一步了解?
我在bash提示下四处游玩,然后按ESC,再按{,然后,shell在fileglob字符串中显示了所有要完成的文件。例如:如果我键入bash C后跟ESC+{,则shell将显示以下内容:bash CHECK{,1,2{,23{336{,66666},6},3{,6}}}自动完成以C开头的所有可能的文件和目录,显示我制作的所有实验文件和目录。 什么是ESC + {什么?在哪里可以进一步了解? 我在带有bash的CENTOS和Mac OSX上看到了这一点。

4
当我在shell中执行文件时,会发生什么情况?
所以,我以为我对此有很好的了解,但是只是进行了一次测试(以回应我不同意某人的对话),发现我的理解是有缺陷的... 尽可能详细地说明我在Shell中执行文件时会发生什么情况?我的意思是,如果我键入以下内容:如果./somefile some arguments在外壳中键入内容,然后按return键(somefile并存在于cwd中,并且我具有的读取和执行权限somefile),那么在幕后会发生什么? 我以为答案是: Shell进行syscall exec,将路径传递给somefile 内核检查somefile并查看文件的幻数,以确定它是否是处理器可以处理的格式 如果幻数表示文件是处理器可以执行的格式,则 创建一个新流程(在流程表中有一个条目) somefile被读取/映射到内存。创建一个堆栈,执行跳转到的代码的入口点somefile,并ARGV初始化为参数数组(a char**,["some","arguments"]) 如果幻数是shebang,则exec()如上所述产生一个新进程,但是使用的可执行文件是shebang引用的解释器(例如/bin/bash或/bin/perl),somefile并传递给STDIN 如果文件没有有效的幻数,则发生类似“无效文件(不良幻数):执行格式错误”的错误 但是有人告诉我,如果文件是纯文本,那么Shell会尝试执行命令(就像我键入一样bash somefile)。我不相信这一点,但我只是尝试了一下,这是正确的。因此,我显然对这里实际发生的事情有一些误解,并且想了解其机制。 当我在shell中执行文件时,会发生什么情况?(尽可能多的细节是合理的...)
32 shell  kernel  exec  shebang 

5
如何在Gnome 3.20上的标准GTK应用程序和带有标题栏/ CSD的应用程序中更改标题栏的高度
在侏儒3.18,这是可以通过在改变的CSS改变所有窗口的标题栏高度~/.config/gtk-3.0/gtk.css按照在侏儒3 / GTK + 3减少标题栏高度。 .header-bar.default-decoration { padding-top: 0px; padding-bottom: 0px; } .header-bar.default-decoration .button.titlebutton { padding-top: 0px; padding-bottom: 0px; } /* No line below the title bar */ .ssd .titlebar { border-width: 0; box-shadow: none; } 在Gnome 3.20中,这似乎不再适用于带有标题栏/ CSD(标题栏中的gnome特定按钮)的窗口,例如Nautilus(文件),设置,照片,联系人等。该调整仍会减小标题栏的高度用于其他应用程序,例如gnome-terminal和gVim。如何在gnome程序(如Gnome 3.20中的Nautilus)中减小标题栏的高度? 更新资料 我还尝试了此reddit线程中的建议。我都尝试window.ssd和.ssd唯一,没有骰子。 这有效,请参阅我发布的答案以获取更多详细信息 window.ssd headerbar.titlebar { padding-top: 1px; padding-bottom: 1px; …

2
什么是UTS名称空间?
取消共享的手册页显示: UTS名称空间 setting hostname, domainname will not affect rest of the system (CLONE_NEWUTS flag) 是什么UTS立场?
32 linux  namespace 

2
用dd修补二进制文件
我读过几次(下面)这个引用,最近一次是在这里阅读的,并且不断地困惑于如何dd使用它来修补任何东西,更不用说编译器了: 我30年前在学校使用的Unix系统在RAM和磁盘空间方面非常有限。特别是/usr/tmp文件系统非常小,当有人尝试编译大型程序时会导致问题。当然,无论如何,学生都不应该编写“大型程序”。大型程序通常是从“某处”复制的源代码。我们中的许多人都复制/usr/bin/cc到/home/<myname>/cc,并用来dd修补二进制文件,/tmp而不是来使用/usr/tmp更大的二进制文件。当然,这只会使问题变得更糟-这些副本所占用的磁盘空间在当时确实很重要,并且现在会/tmp定期装满,从而阻止其他用户甚至编辑其文件。他们发现发生了什么事后,系统管理员执行了chmod go-r /bin/* /usr/bin/* 它“解决”了问题,并删除了我们所有的C编译器副本。 (强调我的) 该dd手册页只字未提修补和不认为它可能是重新定意要做到这一点呢。 二进制文件真的可以修补dd吗?这有任何历史意义吗?
32 dd  history  patch 


7
我的服务器不断受到攻击[关闭]
我对系统管理界来说还很陌生。我最近一直在研究一个应用程序,当我检查应用程序服务器日志时,我不断得到各种IP地址,试图通过蛮力将其SSH到服务器中。这是我的服务器日志的示例: Feb 14 04:07:20 foodwiz3 sshd[1264]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key Feb 14 04:07:21 foodwiz3 sshd[1264]: reverse mapping checking getaddrinfo for coenamor.columbiansabbatical.com [23.249.167.223] failed - POSSIBLE BREAK-IN ATTEMPT! Feb 14 04:07:21 foodwiz3 sshd[1264]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=23.249.167.223 user=root Feb 14 04:07:23 foodwiz3 sshd[1264]: …
32 ssh  security 


5
FHS的替代品有哪些?
我是Linux的长期用户,已经有15年以上的时间,但是我讨厌的一件事是强制性的目录结构。我不喜欢那/usr/bin是二进制文件或库的倾销地/usr/lib,/usr/lib32,/usr/libx32,/lib,/lib32等...随机的东西在/usr/share等,这是愚蠢和混乱。但是有些人喜欢它,口味也有所不同。 我想要一个目录结构,其中每个包都被隔离。试想一下,如果媒体播放器Dragon拥有自己的结构: /software/dragon /software/dragon/bin/x86/dragon /software/dragon/doc/README /software/dragon/doc/copyright /software/dragon/lib/x86/libdragon.so 要么: /software/zlib/include/zlib.h /software/zlib/lib/1.2.8/x86/libz.so /software/zlib/lib/1.2.8/x64/libz.so /software/zlib/doc/examples/... /software/zlib/man/... 你明白了。我有什么选择?是否有使用我的方案的Linux发行版?是否可以将某些发行版修改为可以正常运行(Gentoo ??)或需要LFS?这个领域有任何现有技术吗?像有关该计划是否可行的出版物一样? 不是在寻找OSX。:)但是以OS X为灵感是完全可以的。 编辑:我不知道如何PATH,LD_LIBRARY_PATH和取决于一小部分路径的其他环境变量应该计算出来。我在想,如果我安装了KDE编辑器Kate,/software/kate/bin/x86/bin/kate则可以键入二进制文件的完整路径来启动它。dlopen我不知道它应该如何用于动态库和调用,但这不是一个无法解决的工程问题。

7
如何判断命令或Shell脚本的输出是stdout还是stderr
假设我运行一个命令或shell脚本,它给了我输出。在不知道此命令或Shell脚本的内部信息的情况下,如何确定输出是来自stderr还是stdout? 例如 $ ls -ld / drwxrwxr-t 35 root admin 1258 Dec 11 19:16 / 与 ls -ld /test ls: /test: No such file or directory 我如何确定第一个命令是打印到stdout第二个命令stderr(是吗?)?

5
-r和-R之间的区别
我经常需要递归地应用操作。某些命令(例如grep)使用小写字母r表示递归。例如 grep -r foo . 其他命令似乎更喜欢大写的R: chmod -R 755 . 我不断地以错误的方式解决这些问题,而忘记了哪一个。在为这些论据选择大小写的背后有逻辑吗?

4
为什么我从xauth收到此消息:“锁定授权文件/home/<user>/.Xauthority中的超时”?
尝试通过SSH进入主机时,我收到了以下消息xauth: / usr / bin / xauth:锁定授权文件/home/sam/.Xauthority中的超时 注意:我试图通过SSH连接远程显示X11 GUI,所以我需要xauth能够创建一个$HOME/.Xauthority成功文件,但是正如该消息所指示的那样,显然不是。 尝试运行任何基于X11的应用程序,例如,xeyes收到以下消息: $ xeyes X11 connection rejected because of wrong authentication. Error: Can't open display: localhost:10.0 我该如何解决这个问题?

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.