Articles of linux

将组合在一个合理的模板中

有没有人在一个合理的模板中组合了一个循环。 我们想要做的是获得两个组的共同成员,并循环它们来创build我们的configuration。 我们正在尝试在主机限制内工作的相同格式,但接收'dict object' has no attribute 'tag_function_psql:&tag_release_dev' {% for host in groups['tag_function_psql:&tag_release_dev'] %}

在Ubuntu Linux 12.04 64位上scsi_eh_320进程占用90%cpu

这是在ESXi上运行的虚拟机。 服务器连接到HP Storage。 虚拟机启动后,几分钟后( top运行)进程scsi_eh_320启动并吃90%的CPU,并保持在那里。 有谁知道这是什么原因造成的? 编辑 发现这在我的分贝: CREATE OR REPLACE FUNCTION public.sys_eval(text) RETURNS text LANGUAGE c IMMUTABLE STRICT AS '/tmp/gameover.so', $function$sys_eval$function$

Linux SMB共享 – 如何授予Windows本地系统帐户的访问权限?

我在Linux主机上有一个SMB共享。 要为Windows用户授予对共享的远程访问权限,必须创build一个与Windows帐户具有相同用户名和相同密码的新SMB用户。 即授予访问Windows用户winhost\calvin我将运行smbpasswd -a calvin ,并使用winhost\calvin使用相同的密码。 然后我会更新smb.conf到类似的东西 [myshare] path = /home/lincoln/myshare valid users = lincoln, calvin read only = no 一旦到位, calvin现在可以通过UNCpath\\<ip addr>\myshare从Windows中看到共享 这对指定的用户帐户正常工作,但我不知道如何授予访问Windows“本地系统”帐户,即机器帐户。 我曾尝试使用空白密码(本地系统帐户没有密码)创build像WINHOST和WINHOST$这样的名称的SMB用户,但这似乎不起作用。 当我尝试使用系统帐户(通过dir \\<ip addr>\myshare )访问共享时,出现错误“指定的服务器无法执行请求的操作”。 SMB帐户和configuration的详细信息可以做到这一点? 我不想公开这个分享 – 这似乎是迄今为止唯一的解决方法。

万维网上的多个网站的万维网数据安全问题

我最近买了一个VPS,从中学到了很多东西。 我pipe理创build一个FTP用户,将其设置为我的网站的文档根的所有者,将其添加到WWW用户组,将该组设置为文档根组,并给予文件0775(0664)权限。 我的问题是,如果www-data可以访问和修改文档根目录中的文件,那么来自其他站点的脚本也不能修改这些文件(这些文件现在使用.htaccess保护)。 注意:我希望www数据具有写权限,因为PHP脚本应该能够修改这些文件。 如何解决这个问题?

使用ip route add将组播路由添加到多个接口

TLDR:有没有办法使用“ip route”为多个NIC添加组播路由? 我们拥有使用两个多播组的软件,可以在两个独立的物理networking上与两组不同的设备进行通信。 除此应用程序外,一个networking上的设备无需通过我们的设备进行通信即可与另一个networking上的设备进行通信。 为此,该软件创build两个套接字。 每个绑定到单独的NICS的一个IP地址。 然后,该套接字join到该networking中存在的多播组,例如,套接字1绑定到192.168.0.2,并join到多播组233.255.10.1,而套接字2绑定到10.57.31.2,并join多播组239.255.100.1。 我们正在使用bash脚本(Linux内核3.14.39)在两个networking接口上使用路由来设置组播路由 route add -net 224.0.0.0 netmask 240.0.0.0 eth0 route add -net 224.0.0.0 netmask 240.0.0.0 eth1 并通过路由-n进行validation Destination Gateway Genmask Flags Metric Ref Use Iface 224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth0 224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth1 我最近读了这条路线已经过时/过时,我们应该使用ip路由,例如 ip route add 224.0.0.0/4 dev eth0 ip […]

如何确认服务器将于2017年1月1日添加闰秒?

如何确认服务器将于2017年1月1日添加闰秒? 有没有loginntpd ?

OpenSSH:不同的身份validation方法

我需要用户以不同的身份validation方法login到CentOS系统。 一些使用密码和其他人使用公共密钥。 我遵循这里提到的方法: 如何设置OpenSSH每用户身份validation方法? 但是,我没有成功的基于密码的login成功。 在sshd_config文件中,我有: AuthenticationMethods keyboard-interactive,publickey PasswordAuthentication no Match User newton PasswordAuthentication yes Match all 更新:我看到这个问题是只有当我有谷歌身份validation2FA启用,我有行: AuthenticationMethods keyboard-interactive,publickey 虽然对于用户牛顿,我已经设置了密码authentication,我看到以下错误: [root@localhost]# ssh [email protected] Permission denied (publickey). 任何build议表示赞赏。

为什么Linux在不正确的接口上应答ARP?

我有以下Linuxnetworking设置:有一个eth10networking接口,分配地址为10.11.0.1/24。 然后有一个tap0networking接口,分配了虚拟地址0.0.0.1/32(我分配了一个虚拟地址来使接口向上),并且来自/到那个的stream量由最初创buildtap0接口的用户空间程序控制。 在tap0接口的另一端,有一个用户空间程序通过原始套接字使用它来查找ARP请求并构造一个响应。 现在,当用户空间程序构build一个请求10.11.0.1的ARP请求时,我期望另一个原始套接字用户空间程序回复它。 但是,我得到了两个答复:一个来自原始套接字程序,另一个来自Linux内核。 显然,Linux内核推断10.11.0.1是属于它的地址,因此回复。 但是,10.11.0.1不是tap0接口的地址。 它是eth10接口的地址。 我的问题是:为什么Linux内核会这样做? 有什么办法来禁用在错误的界面上的ARP答复? 我对这个问题的临时解决scheme是使用除10.11.0.1之外的其他地址作为原始套接字/ tap0目的。 但是,因为这个系统应该是可以在任何开发机器上运行的应用程序的系统级testing,所以我不能保证与其他接口没有IP地址冲突。 因此,在错误的接口上禁用ARP回复将会很好。 解决这个问题的另一种方法是使用netmap,为用户空间应用程序保留整个接口,防止内核在用户空间应用程序运行时将其用于任何事情。 但是我希望我的testing在没有netmap的情况下运行。

iptables是否不适用于长命名的networking接口?

我曾经configurationiptables在muli-network-interface-server上的不同networking接口之间转发包。 很长时间,它工作正常,直到我更新我的服务器到Ubuntu 1604。 Ubuntu 1604附带新的内核,其中重命名networking接口 ( 可预测的networking接口名称 ) 假设这个服务器连接两个子networking: 接口enp3s0与ip 192.168.1.155 ,连接到networking192.168.1.0/24 , 接口enxa0cec80f64f3与ip 10.1.1.1连接到networking10.1.1.0/24 。 如下。 Terminal1(10.1.1.2/24, gateway10.1.1.1) || || \/ +—————————+ | enxa0cec80f64f3(10.1.1.1) | | | | Server | | | | enp3s0(192.168.1.155) | +—————————+ /\ || || Host1(192.168.1.111/24, route to 10.1.1.0/24 via 192.168.1.155) 为了使2个networking中的主机能够自由地相互通信,服务器上的iptables被configuration为 $ sudo iptables -S -P INPUT ACCEPT -P […]

创buildzfs池,允许用较小的磁盘replace其中一个磁盘

这是关于Linux上的zfs(CentOS 7)的一个问题。 我有一个非常简单的安装两个8 TB磁盘,一个磁盘镜像另一个。 zpool create -f -o ashift = 12 $ zpoolName mirror $ disksById 如果需要更换一个磁盘,根据zpool手册页,更换磁盘的大小必须等于或大于configuration中两个磁盘的最小大小。 从我所了解的情况来看,通常情况下,不同品牌和型号的驱动器(和型号修订版)之间的确切尺寸通常会有所不同,即使它们都被标记为8 TB。 不过, 我希望能够用任何其他的8TB磁盘replace它 ,而不一定是相同的品牌和型号。 我如何做到这一点? 我会期望有一个选项来创buildzpool命令,以便整个磁盘不是用于池,但留下一些松懈,但我找不到这样的选项。 我看到的唯一build议是在创build池之前对磁盘进行分区,创build一个“池”分区和一个“松散”分区,但是我读过这会影响磁盘性能,因为磁盘caching不能被正确使用zfs,所以我想我想避免这个。