ls在交互式shell和脚本中报告系统目录(/ home)的不同inode

时间:2016-05-23 19:07:44

标签: systemd inode

如果我在任何用户的交互式shell中工作,/home的inode列表查询将返回:

[postgres@localhost ~]$ ls -ild /home
2 drwxr-xr-x 14 root root 4096 May 20 16:20 /home

但是,脚本通过ExecStartPre=子句在systemd单元文件中调用,并指定作为特定用户(即User=postgres)运行,该用户运行相同的ls命令上面,显示一个完全不同的inode并失败,阻止我正常运行systemd单元:

10364 d--------- 2 root root 40 May 20 15:06 /home

我真的不知道为什么会这样。这实际上很奇怪。有人可以解释一下发生了什么吗?

1 个答案:

答案 0 :(得分:0)

我试图访问的systemd单元文件的库存形式包括ProtectHome=true子句,根据systemd文档:

ProtectHome=
       Takes a boolean argument or "read-only". If true, the directories /home, /root and /run/user are made inaccessible and
       empty for processes invoked by this unit.

将条款更改为false使/home可用于脚本。