对于学校作业,我们的团队已获得学校提供的 VM。我们获得了将用户帐户添加到 sudo 组的虚拟机,并且我还可以访问计算机上已存在的“root”和“sysadm”帐户,大概是来自进行设置的系统管理员。
我注意到一个问题:我无法在主目录中创建任何目录或文件。
411blackf16:/> ls -lashr
total 93K
0 lrwxrwxrwx 1 root root 29 Sep 8 07:43 vmlinuz.old -> boot/vmlinuz-4.4.0-21-generic
0 lrwxrwxrwx 1 root root 29 Sep 8 18:35 vmlinuz -> boot/vmlinuz-4.4.0-36-generic
4.0K drwxr-xr-x 14 root root 4.0K Sep 12 18:16 var
4.0K drwxr-xr-x 10 root root 4.0K Sep 8 07:42 usr
4.0K drwxrwxrwt 10 root root 4.0K Sep 12 18:44 tmp
4.0K drwx------ 2 sysadm sysadm 4.0K Sep 12 18:44 sysadm
0 dr-xr-xr-x 13 root root 0 Sep 12 18:30 sys
4.0K drwxr-xr-x 2 root root 4.0K Apr 20 18:08 srv
4.0K drwxr-xr-x 2 root root 4.0K Apr 19 10:31 snap
12K drwxr-xr-x 2 root root 12K Sep 12 13:18 sbin
0 drwxr-xr-x 36 root root 1.4K Sep 12 18:32 run
4.0K drwx------ 3 root root 4.0K Sep 12 18:34 root
0 dr-xr-xr-x 219 root root 0 Sep 8 23:42 proc
4.0K drwxr-xr-x 2 root root 4.0K Sep 12 12:20 opt
4.0K drwxr-xr-x 2 root root 4.0K Apr 20 18:08 mnt
4.0K drwxr-xr-x 4 root root 4.0K Sep 8 07:42 media
16K drwx------ 2 root root 16K Sep 8 07:42 lost+found
4.0K drwxr-xr-x 2 root root 4.0K Sep 8 07:42 lib64
4.0K drwxr-xr-x 22 root root 4.0K Sep 12 18:22 lib
0 lrwxrwxrwx 1 root root 32 Sep 8 07:43 initrd.img.old -> boot/initrd.img-4.4.0-21-generic
0 lrwxrwxrwx 1 root root 32 Sep 8 18:35 initrd.img -> boot/initrd.img-4.4.0-36-generic
0 drwxrwxrwx 2 root root 0 Sep 12 19:03 home
4.0K drwxr-xr-x 106 root root 4.0K Sep 12 18:56 etc
0 drwxr-xr-x 19 root root 4.2K Sep 8 23:43 dev
1.0K drwxr-xr-x 4 root root 1.0K Sep 12 13:19 boot
4.0K drwxr-xr-x 2 root root 4.0K Sep 12 13:18 bin
4.0K drwxr-xr-x 24 root root 4.0K Sep 12 18:51 ..
4.0K drwxr-xr-x 24 root root 4.0K Sep 12 18:51 .
所有者是 root:root。
411blackf16:/> sudo mkdir /home/test
mkdir: cannot create directory ‘/home/test’: Permission denied
411blackf16:/> sudo su root
root@411blackf16:/# sudo mkdir /home/test
mkdir: cannot create directory ‘/home/test’: Permission denied
使用我的 sudo 用户帐户或 root 帐户仍然不允许创建目录或文件。
root@411blackf16:/# chmod -R 777 /home/ && touch /home/test
touch: cannot touch '/home/test': Permission denied
即使开放权限也没有帮助。有人知道这里发生了什么吗?
谢谢。
答案1
有几种可能性:
/home
可能是只读安装的文件系统(该mount
命令会向您显示这一点)- 作为练习,你的教练可以设置了一些有趣的 ACL(但随后
ls
应该在权限后显示一个.
或其他标点符号) - VM(底层文件)权限是只读的,并且机器无法写入其更改(因此,例如,日志记录可能已终止)。
在后续行动中,OP 显示了以下结果mount
:
411blackf16:/> mount | grep home
ldap:CN=auto.home,OU=Unix Autofs,DC=cs,DC=odu,DC=edu on /home type autofs (rw,relatime,fd=6,pgrp=1415,timeout=300,minproto=5,maxproto=5,indirect)
MikeA 指出
- 这类型is
"autofs"
,这表明文件系统已安装,并且 - 该字符串
"ldap:CN=auto.home,OU=Unix Autofs,DC=cs,DC=odu,DC=edu"
表示它是使用 LDAP 凭据安装的。 - 所有这些都意味着实际的数据
/home
位于OP无法修改的另一台机器上(除了他/她的主目录中的文件)。
这root
虚拟机上的用户对此文件系统没有任何权限(它将被视为nobody
)。
如果要在虚拟机中创建具有本地主目录的本地用户帐户,可以将其主目录放在不同的位置。/home
是一个很常见的约定,但不是绝对的规则。
进一步阅读:
答案2
你的主目录是〜更改为你的主目录
光盘~
我怀疑 selinux 正确地阻止您在 /home 中创建目录
主目录/home/