คุณจะเปลี่ยนเปลือกเริ่มต้นสำหรับผู้ใช้ทุกคนเพื่อทุบตีได้อย่างไร


38

ฉันต้องการให้ผู้ใช้ใหม่ทุกคนจากนี้ไปมีทุบตีเป็นเปลือกของพวกเขาโดยค่าเริ่มต้น

ฉันรู้ว่าในการเปลี่ยนเชลล์ของคุณเองเป็นทุบตีคุณจะใช้คำสั่ง "chsh -s / bin / bash" แต่ฉันจะตั้งค่าเชลล์ของผู้ใช้ในอนาคตทั้งหมดให้เป็นทุบตีโดยอัตโนมัติได้อย่างไร

คำตอบ:


63

adduser

ไฟล์เป็นค่าเริ่มต้นadduser /etc/adduser.confเชลล์เริ่มต้นที่กำหนดโดยDSHELLตัวแปรนั้นเป็น/bin/bashค่าเริ่มต้น

useradd

เป็นไปได้ว่าคุณไม่ต้องการสิ่งนี้เพราะ useradd เป็นยูทิลิตี้ระดับต่ำมากและแทบจะไม่เคยใช้โดยตรง

หากคุณใช้ useradd ให้แก้ไข/etc/default/useraddไฟล์ Skeleton (อย่าลืมทำการสำรองข้อมูล)

ตั้งค่าSHELLตัวแปรแทน/bin/bash/bin/sh

ตอนนี้ทุกครั้งที่คุณใช้useraddเพิ่มผู้ใช้ใหม่bashจะเป็นเชลล์เริ่มต้นโดยอัตโนมัติ

มีผู้ใช้ที่มีอยู่แล้ว

หากคุณต้องการเปลี่ยนเปลือกของผู้ใช้ที่มีอยู่แล้วคุณต้องแก้ไข/etc/passwdไฟล์ (โปรดตรวจสอบให้แน่ใจว่าได้สำรองข้อมูลไว้)

นี่คือคำอธิบายของคอลัมน์

  1. ชื่อเข้าสู่ระบบ
  2. รหัสผ่านที่เข้ารหัสเป็นตัวเลือก
  3. ID ผู้ใช้ที่เป็นตัวเลข
  4. ID กลุ่มตัวเลข
  5. ชื่อผู้ใช้หรือช่องแสดงความคิดเห็น
  6. ไดเรกทอรีบ้านของผู้ใช้
  7. ตัวเลือกคำสั่งผู้ใช้ตัวเลือก

ตามลำดับนั้นคั่นด้วยเครื่องหมายทวิภาค (:) เช่นนี้

root:x:0:0:root:/root:/bin/bash

man 5 passwdสำหรับข้อมูลเพิ่มเติมเกี่ยวกับแฟ้มที่ปรึกษาหน้าคน


4
sudo -u $USER chsh -s $SHELLผมคิดว่าเป็นวิธีที่ปลอดภัยที่จะเปลี่ยนเปลือกของผู้ใช้อื่นจะเป็นสิ่งที่ชอบ
Jack O'Connor

1
@ JackO'Connor คุณควรโพสต์สิ่งนั้นเป็นคำตอบเช่นกัน
Octavian Damiean

ดูเหมือนว่าจะใช้งานไม่ได้ใน Ubuntu 16.04 ไม่มีใครรู้ว่าการแก้ไข
Harshdeep

26

วิธีที่จะเปลี่ยนค่าเริ่มต้นนั้นขึ้นอยู่กับวิธีที่คุณสร้างผู้ใช้ ฉันพยายามสร้างผู้ใช้ใหม่ผ่านการตั้งค่า Gnome ของฉันในตอนนี้และดูเหมือนว่าจะตาม/etc/default/useraddมาดังนั้นอาจเป็นทางออกที่ดีที่สุดของคุณ สำหรับผู้ใช้ที่มีอยู่วิธีที่ปลอดภัยที่สุดในการเปลี่ยนเชลล์ล็อกอินของคนอื่นคือด้วยusermod :

usermod -s /bin/bash $USERNAME

หากคุณไม่รากคุณจะต้องsudoว่า อีกทางเลือกหนึ่งคือการsudoเป็นผู้ใช้ที่คุณต้องการแก้ไขและเพียงแค่เรียกใช้chshเช่นนี้:

sudo -u $USERNAME chsh -s /bin/bash

เป็นการดีที่สุดที่จะหลีกเลี่ยงการแก้ไข/etc/passwdด้วยมือเพราะความผิดพลาดในนั้นอาจทำลายทุกสิ่ง


1

หากคุณต้องการให้ผู้ใช้ทั้งหมดบนเซิร์ฟเวอร์ทุบตี (ซึ่งเป็นคำถามที่ถามจริง) คุณสามารถเรียกใช้คำสั่ง:

sudo dpkg-reconfigure dash

จากนั้นเลือกไม่รีบ ตามที่อธิบายไว้ในคำตอบนี้

ฉันจะทำให้ / bin / sh ชี้ไปที่ / bin / bash ได้อย่างไร

ไม่เพียง แต่จะทำให้ bash เป็นเชลล์เริ่มต้นเท่านั้น

หวังว่านี่จะช่วยได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.