สคริปต์ Linux เพื่อแยกชื่อผู้ใช้จากไฟล์ข้อความ


0

ฉันเป็นผู้เริ่มต้นที่สคริปต์ แต่ฉันสร้างไฟล์ข้อความtext.datที่มีชื่อผู้ใช้เฉพาะในตำแหน่งไฟล์/home/daniel/text.datและฉันพยายามเรียกใช้สคริปต์ (เรียกว่าaddusers.sh) ซึ่งแสดงชื่อจากไฟล์ข้อความนั้นและจะสร้างบัญชีผู้ใช้ใหม่บน ระบบสำหรับแต่ละบัญชีผู้ใช้ใหม่ที่ระบุในtext.datไฟล์

สำหรับแต่ละบัญชีผู้ใช้ที่สร้างขึ้นให้ต่อท้ายรายการ/home/daniel/logs/useraccounts.logไฟล์ รายการโฆษณาจะมีข้อมูลต่อไปนี้:

เพิ่ม | <ชื่อบัญชีผู้ใช้> | <วันและเวลาที่สร้าง>
. นี่คือสิ่งที่ฉันมี:

 #! / bin / ทุบตี 
echo“ cat text.dat” 
newuser = grep /home/daniel/text.dat 
sudo adduser $ newuser

คุณเพิ่มผู้ใช้เหล่านี้แบบโต้ตอบ (เช่นการตอบรับคำแจ้งสำหรับข้อมูลผู้ใช้) หรือไม่แบบโต้ตอบ?
bertieb

คำตอบ:


0

ฉันจะเพิ่มผู้ใช้ในระบบ Linux ตามที่ระบุไว้ในไฟล์ได้อย่างไร

มีบางสิ่งในบรรทัดต่อไปนี้ที่ควรทำหากคุณต้องการให้กระบวนการดำเนินการอัตโนมัติอย่างสมบูรณ์ (ทำงานผ่านเช่นsudo ./addusers.sh):

#! / bin / ทุบตี
# addusers.sh - เพิ่มผู้ใช้ไปยังระบบและส่งออกบันทึกเดียวกัน
# run เป็น root หรือผ่าน sudo

usersfile = / home / แดเนียล / text.dat
logfile = / home / แดเนียล / logs / useraccounts.log

ในขณะที่ผู้ใช้อ่าน; ทำ
   echo "การเพิ่ม $ ผู้ใช้"
   adduser - gecos "" - ปิดการใช้งาน - รหัสผ่าน $ user
   echo "เพิ่ม | $ ผู้ใช้ |` date` | " >> $ logfile
เสร็จแล้ว <$ usersfile

ด้วยตัวเลือก (จากaddusermanpage):

--disabled-password

Like --disabled-login, but logins are still possible (for example using SSH RSA keys) but not using การตรวจสอบรหัสผ่าน

( --disabled-loginจะทำงานด้วยฉันเดา)

--gecos GECOS

Set the gecos field for the new entry generated. adduser will not ask for finger information if this option is given.

คุณสามารถปล่อยให้ตัวเลือกเหล่านี้adduserปิดหากคุณต้องการระบุรหัสผ่านและ / หรือข้อมูลผู้ใช้

นอกจากนี้คุณยังสามารถระบุวิธีที่คุณต้องการให้ระบุวันและเวลาในการสร้างผ่านตัวเลือกdateต่างๆเช่น

$ date "+% Y-% m-% d% H% M"
2017-02-19 0330

ขอบคุณมากสำหรับคำตอบของคุณส่วนใหญ่ทุกอย่างผ่านไปแล้ว แต่เมื่อฉันรันสคริปต์มันก็บอกว่า. /addusers.sh: บรรทัด 7: /home/daniel/logs/useraccounts.log:Permission ปฏิเสธการเพิ่มบัญชีผู้ใช้ ฉันยังเพิ่ม sudo ต่อหน้า adduser ในสคริปต์ด้วย คุณรู้ไหมว่าทำไมถึงเป็นเช่นนั้น?
Daniel Wilson

@DanielWilson ดูเหมือนว่าสายก่อนdone < $usersfileจะทำให้เกิดปัญหา; แม้ว่ามันจะทำงานในตัวอย่าง (ขั้นต่ำ) ของฉัน คุณตรวจสอบไฟล์ / ไดเรกทอรีล็อกแล้วและมีสิทธิ์ที่สมเหตุสมผลหรือไม่
bertieb

0

เหตุการณ์ที่คุณต้องการบันทึกกำลังถูกล็อกโดย Linux ลองดู/var/log/auth.logและลองกรองหรือแยกวิเคราะห์ตามความต้องการเฉพาะของคุณแทนที่จะพยายามสร้างไฟล์บันทึกของคุณเอง

นี่คือตัวอย่างของคำถามในการเข้าสู่ระบบ:

Feb 19 10:23:47 localhost sudo:    larssend : TTY=pts/1 ; PWD=/home/larssend ; USER=root ; COMMAND=/usr/sbin/useradd -m -s /bin/bash -U tst
Feb 19 10:23:47 localhost sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Feb 19 10:23:47 localhost useradd[1661]: new group: name=tst, GID=1001
Feb 19 10:23:47 localhost useradd[1661]: new user: name=tst, UID=1001, GID=1001, home=/home/tst, shell=/bin/bash
Feb 19 10:23:48 localhost sudo: pam_unix(sudo:session): session closed for user root
Feb 19 10:23:50 localhost sudo:    larssend : TTY=pts/1 ; PWD=/home/larssend ; USER=root ; COMMAND=/usr/sbin/userdel -r tst
Feb 19 10:23:50 localhost sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Feb 19 10:23:50 localhost userdel[1667]: delete user 'tst'
Feb 19 10:23:50 localhost userdel[1667]: removed group 'tst' owned by 'tst'
Feb 19 10:23:50 localhost userdel[1667]: removed shadow group 'tst' owned by 'tst'
Feb 19 10:23:50 localhost sudo: pam_unix(sudo:session): session closed for user root

อย่างที่คุณเห็นมันมีทุกสิ่งที่คุณอาจจำเป็นต้องรู้เกี่ยวกับการสร้างและการลบบัญชีผู้ใช้รวมถึงผู้ที่ทำการสร้าง / ลบโดยวิธีการsudoบันทึก โปรดทราบว่าหากผู้สร้างไม่ได้ใช้sudoในการโทรuseraddหรือuserdelคุณอาจต้องทำงานพิเศษบางอย่างเพื่อพิจารณาว่าใครเป็นผู้สร้าง / ลบ


โปรดอ่านคำถามอีกครั้งอย่างระมัดระวัง คำตอบของคุณไม่ตอบคำถามเดิม OP กำลังพยายามสร้างบัญชีใหม่เองไม่บันทึกการสร้างที่มีอยู่
DavidPostill

@DavidPostill: "สำหรับบัญชีผู้ใช้แต่ละบัญชีที่สร้างขึ้นให้ต่อท้ายรายการบรรทัดในไฟล์ /home/daniel/logs/useraccounts.log" ฉันกำลังปรึกษากับที่แน่นอน
Larssend
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.