Linux
腳本在所有文件夾上執行 chown 並將所有者設置為文件夾名稱減去尾隨 /
一些笨拙的跑了
chown -R username
。在我們的網路伺服器上的 /home 文件夾中,認為他在所需的文件夾中。不用說,伺服器拋出了很多 wobbelys。我們有 200 多個網站,我不想將它們全部單獨列出,所以我正在嘗試製作一個腳本,將所有文件夾的所有者更改為文件夾名稱,不帶尾隨 /。
到目前為止,這就是我所擁有的,一旦我可以刪除 / 就可以了,但我還想檢查文件是否包含 . 在其中,如果沒有則執行命令,否則轉到下一個。
#!/bin/bash for f in * do test=$f; #manipluate the test variable chown -R $test $f done
任何幫助都會很棒!
提前致謝!
假設/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
我建議之前執行一個測試循環,檢查使用者名是否真的與主目錄匹配。
此 AWK 命令檢索給定使用者的主目錄。
awk -F: -v user="$username" '{if($1 == user){print $6}}' < /etc/passwd
對照現有的主目錄檢查此結果是讀者的練習。