尝试理解Linux脚本

尝试理解Linux脚本

我找到了这个 Linux 脚本,正在尝试理解它。有人能帮我理解一下吗?

剧本

if [ ! -d "/home/ftp/$PAM_USER" ]; then
  /bin/su - ftp -s /bin/sh -c "/usr/bin/env mkdir /home/ftp/$PAM_USER"
  /bin/su - ftp -s /bin/sh -c "/usr/bin/env chmod 751 /home/ftp/$PAM_USER"
fi

我不明白的事情

if [ ! -d "/home/vsftpd/$PAM_USER" ]; then 

我假设上面的脚本是一个条件检查,以查看 pam 用户目录是否存在

是什么/bin/su意思

是什么ftp意思

这是什么-s /bin/sh意思

是什么-c /usr/bin/env意思

  /bin/su - ftp -s /bin/sh -c "/usr/bin/env chmod 751 /home/vsftpd/$PAM_USER"

fi

最后,我该如何测试以确保该脚本正常运行?

如果答案看起来太基础或不完整,我深表歉意。遗憾的是,由于我目前的知识水平,我不确定要问什么问题。

答案1

 /bin/su - ftp -s /bin/sh -c "/usr/bin/env mkdir /home/ftp/$PAM_USER"

意思是运行以下命令

 /usr/bin/env mkdir /home/ftp/$PAM_USER

作为 ftp 用户。您需要以 root 身份运行该命令。

/bin/su 将更改为新用户 ftp,该用户正在-c使用 /bin/sh shell 运行命令,如引用的-s

相关内容