Unix & Linux

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


1
CentOS 6和CentOS 7之间的硬链接权限行为不同
尝试创建硬链接时,CentOS 7中出现权限错误。使用CentOS 6中设置的相同权限,我不会收到该错误。问题集中在组权限上。我不确定哪个操作系统版本正确和错误。 让我说明发生了什么。在当前的工作目录中,我有两个目录:源目录和目标目录。开始时,目的地为空;源包含一个文本文件。 [root@tc-dlx-nba cwd]# ls -l total 0 drwxrwxrwx. 2 root root 6 Jun 12 14:33 destination drwxrwxrwx. 2 root root 21 Jun 12 14:33 source [root@tc-dlx-nba cwd]# ls -l destination/ total 0 [root@tc-dlx-nba cwd]# ls -l source/ total 4 -rw-r--r--. 1 root root 8 Jun 12 14:20 …

1
权限错误,即使权限是完全开放的
我在新的VM上安装了anaconda,但无法列出其内容。我可以将目录更改为... / anaconda /,但是输入时ls -l得到: ls: cannot open directory .: Permission denied 但是,当我输入: sudo ls -l 我懂了 total 92 drwxrwxrwx. 2 gcw8 PosixUsers 12288 May 26 15:30 bin drwxrwxrwx. 2 gcw8 PosixUsers 12288 May 26 15:30 conda-meta drwxrwxrwx. 3 gcw8 PosixUsers 4096 Mar 27 16:33 docs drwxrwxrwx. 2 gcw8 PosixUsers …

6
测试后如何保持上次退出状态
测试后是否可以保持最后的命令退出状态($?)不变? 例如,我想做: command -p sudo ... [ $? -ne 1 ] && exit $? 最后一个exit $?应返回sudo退出状态,但始终返回0(测试的退出代码)。 没有临时变量,是否可以这样做? 另一个示例进一步说明: spd-say "$@" [ $? -ne 127 ] && exit $? 在这种情况下,我只想找到第一个命令(退出代码!= 127)就退出。而且我想用实际的spd-say退出代码退出(可能不是 0)。 编辑:我忘了提一下,我更喜欢POSIX投诉解决方案以获得更好的可移植性。 我在脚本中使用此结构,在脚本中我想为同一命令提供替代方法。例如,请参阅我的crc32脚本。 临时变量的问题在于它们可能会遮盖其他变量,并避免必须使用长名称,这不利于代码的可读性。

2
告诉Linux内核*不要*使用某些CPU
我正在尝试在多核计算机上运行一些基准测试,我想告诉Linux内核仅避免使用某些内核,除非明确告知要使用它们。 我的想法是,我可以留出一些内核(该机器有6个物理内核)进行基准测试,并使用cpu mask仅允许将基准测试过程应用于给定的内核。 这可行吗?


1
权限被拒绝写入mysql日志
我只是在Vagrant上测试新的Ubuntu(Vivid 15.04)安装,并遇到mysql问题并登录到自定义位置。 在/var/log/syslog我得到 /usr/bin/mysqld_safe: cannot create /var/log/mysqld.log: Permission denied 如果ls -l /var我得到 drwxrwxr-x 10 root syslog 4096 Jun 8 19:52 log 如果我在/ var / log中查找文件不存在 我以为我暂时禁用了apparmor,只是为了确定是那个原因还是其他原因导致了问题,但是不确定它是否仍然造成了问题(编辑:认为它可能仍然处于启用状态,所以不确定这是问题还是简单的原因权限)。 如果我尝试以mysql方式手动创建文件,我也会被拒绝(我暂时允许它bash访问测试,之后将其删除)。 touch /var/log/mysql.log touch: cannot touch ‘/var/log/mysql.log’: Permission denied 如果我查看另一个正在运行的服务器(centos),它具有上述权限(并以mysql用户身份写入),那么我想知道mysql通常如何获得访问/ var / log目录的权限,以及如何将其获取到通过正常运行访问该文件夹? 这是我的mysql的apparmor配置文件 /usr/sbin/mysqld { #include #include #include #include #include capability dac_override, capability …

2
一个bash文件中有多个shebang
我有一个别人看过的脚本(注意:这是一个文件): #!/bin/bash some commands some commands #!/bin/bash some commands some commands #!/bin/bash some commands some commands 我想知道第二和第三次爆炸的目的是什么?是由于错误还是故意?

4
SIGKILL为什么不终止已停止的程序(是)?
我正在使用Ubuntu 14.04,但遇到这种现象,我似乎无法理解: 运行yes命令(在默认外壳中:Bash) 键入CtrlZ停止yes 运行jobs。输出: [1]+ Stopped yes 跑kill -9 %1停yes。输出: [1]+ Stopped yes 运行jobs。输出: [1]+ Stopped yes 这是在3.16.0-30-generic并行虚拟机上运行的Ubuntu 上。 为什么我的kill -9命令没有终止yes命令?我以为SIGKILL不能被抓住或忽略?以及如何终止yes命令?


1
为什么gnome-keyring-daemon需要公共密钥来缓存密码?
我有两台Arch Linux机器,它们的设置几乎相同,都在运行/usr/bin/gnome-keyring-daemon --daemonize --login。它们都具有相同的SSH密钥,但是只有一个具有公共密钥。在具有公共密钥的主机上,GNOME密钥环守护程序可以正常工作-我可以在没有任何提示的情况下SSH到其他计算机。在没有公钥的主机上,GNOME Keyring似乎忽略了我已经输入了密码,并且每次都会提示我: $ ls ~/.ssh/id_rsa.pub ls: cannot access /home/user/.ssh/id_rsa.pub: No such file or directory $ ssh some-host exit Enter passphrase for key '/home/user/.ssh/id_rsa': $ ssh other-host exit Enter passphrase for key '/home/user/.ssh/id_rsa': 即使输入密码后,它也不会列出身份: $ ssh-add -l The agent has no identities. 凭预感复制公钥后,不再提示我输入密码。随后再次移除公钥后,症状又回来了。是否有这种行为的原因,还是仅仅是一个错误?

4
没有X服务器时安装VBox Guest Additions
我在Windows 8.1主机上使用Virtual Box。我已经在“图形模式”下安装了CentOS和Ubuntu,并进行了充分的练习。但是现在我想完全切换到“命令行模式”,因此为此目的创建了一个计算机,并安装了“ CentOS6.6 Basic Server” /“ CentOS7 Minimal”。 在Graphical Mahines上,我可以使用以下几条命令轻松安装VBox Guest Additions。 yum update yum install gcc yum install kernel-devel sh VBoxLinuxAdditions.run (From mounted Location For CDrom) 但是由于我安装了CLI计算机,并在上面尝试了相同的命令,因此无法正确安装,因此出现以下错误: Could not find X.Org or Xfree86 Window System, skipping.

4
如何获得stdin的大小?
我要压缩一个大目录,并且我想知道结果文件的大小。 我试过使用du: $ tar -cv dir | du -h - du: cannot access '-': No such file or directory 然后,我尝试使用文件版本“-”: $ tar -cv dir | du -h /dev/stdin 1.0K 我确定这个数字不正确。如何获得stdin的大小?

2
为什么xargs传递给subshel​​l时会跳过第一个参数?
寻找一种在xargs单行代码中调用多个命令的方法,我在findutils中找到了从xargs调用shell的建议,如下所示: $ find ... | xargs sh -c 'command $@' 有趣的是,如果我这样使用xargs,由于某种原因,它会跳过第一个参数: $ seq 10 | xargs bash -c 'echo $@' 2 3 4 5 6 7 8 9 10 $ seq 10 | xargs -n2 bash -c 'echo $@' 2 4 6 8 10 我的shell或xargs版本有问题吗?该文件不准确吗? 使用xargs(GNU findutils)4.4.2和GNU bash,版本4.3.11(1)-release。
8 shell  xargs 

1
如何在名称服务交换机(NSS)中多次使用同一库
是否有任何通用解决方案可以使用单个NSS库两次(或多次)? 就我而言,我有两台LDAP服务器,一台在计算机本身上,另一台在远程上。我需要使NSS与它们两者都可以工作(如果本地没有必需的条目,它将使用远程的)。 当前已解决,因此单个库(PADL / nss_ldap)被构建两次。在这两种情况下,在使用构建之前sed将nss_ldap源中的所有事件都更改为其他事件。对于每种情况,都会使用不同的文本(例如nss_ldap_1和nss_ldap_2)。构建结果将相应地重命名。这两个二进制文件都存储在目标系统上,并在中进行了引用/etc/nsswitch.conf。 而且这两个库都使用不同的配置文件/etc/(否则就没有任何意义!)。但是,只需configure在构建之前运行的库脚本中更改参数即可轻松实现。 但这并不“感觉正确”。还有其他方法吗? 我可以想象的是,NSS库本身可以支持多种配置,因此可以作为两个“单个实例”使用。但是,如果您不是该库的作者,则很难实现。此外,它还要求随后为这两种配置调用该库,而一个人可能更希望在它们之间具有其他库。 另一种方法是编写一个简单的转发器,该转发器仅调用其他具有不同配置的库。但这再次要求其他库可以以某种方式重新配置(如果它仅使用/etc转发器中的一些固定配置文件,则该库将与第一个版本一样工作)。而且它也只能工作一次-让一个库使用3次或更多次,转发器本身现在会返回相同的问题。
8 nsswitch 

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.