我在let TabExample = React.createClass({
getInitialState() {
return {
key: 1
};
},
handleSelect(key) {
this.setState({key});
},
ajaxCall : function() { // Ajax call is made here..
componentDidMount : function () {
this.ajaxCall();
}
render() {
return (
<Tabs activeKey={this.state.key} onSelect={this.handleSelect} id="controlled-tab-example">
<Tab eventKey={1} title="Tab 1">Tab 1 content with ajax call</Tab> // Ajax here
<Tab eventKey={2} title="Tab 2">Tab 2 content</Tab> // No ajax
<Tab eventKey={3} title="Tab 3" disabled>Tab 3 content</Tab> // No ajax
</Tabs>
);
}
});
上使用docker
并启用了用户ID映射(用户名称)。我有以下设置:
/ etc / passwd中
ubuntu 16.04
的/ etc / subuid
myusername:x:1000:1000:,,,:/home/myusername:/bin/bash
的/ etc / subguid
myusername:100000:65536
当我启动一个容器时,文件正在从0(root)正确映射到我的subuid 100000.
宿主
myusername:100000:65536
容器
-rw-r--r-- 1 100000 100000 0 Mär 30 13:05 testfile
我可以在主机上读取文件,但我无法编辑它。我的假设是
rw-r--r-- 1 root root 0 Mar 30 13:05 testfile
是“我的”subuid,所以我可以编辑这些文件。如何在不使用sudo的情况下100000
访问这些文件?
答案 0 :(得分:0)
我不确定如何使用用户命名空间映射解决此问题,但您可以使用ACL解决此问题。
如果您不介意将某些UID信息泄漏到容器中,则可以将ACL添加到主机用户的目录中。 ACL位于标准POSIX权限之上。
要在父目录上设置默认ACL,新条目将继承:
setfacl -d -m u:1000:rwx volume_dir/
在目录中的所有现有文件和目录上设置ACL:
setfacl -R -m u:1000:rwX volume_dir/
X
自动检测目录并将其设置为可执行文件但跳过使文件可执行。不幸的是,这种区分在默认ACL上不可用。