ผู้ใช้นี้ไม่สามารถใช้งานได้ - แต่อนุญาตให้เรียกใช้สคริปต์โดยผู้ใช้รายนี้


22

ฉันสร้างผู้ใช้พิเศษใน / etc / passwd ด้วย:

secure:x:2000:2000:secure:/bin:/usr/sbin/nologin

ฉันไม่ต้องการอนุญาตการเข้าสู่ระบบของผู้ใช้รายนี้ (ผ่านทางคอนโซล, ssh, ftp, ไม่ว่าทางใด)

เขาเป็นเพียงการเรียกใช้สคริปต์หนึ่งผ่าน:

sudo su secure -c '/home/someuser/secure.script'

This user is currently not available.แต่มันก็ทำให้ผม วิธีการตั้งค่าเพื่อให้สามารถเรียกใช้สคริปต์ด้วยวิธีนี้ แต่ป้องกันการเข้าสู่ระบบใด ๆ (console, ssh, ftp, ... ) ของผู้ใช้รายนี้เข้าสู่ระบบ?


ฉันได้พบว่าเมื่อฉันพิมพ์ในบรรทัดคำสั่งตอบสนองคอมพิวเตอร์ด้วย/usr/sbin/nologinThis account is currently not available.


เกี่ยวกับsudo suดูunix.stackexchange.com/questions/218169/…
Kusalananda

คำตอบ:


27

sudoนี้เป็นกรณีการใช้งานทั่วไปสำหรับ

คุณกำลังผสมsudoซึ่งอนุญาตให้เรียกใช้คำสั่งในฐานะผู้ใช้รายอื่นและสามารถกำหนดค่าได้อย่างสูง (คุณสามารถเลือกได้ว่าจะให้ผู้ใช้รายใดเรียกใช้คำสั่งใดเป็นผู้ใช้รายใด) และsuเปลี่ยนเป็นผู้ใช้รายอื่นหากคุณทราบรหัสผ่าน suใช้งานเชลล์ที่เขียนทุก/etc/passwdครั้งแม้ว่าsu -cจะถูกใช้ ด้วยเหตุนี้ไม่สามารถใช้ได้กับsu/usr/sbin/nologin

คุณควรใช้

sudo -u secure /home/someuser/secure.script

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

บรรทัดใน sudoers นี้อนุญาตให้ทุกคนในกลุ่มsomegroupเรียกใช้คำสั่งเป็นsecure:

%somegroup    ALL=(secure) /home/someuser/secure.script

สิ่งนี้อนุญาตให้ทุกคนในกลุ่มsomegroupรันคำสั่งsecureโดยไม่ต้องป้อนรหัสผ่าน:

%somegroup    ALL=(secure) NOPASSWD: /home/someuser/secure.script

สิ่งนี้อนุญาตให้user1รันคำสั่งsecureโดยไม่ต้องป้อนรหัสผ่าน:

user1    ALL=(secure) /home/someuser/secure.script

13

ฉันพบว่าปัญหาหลักคือ " /usr/sbin/nologin" ใน/etc/passwd เมื่อฉันต้องการรัน su ในกรณีนี้จะต้องมี-s /bin/bashข้างในดังนั้น:su -s /bin/bash -c '/home/someuser/secure.script' secure


1
ใช่suใช้เชลล์ที่เขียนใน / etc / passwd เป็นค่าเริ่มต้น การใช้suเป็นวิธีการลงชื่อเข้าใช้ในฐานะผู้ใช้จากผู้ใช้รายอื่น nologinพิมพ์ข้อความ "ผู้ใช้นี้ไม่สามารถใช้งานได้ในขณะนี้" และออกจาก sudoไม่ใช้เชลล์เพื่อดำเนินการคำสั่งดังนั้นการใช้sudoโดยไม่ต้องใช้suจะทำงานได้ sudoดูคำตอบของฉันสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ
cg909

2

su/etc/passwdคือการใช้เปลือกที่ระบุไว้ใน

คุณไม่จำเป็นต้องใช้ด้วยsusudo

ดังนั้นไม่ผสมsuกับsudo: sudo -u secure '/home/someuser/secure.script'การใช้งาน


-3

สิ่งนี้อาจไม่เกี่ยวข้องกับคำถาม 100% แต่อาจช่วยคนที่มีข้อความเตือนที่คล้ายกัน This user is currently not available

1) ตรวจสอบกับ บริษัท ที่ให้บริการโฮสต์ของคุณหากคุณได้ให้สิทธิ์การเข้าถึงเชลล์

2) ถ้าคุณใช้ CWP7: ตั้งค่าการเข้าถึงเชลล์เป็น ON ป้อนคำอธิบายรูปภาพที่นี่


2
1) การเข้าถึงเชลล์เป็นอย่างชัดเจนใช้ได้ในฐานะที่พูดถึงคำถามเกี่ยวกับการทำงานsu, sudoและทุกประเภทของสิ่งอื่น ๆ 2) ไม่มีข้อบ่งชี้ในคำถามว่าการติดตั้งที่เป็นปัญหานั้นอยู่หลังแผงควบคุมเว็บของรูปแบบใด ๆ
Philip Kendall

1
ใช่ (นอกเหนือจากเว็บไซต์ Q&A ไม่ใช่ฟอรัม) แต่ส่วนหนึ่งของการเป็นประโยชน์คือการทำให้มั่นใจว่าคำตอบของคุณเกี่ยวข้องกับคำถามจริง ๆ และฉันไม่คิดว่าคำตอบนี้เกี่ยวข้องจริง ๆ : โปสเตอร์มีการเข้าถึงเชลล์อย่างชัดเจนอยู่แล้วดังนั้นจะเปิดใช้งานผ่านแผงควบคุมได้อย่างไร อาจไม่มีอยู่จริง) แก้ปัญหาได้หรือไม่
ฟิลิปเคนดัลล์

3
@ShapCyber: โปรดสังเกตว่าคำถามนี้เกี่ยวข้องกับคนที่สร้างผู้ใช้ใหม่ด้วยตนเองด้วยตนเอง คำตอบใน "เธรด" นี้ (คำถาม) ควรจัดการกับสถานการณ์ในคำถามนั้น หากคุณพบปัญหาที่แตกต่างซึ่งเป็นวิธีแก้ไขปัญหาสิ่งที่ต้องทำคือถามและตอบคำถามใหม่ของคุณเอง
Jeff Schaller

1
สิ่งที่ @JeffSchaller พูดถูกต้อง และผมอยากจะแนะนำให้คุณ ShapCyber จริงๆทำโปรดขอให้ตัวเองและตอบคำถามที่มีปัญหาและวิธีการแก้ปัญหาที่คุณพบ (ในรายละเอียดมากพอที่จะเป็นประโยชน์); จากนั้นเพิ่มความคิดเห็นในคำถามนี้เพื่อเชื่อมโยงกับคุณ นี่คือวิธีที่จะช่วยผู้อ่านในอนาคตได้ดีที่สุดในกรอบการตั้งค่าไซต์นี้ :)
Wildcard

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