Centos บัญชีผู้ใช้ nologin แต่เป็นไปได้ที่จะเข้าบัญชี


12

ฉันใหม่กับ CentOS (ใช้งาน CentOS 6) ฉันเคยมีประสบการณ์กับ OpenSuse มาก่อน

ฉันกำลังพยายามตั้งค่าบัญชีสำหรับผู้ใช้ ฉันไม่ต้องการให้บัญชีสามารถเข้าสู่ระบบผ่านทาง ssh หรือผ่านหน้าจอเข้าสู่ระบบ แต่ฉันยังต้องการที่จะเข้าสู่ระบบของผู้ใช้โดยใช้คำสั่ง su สิ่งนี้ทำให้ฉันสามารถเรียกใช้แอปพลิเคชันบางอย่างในฐานะผู้ใช้ที่มีการ จำกัด การเข้าถึง ผู้ใช้ไม่ใช่ผู้ใช้ขั้นสูงดังนั้นจึงไม่สามารถมีผลกับแอปพลิเคชันของผู้ใช้รายอื่น

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก. โดยทั่วไปฉันต้องการใช้สิ่งนี้เพื่อเรียกใช้เซิร์ฟเวอร์ Glassfish เป็นต้น


ดังนั้นคุณแก้ปัญหาด้วย OpenSuSE ได้อย่างไร
นิลส์

คำตอบ:


15

บน centos คุณจะต้องตั้งค่าโดยผู้ใช้ที่ไม่มีเชลล์โดยใช้ / sbin / nologin:

[root@localhost ~]# grep named /etc/passwd
named:x:25:25:Named:/var/named:/sbin/nologin
[root@localhost ~]# 

หากคุณต้องการที่จะกลายเป็นว่าใช้พารามิเตอร์ -s และใส่อาร์กิวเมนต์เป็นเปลือกที่คุณเลือกเช่น:

[root@localhost ~]# su - named -s /bin/bash
-bash-4.1$ 

โปรดทราบว่าถ้าคุณใช้ bash มันจะอ่านการตั้งค่าจาก / etc / profile ก่อนและจะเริ่มต้นการตั้งค่าเหล่านั้นหากไม่มี. bash_profile ที่มีอยู่, .bash_login หรือ.profileในโฮมไดเรกทอรีผู้ใช้ แน่นอนถ้าคุณต้องการใช้การตั้งค่าสภาพแวดล้อมที่มีอยู่ในรูทคุณสามารถลบเส้นประออกได้:

ทางออก [

root@localhost ~]# su - named -s /bin/bash
-bash-4.1$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
-bash-4.1$ exit
logout
[root@localhost ~]# su named -s /bin/bash
bash-4.1$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
bash-4.1$ 

0

วิธีหนึ่งที่พบบ่อยคือการตั้งค่าเชลล์ของผู้ใช้เป็น /bin/false


ฉันได้ลองตั้งค่าเป็น / bin / false แต่ดูเหมือนว่า centOS 6 ไม่มีตัวเลือกนี้ มันมีตัวเลือก bin / nologin แต่สิ่งนี้ไม่อนุญาตให้ฉันเข้าไปในบัญชีผู้ใช้

ลองsu -m username
unbeli

หากฉันตั้งค่าผู้ใช้เป็น / sbin / nologin และฉันพยายาม su ด้วยตัวเลือก -m มันจะบอกฉันว่าบัญชีไม่สามารถใช้งานได้ในปัจจุบัน ฉันได้ลองเพิ่ม / bin / false ไปยังไฟล์ shells เมื่อฉันทำเช่นนี้คำสั่ง su ก็ไม่ได้เปลี่ยนไปใช้ผู้ใช้

ตกลงอย่าเพิ่ม / bin / false ลงในไฟล์ shells ตั้งค่าเชลล์ของผู้ใช้เป็น / bin / false ใช้ su -m
unbeli

ฉันลบมันออกจากไฟล์ / etc / shells และตั้งเชลล์ของผู้ใช้เป็น / bin / false โดยใช้คำสั่ง usermod ถ้าตอนนี้ฉันพยายามที่จะ su -m ชื่อผู้ใช้มันบอกฉันว่าฉันไม่ได้รับอนุญาตให้. bashrc ฉันเข้าสู่ระบบในฐานะ root ถ้าฉันทำตอนนี้: su - ชื่อผู้ใช้มันทำให้ฉันไม่มีข้อผิดพลาด แต่ฉันก็ยังเห็นว่าเป็นรูต นี่เป็นเรื่องปกติใน Centos หรือไม่

0

ปกติแล้วฉันจะใส่ "x" ลงในช่องรหัสผ่านที่เข้ารหัสของผู้ใช้ "ทางเทคนิค" ดังกล่าว ดังนั้นผู้ใช้จะไม่มีรหัสผ่านที่เป็นไปได้ หากในขณะนี้มีรหัสสาธารณะใน authorized_keys ของผู้ใช้นั้นบัญชีนั้นควรจะค่อนข้างปลอดภัย

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