加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何在没有sudo的情况下将文件chown到subuid

发布时间:2020-12-13 17:13:53 所属栏目:Linux 来源:网络整理
导读:基本上,这里发生了什么,我不理解什么? 我为我的用户提供了一组子项.我想将文件chown到特定的subuid,这是该用户分配的一部分 administrator@host:/home/administrator$cat /etc/subuidroot:100000:65536administrator:165536:65536administrator:1000000:900
基本上,这里发生了什么,我不理解什么?

我为我的用户提供了一组子项.我想将文件chown到特定的subuid,这是该用户分配的一部分

administrator@host:/home/administrator$cat /etc/subuid
root:100000:65536
administrator:165536:65536
administrator:1000000:9000001

administrator@host:/home/administrator$cat /etc/subgid
root:100000:65536
administrator:165536:65536
administrator:1000000:9000001

尽管这个subuid是分配的一部分,但尝试chown这个文件失败了.

administrator@host:/home/administrator$ls -lhat
...
-rw-rw-r-- 1 administrator administrator  229 Aug  2 13:00 file
drwxrwxr-x 7 administrator administrator 4.0K Aug  2 13:00 ..

administrator@host:/home/administrator$chown 1500000:1500000 file
chown: changing ownership of 'file': Operation not permitted

administrator@host:/home/administrator$stat file
  File: file
  Size: 229             Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 658357      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/administrator)   Gid: ( 1004/administrator)
Access: 2018-08-02 13:00:36.529197108 +0000
Modify: 2018-08-02 13:00:36.529197108 +0000
Change: 2018-08-02 13:00:36.529197108 +0000
 Birth: -
administrator@host:/home/administrator$

但是,我可以删除文件作为用户,如果我使用sudo来显示它 – 但是当我这样做时它会显示为写保护文件.这表明我确实有权使用此子菜单修改文件.

administrator@host:~$touch file
administrator@host:~$chown 1500000:1500000 file
chown: changing ownership of 'file': Operation not permitted

administrator@host:~$sudo chown 1500000:1500000 file    
administrator@host:~$rm file
rm: remove write-protected regular empty file 'testfile.txt'?
administrator@host:~$

任何人都可以解释这里正在发生的内部运作吗?我可能误解了一些基本的东西.我不能将此标记为subuid因为没有足够的rep,所以我将使用uid.

谢谢!

解决方法

有一个程序lxc-usernsexec与lxc一起出现.这允许您使用maps / etc / subuid和/ etc / subgid重新映射用户ID.

具体来说,您可以执行以下操作.

> lxc-usernsexec – touch / tmp / test
> ls -l / tmp / test将显示该文件是owner:group与map中的第一个subuid:subgid对相同.
> rm / tmp / test应该给出错误,因为你当前没有正确的uid / gid.
> lxc-usernsexec – rm / tmp / test应删除该文件.

希望这可以帮助!以上可能需要为无特权的LXC容器设置各种设置.特别是,我认为/ proc / sys / kernel / unprivileged_userns_clone应为1.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读