小编Pro*_*ter的帖子

允许某些客人执行某些命令

我想在我的一些 Debian/Ubuntu 主机上创建一个新用户,该用户能够使用命令apt-get update和更新服务器apt-get dist-upgrade,但我不想给他们完整的 sudo 访问权限来做任何其他事情。这可能吗?也许有一种方法可以创建一个他们无法编辑但可以执行的脚本,该脚本将以 root 用户身份执行?

permissions sudo privileges

23
推荐指数
1
解决办法
7万
查看次数

Docker + 网桥 + DHCP

我有很多 docker 容器,我需要在与它们的主机相同的 LAN 上进行寻址。到目前为止,我一直通过使用设置桥接器并手动为其分配 IP以及自己管理 IP来实现这一点。一个示例启动将是这样的:

docker run \
--net="none" \ \
--lxc-conf="lxc.network.type = veth" \
--lxc-conf="lxc.network.ipv4 = 192.168.1.3/24" \
--lxc-conf="lxc.network.ipv4.gateway = 192.168.1.254" \
--lxc-conf="lxc.network.link = br0" \
--lxc-conf="lxc.network.name = eth0" \
--lxc-conf="lxc.network.flags = up" \
-d [Docker Image ID]
Run Code Online (Sandbox Code Playgroud)

主机在/etc/network/interfaces(ubuntu) 中定义了网桥,如下所示:

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        gateway 192.168.1.254
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
Run Code Online (Sandbox Code Playgroud)

自从我发现了serf,我一直在尝试在容器内使用自动发现,以便 DHCP 可以跟踪 IP 并将它们分发给容器。我从那以后将启动命令更改为: …

dhcp bridge docker

14
推荐指数
1
解决办法
2万
查看次数

发送关闭命令后,ssh 会话不会终止

每当我发送关闭或重新启动 Debian 服务器的命令时,我的 shell 都会挂起并且没有响应(无法输入任何命令)。

在此处输入图片说明

在 Ubuntu 中执行相同的操作会导致会话正常关闭,因此我没有一个捆绑的终端挂在那里。是否有我需要安装的软件包或要进行的配置更改,以便我可以在 Debian 上获得相同的行为?

shutdown ssh debian systemd

13
推荐指数
2
解决办法
1万
查看次数

Debian 8 KVM 来宾 - 加载初始 ramdisk

我已经为 Ubuntu 14.04 KVM 主机更新了我的KVM 管理脚本以支持 debian 8 来宾。手动安装后(预置脚本还不起作用),我在启动时遇到以下消息:

在此处输入图片说明

在安装过程中,我:

  • 仅选择 ssh 服务器和基本系统实用程序。
  • 将 grub 引导加载程序设置为安装到唯一列出的选项。
  • 对一个分区上的所有内容使用引导式分区模式。
  • 使用当地的英国镜像。

是否需要小心执行某些步骤,或者 Debian 8 尚未安装为 KVM 来宾?


更新

在放弃并决定通过将所有行更新/etc/apt/sources.listjessie而不是将 debian 7 VM 升级到 debian 8之后wheezy,我发现我最终得到了相同的行为。

然而,这个实例有一个静态 IP,我发现我仍然可以通过 SSH 连接到该 IP 上的服务器,所以看起来这是某种图形问题,服务器确实设法启动,我们只是看不到登录文本。我该如何解决这个问题?


更新

这一次,在通过升级 debian 7 创建的 debian 安装上,我可以从 grub 菜单中单击高级并选择现在可用的 (sysvinit) 选项。我希望这可以解释启动的正常版本出了什么问题?

在此处输入图片说明

kvm boot debian ramdisk

10
推荐指数
1
解决办法
9969
查看次数

FFMPEG - 内插帧或添加运动模糊

我刚看了的霍比特人拖车,并为复仇者拖车,其都采用增加帧率。很多评论都说这不是“真正的”60fps,因为它不是以 60fps 拍摄的,而是实际插入的较低的帧速率。

在此处输入图片说明

如果是这种情况,是否有任何方法可以以相同的方式使用 ffmpeg 或 avconv 转换 Linux 中的一些现有媒体,以创建这种“错觉”?

我可以理解更高的帧率是否不合其他人的口味,但不是这篇文章的重点。

ffmpeg video-editing video-encoding avconv

8
推荐指数
2
解决办法
3万
查看次数

LVM 快照存储要求

我对 LVM 快照的存储和工作方式有点困惑。据我所知,当您使用 LVM 创建快照时,它不会占用任何空间,但当您对系统上的文件进行更改时,您的 LVM 快照卷的大小将会增加。如果它们的大小超过其分区的大小,它们将被“删除”并消失,这就是为什么它不是一个好的备份解决方案(除了它也在同一物理系统上这一事实之外)。

LVM快照存储的工作原理如下图所示吗?

在此输入图像描述

我试图展示一个场景,其中根文件系统分区大部分为空,并且有少量数据显示为紫色。我创建了一个名为“快照 1”的快照分区,当我对原始文件进行更改时,该分区会逐渐填满,尽管我很确定 LVM 是基于块的而不是基于文件的。

问题

这是否意味着,如果我有一个 100 GB 的根分区,仅存储 20GB 的数据,如果我给它 21GB 的大小,我就永远不需要担心我的快照分区溢出?或者快照分区是否必须与根分区一样大或更大,因为它还记录未使用空间(0 的块)的差异?

linux lvm

5
推荐指数
1
解决办法
4030
查看次数

如何配置 AppArmor 以便 KVM 可以启动具有备份文件链的 guest 虚拟机

我正在 Ubuntu 16.04 上尝试使用 Qemu 外部快照进行 KVM(因为它们太快了!),并进行以下设置:

  • VM 的所有文件都位于单个目录中(以来宾名称命名)。
  • 有一个head.qcow2符号链接始终指向顶部“head”qcow2 图像。这样我就不必不断更新虚拟机配置。(维尔什编辑)。
  • 原始/底部图像称为base.qcow2

我使用以下脚本拍摄快照(创建一个新的 qcow2 图像并将其设为头部)。该脚本仅在来宾未运行时执行。

#!/bin/bash
UNIX_TIMESTAMP=$(date +%s)
CURRENT_BACKING_FILE=`readlink head.qcow2`
NEW_HEAD_FILE="`pwd`/`echo $UNIX_TIMESTAMP`.qcow2"

# Create the new "head" disk image where all future changes are made.
sudo qemu-img create \
  -f qcow2 \
  -b $CURRENT_BACKING_FILE \
  $NEW_HEAD_FILE

# Update the symlink
rm head.qcow2
ln -s $NEW_HEAD_FILE head.qcow2
Run Code Online (Sandbox Code Playgroud)

当 head.qcow2 指向 base.qcow2 时,这将正常工作,或者我运行脚本一次,因此只有一个支持文件。但是,如果存在一系列备份文件(例如,一个备份文件也有一个备份文件),那么我将收到以下错误:

error: Failed to start domain template-ubuntu-docker2
error: internal error: early end of file from …
Run Code Online (Sandbox Code Playgroud)

kvm apparmor qemu snapshot

5
推荐指数
1
解决办法
1万
查看次数

www-data 用户无法生成 gpg 密钥

我正在尝试在 Debian 9 KVM 来宾上设置 passbolt,步骤之一是以 www-data 用户身份生成 GPG 密钥。不幸的是,每当我尝试执行此操作(通过gpg --gen-key以 www-data 用户身份运行)时,我都会得到以下输出:

...
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: agent_genkey failed: Permission denied
Key generation failed: Permission …
Run Code Online (Sandbox Code Playgroud)

debian gpg

5
推荐指数
2
解决办法
7319
查看次数

Debian 8 - 在启动时更新 Iptables

我正在将我的“配置 openvpn 服务器”从 ubuntu 14 移植到 debian 8。到目前为止,除了本节之外,它运行良好:

# Set up iptables to forward packets for vpn and do this upon startup.
echo 'iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
exit 0' > /etc/rc.local
Run Code Online (Sandbox Code Playgroud)

似乎 debian 8 不使用此/etc/rc.local文件,因此我的 vpn 服务器在重新启动后无法正确转发流量。我必须手动调用该脚本,或执行命令。

在启动时更新 iptables 的“debian 8 方式”是什么?


更新

阅读/etc/rc.local应该可以工作后,我确保将权限设置为 755 并将脚本更新为如下:

/bin/echo "starting..." …
Run Code Online (Sandbox Code Playgroud)

startup debian iptables

4
推荐指数
1
解决办法
1万
查看次数

访问 Ubuntu 16.04 KVM 来宾的控制台

当我将 Debian 8 添加到我的KVM 管理工具时,我发现除非我添加console=ttyS0到 grub 引导配置中,否则我无法访问控制台。这不是很好,但它奏效了。我正在将 Ubuntu 16.04 添加到管理工具中,这次在安装来宾时遇到了同样的问题,但是当我在连接到控制台的情况下重新启动实例时,我无法再看到 grub 菜单选项。因此,我无法实施解决方法。

我设法通过arp -an在虚拟机管理程序上运行并连接到 KVM 桥上的 IP 来找到来宾实例的 IP 地址,直到找到正确的 IP 地址。这使我能够确认来宾已正确安装并运行。我希望能够连接到控制台sudo virsh console [guest ID],以防网络出现问题或 openssh 突然决定停止工作。我需要做什么才能从虚拟机管理程序连接到来宾 ubuntu 16.04 控制台?

我的直觉是,我只需要调整sudo virsh edit [guestID]. 目前我有:

...
<serial type='pty'>
  <target port='0'/>
</serial>
<console type='pty'>
  <target type='serial' port='0'/>
</console>
...
Run Code Online (Sandbox Code Playgroud)

额外信息

  • 使用内核 4.2.0-36-generic 的 Ubuntu 14.04 KVM 管理程序
  • 虚拟 1.2.2

kvm tty console

4
推荐指数
2
解决办法
1万
查看次数

Qcow2 快照 - 原始存储类型不支持磁盘 vda 的快照

我正在运行 KVM 服务器 (Ubuntu 14.04) 并想为我的客人拍摄快照。我正在阅读这篇文章中如何做到这一点。似乎我应该能够通过运行以下命令来拍摄客人的快照:

sudo virsh snapshot-create $GUEST_ID /path/to/snapshot/file.xml
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做(并且也尝试不指定文件路径)时,我收到以下错误消息:

error: unsupported configuration: internal snapshot for disk vda unsupported for storage type raw
Run Code Online (Sandbox Code Playgroud)

创建来宾时,我使用以下命令预先创建磁盘映像:

qemu-img create -f qcow2 -o preallocation=metadata,lazy_refcounts=on $filepath 20G
Run Code Online (Sandbox Code Playgroud)

当我使用命令sudo virsh edit $GUEST_ID查看guest的定义时,它清楚地显示了“raw”,如下图:

<disk type='file' device='disk'>
  <driver name='qemu' type='raw'/>
  <source file='/home/$USER/kvm/domain.name.img'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</disk>
Run Code Online (Sandbox Code Playgroud)

是否有可能我实际上没有运行 qcow2 磁盘映像,或者我是否错误地输入了快照命令?有没有一种方法可以仅使用 CLI 来测试以确保我的磁盘映像是原始格式还是 qcow2 格式?

kvm virtualization snapshot

3
推荐指数
1
解决办法
9534
查看次数