![尝试理解Linux脚本](https://linux22.com/image/651001/%E5%B0%9D%E8%AF%95%E7%90%86%E8%A7%A3Linux%E8%84%9A%E6%9C%AC.png)
我找到了这个 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