看板 LinuxDev 關於我們 聯絡資訊
幫朋友發問的 我用sh讀一個文字檔的內容,裏面是e-mail帳號,然後用 passwd去停用e-mail的登入密碼,以下程式會有error,該如何修改? #!/bin/bash filename="/var/www/html/lock_mail" exec < $filename while read var do sudo passwd -l $var done sudo passwd -l testjen sudo passwd -l testjen1 sudo passwd -l testjen2 錯誤訊息如下: '.sswd: Unknown user name 'testjen '.sswd: Unknown user name 'testjen1 '.sswd: Unknown user name 'testjen2 Locking password for user testjen. passwd: Success Locking password for user testjen1. passwd: Success Locking password for user testjen2. passwd: Success 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.254.69.139 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1460513297.A.B85.html
kerwinhui: 用bash就不要用sh呼叫… 04/13 10:36
kerwinhui: 另外,有手動改過 /etc/shadow 或 /etc/passwd 嗎? 04/13 10:37
直接下 sudo passwd -l testjen 是ok的,但帶變數去改,就會有error #!/bin/bash filename="/var/www/html/lock_mail" exec < $filename while read var do sudo passwd -l $var #執行error,確定有testjen這帳號 sudo passwd -l testjen #執行正常 done
kerwinhui: 如果是用 sudo -- "password -l $var" 呢? 04/13 13:01
kerwinhui: passwd 不是 password 04/13 13:02
yvb: 猜測輸入檔為DOS格式. while前加一列 IFS=$' \t\r\n' 試試. 04/13 15:02
輸入檔為linux格式 不過加了這行就能用了 謝謝 ※ 編輯: jubel (111.254.69.139), 04/13/2016 15:07:53
yvb: 請先 file 一下該檔, CRLF 換行是DOS格式, CR換行是MAC格式. 04/13 15:10