Shi*_*oki 4 linux ssh shell bash
一些麻木跑了chown -R username
。在我们的网络服务器上的 /home 文件夹中,认为他在所需的文件夹中。毋庸置疑,服务器正在抛出很多问题。
我们有 200 多个网站,我不想将它们全部单独列出,因此我正在尝试制作一个脚本,将所有文件夹的所有者更改为文件夹名称,不带尾随 /。
到目前为止,这就是我所拥有的一切,一旦我可以删除 / 就可以了,但我还想检查文件是否包含 . 在其中,如果没有,则运行该命令,否则转到下一个。
#!/bin/bash
for f in *
do
test=$f;
#manipluate the test variable
chown -R $test $f
done
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒!
提前致谢!
假设/home/目录下的所有文件夹都代表用户名,可以使用:
for dir in /home/*/; do
# strip trailing slash
homedir="${dir%/}"
# strip all chars up to and including the last slash
username="${homedir##*/}"
case $username in
*.*) continue ;; # skip name with a dot in it
esac
chown -R "$username" "$dir"
done
Run Code Online (Sandbox Code Playgroud)
我建议之前运行一个测试循环,检查用户名是否真正匹配主目录。
此 AWK 命令检索给定用户的主目录。
awk -F: -v user="$username" '{if($1 == user){print $6}}' < /etc/passwd
Run Code Online (Sandbox Code Playgroud)
对照现有的主目录检查此结果是读者的练习。
归档时间: |
|
查看次数: |
9759 次 |
最近记录: |