Questions tagged «namespace»

与Linux名称空间有关的问题,包括诸如unshare和ip netns之类的命令。命名空间支持隔离文件系统,系统名称,IPC,进程,网络和用户。与docker和lxc标签密切相关;如果您只是使用docker或lxc来实现名称空间,请使用这些标签而不是此标签。

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

5
如何找出特定进程的名称空间?
我已经问过一个有关如何在Linux中列出所有名称空间的问题,但是没有任何正确而准确的答案,因此我想找到一种方法,可以帮助我找出某个进程或一组PID的名称空间。流程。如何在Linux中完成?

2
每个进程专用文件系统挂载点
我正在检查unshare命令,并根据它的手册页, unshare - run program with some namespaces unshared from parent 我还看到其中列出了一种名称空间, mount namespace mounting and unmounting filesystems will not affect rest of the system. 此装载名称空间的确切用途是什么?我试图借助一些示例来理解这个概念。

4
如何在Linux中列出名称空间?
这个问题是从Server Fault 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 5年前。 Linux中是否有任何方法可以列出正在运行的主机上的所有名称空间?我需要检查特定进程的名称空间(例如,在LXC容器中运行的进程以及主机上的所有其他进程),然后找出它们的cgroup。
24 linux  lxc  namespace 

1
使用`nsenter'的可靠方法来监禁子进程:
我知道Linux命名空间以及许多其他东西都可以用来安全地处理子进程并对其进行约束,而不会被子进程破坏和转储init。但是我对实现细节一无所知。我怎么可能会使用所提供的工具util-linux,如mount和nsenter观看,监控,并确保所有的进程都启动另一个进程的直接后裔的命名空间?

3
在Linux上“离线”运行子进程的命令(无外部网络)
我有一个程序要在脱机模式下进行测试,而又不中断我的实际网络。该程序仍然需要连接到本地套接字,包括Unix域套接字和环回。它还需要侦听回送并且对其他应用程序可见。 但是尝试连接到远程计算机应该失败。 我想有一个工具,它的工作原理是strace/ unshare/ sudo,只是运行在互联网(和LAN)隐蔽和一切仍在工作的命令: $ offline my-program-to-test 该问题的答案提示:阻止进程的网络访问? 那里有一些建议,例如以其他用户身份运行然后操纵iptables或unshare -n。但是在两种情况下,我都不知道要与主系统共享unix域套接字和环回的诱惑-该问题的答案仅告诉我如何取消共享整个网络。 我正在测试的程序仍然需要连接到我的X服务器和dbus,甚至还能够在环回侦听来自系统上其他应用程序的连接。 理想情况下,我想避免创建chroot或用户或VM等,因为它就像拔掉网络电缆一样令人讨厌。即问题的关键是我怎样才能使它简单如一个sudo。 我希望该过程能够正常运行100%,除了指定非本地地址的网络调用会失败。理想情况下,保持相同的uid,相同的homedir,相同的pwd,相同的所有内容,除了...离线。 我使用的是Fedora 18,因此无法移植的Linux回答就很好(甚至期望)。 我什至很乐意通过编写C程序来解决此问题,如果涉及到这一点,那么涉及编写C的答案就可以了。我只是不知道C程序在保留本地网络的同时撤销外部网络访问权限时需要执行什么系统调用。 任何尝试支持“离线模式”的开发人员都可能会喜欢此实用程序!

3
内核:命名空间支持
我想知道Linux内核中“命名空间支持”功能到底意味着什么。我正在使用内核3.11.1(当前最新的稳定内核)。 如果我决定禁用它,我是否会注意到系统上的任何更改? 如果有人决定使用名称空间,仅NAMESPACES=Y在内核中进行编译就足够了吗,还是他还需要用户空间工具?

1
如何在Linux名称空间中执行chroot?
在阅读了有关Linux名称空间的信息后,我感到它们是chroot的替代品,其中包括许多其他功能。例如,在本文中: [...]命名空间的其他用途包括将进程的chroot()样式隔离到单个目录层次结构的一部分。 但是,当我克隆装载名称空间时,例如使用以下命令,我仍然可以看到整个原始根树。 unshare --mount -- /bin/bash 我知道我现在可以在新的名称空间中执行与原始名称空间不共享的其他挂载,因此可以提供隔离,但是它仍然是相同的根,例如/etc,两个名称空间仍然相同。我仍然需要chroot更改根目录还是有替代方法? 我原以为这个问题会提供答案,但是答案仅chroot再次使用。 编辑#1 现在有提到的已删除评论pivot_root。由于这实际上是的一部分linux/fs/namespace.c,因此实际上是名称空间实现的一部分。这表明只能使用unshare和更改根目录mount是不可能的,但是名称空间提供了自己的-更聪明的版本chroot。chroot即使在阅读了源代码之后(例如在安全性或更好的隔离性的意义上),我仍然没有获得使这种方法与根本上有所不同的这种方法的主要思想。 编辑#2 这不是这个问题的重复。执行完答案中的所有命令后,我有单独的/tmp/tmp.vyM9IwnKuY(或类似的文件),但是根目录仍然相同!
14 chroot  namespace 


2
使用unshare模拟chroot
我正在尝试为最小的源Linux发行版编写引导程序。 我想在类似chroot的环境中构建。这应该简化包装。我现在不在乎安全性。引导程序不应要求任何非标准的第三方命令。如果也不需要root,那就太好了。 这就是为什么fakechroot(1)fakeroot(1)chroot(1)并非我要找的东西的原因。 是否可以伪造/使用unshare(1)和/ bin / sh?

2
为什么我的绑定安装在其安装名称空间之外可见?
因此,我试图了解Linux的安装名称空间的工作方式。因此,我做了一个小实验,打开了两个终端,然后运行以下命令: 1号航站楼 root@goliath:~# mkdir a b root@goliath:~# touch a/foo.txt root@goliath:~# unshare --mount -- /bin/bash root@goliath:~# mount --bind a b root@goliath:~# ls b foo.txt 2号航站楼 root@goliath:~# ls b foo.txt 在2号航站楼中如何看到安装座?由于它不是安装名称空间的一部分,因此我希望目录在此处显示为空。我也尝试通过传递-o shared=no和使用--make-private选项mount,但是得到了相同的结果。 我缺少什么?如何将其设为私有?
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.