Score:0

จะสร้างนามแฝงสำหรับผู้ใช้ linux ทั้งหมดได้อย่างไร .. ?

ธง cn
root@puppetclient-ubuntu:/home/azureuser#cat /etc/.bash_aliases
  นามแฝง extend_shutdown_15='ทุบตี extend_shutdown.sh 15 ; ทุบตี /bin/max_timetrack.sh'
  นามแฝง extend_shutdown_30='ทุบตี extend_shutdown.sh 30 ; ทุบตี /bin/max_timetrack.sh'
  นามแฝง extend_shutdown_60='ทุบตี extend_shutdown.sh 60 ; ทุบตี /bin/max_timetrack.sh'

# พยายามทำให้เป็นอัตโนมัติและดำเนินการ "source /etc/.bash_aliases" ผ่านเชลล์สคริปต์ แต่มันไม่ทำงาน หมายความว่าการเปลี่ยนแปลงจะไม่มีผล

root@puppetclient-ubuntu:/home/azureuser# cat alias.sh
#!/bin/bash
แหล่งที่มา ~/.bash_aliases

เมื่อฉันทำ แหล่งที่มา /etc/.bash_aliases คำสั่งที่กำหนดเองของนามแฝงนั้นมีให้สำหรับผู้ใช้รูทเท่านั้นและไม่สามารถใช้ได้สำหรับคนอื่น ๆ ทั้งหมดที่คาดว่า "รูท" ถ้าฉันดำเนินการเพียงครั้งเดียวมันควรจะพร้อมใช้งานสำหรับผู้ใช้ทั้งหมดเสมอ โปรดช่วยฉันแก้ไขด้วย ขอบคุณ

David avatar
cn flag
อูบุนตูเวอร์ชันใด
hariraj avatar
cn flag
"VERSION="20.04.2 LTS (โฟกัสแอ่ง)"
aq flag
เหตุใดคุณจึงจัดหาใน `alias.sh` ไม่ใช่ใน .bashrc ของผู้ใช้
Score:1
ธง cn

แนวทางมาตรฐาน ใน Ubuntu คือมีการกำหนดนามแฝงและสมบูรณ์ ควบคุมโดยผู้ใช้ไม่ใช่โดยผู้ดูแลระบบ ใช่ นามแฝงเริ่มต้นบางอย่างถูกกำหนดเมื่อสร้างบัญชี แต่คำจำกัดความเหล่านี้จะถูกเพิ่มไปยังความเป็นส่วนตัว .bashrc ไฟล์และสามารถลบ/เปลี่ยนแปลงได้หากผู้ใช้ต้องการ

คุณสามารถปรับแต่งนามแฝงเริ่มต้นที่มาพร้อมกับบัญชีใหม่ได้โดยการแก้ไข /etc/skel/.bashrc. ไฟล์นั้นเป็นค่าเริ่มต้น .bashrc ไฟล์สำหรับบัญชีใหม่

ควบคุมการกำหนดนามแฝงในฐานะผู้ดูแลระบบ

หากคุณต้องการควบคุมในฐานะผู้ดูแลระบบของนามแฝงของผู้ใช้ปัจจุบัน คุณสามารถกำหนดสิ่งเหล่านี้ในสคริปต์ที่คุณเพิ่มเข้าไป /etc/profile.d. สคริปต์ทั้งหมดที่มีอยู่ดำเนินการโดย /etc/profile,ทั้งระบบ ข้อมูลส่วนตัว สคริปต์ดำเนินการก่อนส่วนตัวของผู้ใช้ ~/.profile สคริปต์สำหรับการล็อกออนเชลล์ ชอบสิ่งนี้มากกว่าการแก้ไขโดยตรง /etc/profileเนื่องจากไฟล์หลังถูกควบคุมโดยตัวจัดการแพ็คเกจของคุณและอาจถูกเขียนทับในระหว่างการอัพเดทในอนาคต

โปรดทราบว่าผู้ใช้บางคนอาจไม่ชอบคุณหากคุณใช้การควบคุมดังกล่าว โปรดทราบว่าผู้ใช้สามารถลบล้างนามแฝงที่คุณกำหนดให้กับพวกเขาได้ นามแฝง คำสั่งในส่วนตัวของพวกเขา .bashrc ไฟล์.

Score:0
ธง ca

ฉันคิดว่าคุณเพียงแค่ใส่ไฟล์ alias.sh ของคุณใน /etc/profile.d

ในกรณีของฉัน /etc/profile.d/99-alias.sh มันมี:

#เพิ่มโดยJP
นามแฝง du='du -h'
นามแฝง dfh='df -h | grep -v สแนป'

ใช้งานได้กับทุกการเข้าสู่ระบบ

hariraj avatar
cn flag
ฉันได้เพิ่มตามที่คุณแนะนำ แต่ก็ยังใช้งานไม่ได้ "แมว /etc/profile.d/alias.sh นามแฝง extend_shutdown_15='bash extend_shutdown.sh 15;bash /bin/max_timetrack.sh' นามแฝง extend_shutdown_30='bash extend_shutdown.sh 30;bash /bin/max_timetrack.sh' นามแฝง extend_shutdown_60='bash extend_shutdown.sh 60;bash /bin/max_timetrack.sh'
hariraj avatar
cn flag
การเปลี่ยนแปลงโดยอัตโนมัติจะไม่ได้รับผลกระทบ แต่เมื่อฉันดำเนินการด้วยตนเองเช่นการเปลี่ยนแปลง "bash /etc/profile.d/alias.sh" จะมีผล แต่ฉันไม่ต้องการดำเนินการด้วยตนเอง ...
jpbrain avatar
ca flag
โปรดบอกฉันว่าคุณกำลังพยายามทำอะไรให้สำเร็จ นอกจากนี้ คำสั่ง "นามแฝง" จะแสดงอะไรหลังจากที่คุณใส่ไฟล์ใน /etc/profile.d
hariraj avatar
cn flag
ฉันได้เพิ่มไฟล์ "alias.sh" ลงใน "/etc/profile.d/" ดังนั้นฉันต้องการสร้างนามแฝงสำหรับผู้ใช้ทั้งหมดในระบบ linux โดยอัตโนมัติ ตอนนี้เมื่อฉันทำคำสั่ง "นามแฝง" ในผู้ใช้รูท - ไม่มีการสร้างนามแฝงที่ฉันพูดถึงในไฟล์ alias.sh
jpbrain avatar
ca flag
สวัสดี คุณเข้าสู่ระบบผู้ใช้รูทได้อย่างไร คุณใช้คำสั่งใดในการทดสอบผู้ใช้รูท
Score:0
ธง cn
raj

ประการแรก นามแฝงคือ ชั่วคราว และถูกต้อง สำหรับเชลล์ที่กำลังทำงานอยู่เท่านั้น. เมื่อคุณเรียกใช้ alias.sh ไฟล์มันดำเนินการ ในเปลือกของมันเองไม่ได้อยู่ในเปลือกที่ถูกเรียกใช้ ดังนั้นแหล่งที่มาของสคริปต์ ~/.bash_aliases (ทำไมไฟล์นี้ถึงไม่ใช่ /etc/.bash_aliases? ฉันคิดว่าคุณต้องการอย่างหลัง?) แต่เมื่อสคริปต์จบลง เชลล์ก็จะออกและนามแฝงใดก็ตามที่สามารถกำหนดได้ใน ~/.bash_aliases ไฟล์ พวกเขาหายไป

นั่นคือความแตกต่างระหว่าง วิ่ง เชลล์สคริปต์และ การจัดหา มัน. หากคุณเรียกใช้เชลล์สคริปต์ เชลล์จะทำงานในเชลล์ของตัวเอง ดังนั้นการเปลี่ยนแปลงใดๆ ในสภาพแวดล้อม นามแฝง และสิ่งที่คล้ายกันที่ทำในสคริปต์จะไม่ส่งผลกระทบต่อเชลล์พาเรนต์ (เชลล์ที่สคริปต์เริ่มต้น) แต่เมื่อคุณใช้สคริปต์เดียวกัน สคริปต์จะทำงาน ในเชลล์ปัจจุบันดังนั้นการเปลี่ยนแปลงทั้งหมดจะคงอยู่หลังจากสคริปต์เสร็จสิ้น (แน่นอนว่าการเปลี่ยนแปลงทั้งหมดจะอยู่ตราบเท่าที่เชลล์ยังคงอยู่ - หากคุณออกจากเชลล์ การเปลี่ยนแปลงทั้งหมดจะหายไปอีกครั้ง)

โดยคำนึงถึงสิ่งนี้หากคุณต้องการนามแฝงจากไฟล์ /etc/.bash_aliases ที่จะสามารถใช้ได้ ผู้ใช้คนใด ใน เชลล์ใด ๆ ที่พวกเขาเรียกใช้ไฟล์จะต้องมาจาก /etc/bash.bashrc ไฟล์. ไฟล์นี้ถูกเรียกใช้งานเมื่อใดก็ตามที่เชลล์ใดๆ (จากผู้ใช้ใดๆ) เริ่มทำงาน และโดยทั่วไปจะใช้เพื่อตั้งค่าสภาพแวดล้อมเริ่มต้น

ดังนั้น หากคุณเพิ่มบรรทัดต่อไปนี้ต่อท้าย /etc/bash.bashrc (แน่นอน คุณต้องทำในฐานะ root เพื่อให้สามารถแก้ไขไฟล์ได้):

แหล่งที่มา /etc/.bash_aliases

คุณควรได้รับสิ่งที่คุณต้องการ

เดอะ alias.sh ไฟล์ไม่จำเป็นเลย

hariraj avatar
cn flag
azureuser@puppetclient-ubuntu:~$ cat /etc/bash.bashrc source /etc/.bash_aliases automatically changes are not effecting in system but when I executed manually changes are effected "source /etc/bash.bashrc " but I don't want execute manually. Please help me..
raj avatar
cn flag
raj
@hariraj `/etc/bash.bashrc` should be executed automatically on shell startup, I don't know why it isn't. Probably your system is configured to execute some other file instead. You must find that file and insert `source /etc/.bash_aliases` into it. If you have a nonstandard system configuration, nobody can know which file is actually executing but you.

โพสต์คำตอบ

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