ลืม sudo su
ไม่มีประโยชน์ที่จะใช้ไม่เป็นมันเป็นนิสัยสมัยจากเมื่อมีคนถูกนำมาใช้กับการใช้sudo su
su
ผู้คนเริ่มตรึงsudo
ไว้ข้างหน้าเมื่อ Linux distros หยุดตั้งรหัสผ่านรูทและทำsudo
วิธีเดียวในการเข้าถึงบัญชีรูท sudo su
แทนที่จะเปลี่ยนนิสัยของพวกเขาพวกเขาเพียงแค่ใช้ (ฉันเป็นหนึ่งในนั้นจนกระทั่งเมื่อเร็ว ๆ นี้เมื่อใช้กล่องที่มีการกำหนดค่าsudoers
บังคับให้ฉันเปลี่ยนนิสัยของฉัน)
ใช้ sudo -u
สำหรับเปลือกเข้าสู่ระบบที่เป็นที่นิยมsudo -u postgres -i
sudo su - postgres
ไม่ต้องการให้ผู้ใช้มีสิทธิ์เข้าถึงรู/etc/sudoers
ทพวกเขาต้องการเพียงสิทธิ์ในการเป็นผู้ใช้postgres
เท่านั้น นอกจากนี้ยังช่วยให้คุณบังคับใช้การควบคุมการเข้าถึงได้ดีขึ้น
สำหรับการดำเนินการคำสั่ง
sudo -u postgres psql -c "SELECT 1"
ดีกว่าทางเลือก:
sudo su - postgres -c "psql -c \"SELECT 1\""
ในที่ที่คุณไม่จำเป็นต้องใส่เครื่องหมายอัญประกาศคู่และตัวบ่งชี้เชลล์อื่น ๆ รวมถึงข้อดีด้านความปลอดภัยอื่น ๆ ที่ไม่จำเป็นต้องรูท คุณอาจเผลอเขียน:
sudo su - postgres -c psql -c "SELECT 1"
บางครั้งซึ่งทำงานไม่ถูกต้อง
ในที่สุดก็เป็นวิธีที่ง่ายต่อตัวแปรสภาพแวดล้อมชุดผ่านทางsudo
เช่น
sudo PATH=/usr/pgsql-9.3/bin:$PATH -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/testcluster
su
กว่าผ่านทาง (ที่นี่การPATH
ตั้งค่าจำเป็นต้องมีเพื่อให้initdb
สามารถค้นหาpostgres
ปฏิบัติการที่ถูกต้อง)
ดังนั้น. ลืมsu
คำสั่งที่มีอยู่ คุณไม่ต้องการมันอีกต่อไป เพื่อแยกนิสัยให้ใช้นามแฝงกับสิ่งที่จะพิมพ์ข้อผิดพลาด (สคริปต์การตั้งค่าแพคเกจเริ่มต้นและสคริปต์บางตัวยังคงใช้งานอยู่su
ดังนั้นคุณจึงไม่สามารถลบได้)
ดูสิ่งนี้ด้วย: