Bash
我可以在 freebsd 上使用 pw adduser 自動創建密碼使用者嗎?
我可以在 freebsd 上使用 pw adduser 自動創建密碼使用者嗎?
pw useradd [name] [switches] -V etcdir alternate /etc location -C config configuration file -q quiet operation Adding users: -n name login name -u uid user id -c comment user name/comment -d directory home directory -e date account expiry date -p date password expiry date -g grp initial group -G grp1,grp2 additional groups -m [ -k dir ] create and set up home -M mode home directory permissions -s shell name of login shell -o duplicate uid ok -L class user class -h fd read password on fd -H fd read encrypted password on fd -Y update NIS maps -N no update Setting defaults: -V etcdir alternate /etc location -D set user defaults -b dir default home root dir -e period default expiry period -p period default password change period -g group default group -G grp1,grp2 additional groups -L class default user class -k dir default home skeleton -M mode home directory permissions -u min,max set min,max uids -i min,max set min,max gids -w method set default password method -s shell default shell -y path set NIS passwd file path
據此,我可以。但我不知道如何……似乎我需要使用文件描述符,但我無法看到如何做到這一點的任何範例。我有一個 bash 腳本,它需要在沒有使用者輸入的情況下自動執行此操作……
有任何想法嗎?
這是使用文件描述符的範例:
echo password | pw useradd -h 0 user1
每個 Unix 程序通常具有三個標准文件描述符:
stdin
(0)stdout
(1)stderr
(2)在這種情況下,我們告訴
pw
從 fd 0 讀取輸入,也就是stdin
。您可能需要查看bash
手冊頁,其中包含各種可以使用文件描述符和重定向執行的奇特事情的範例。請注意,此範例存在一些安全問題——任何
ps
在正確時間執行該命令的人都可以看到該echo
命令的參數。這在您的環境中可能是也可能不是問題。你可以這樣做:pw useradd -h 0 user1 <<EOP password EOP