ใช้ sudo บนแอปพลิเคชัน GUI


10

เมื่อฉันใช้ kubuntu ฉันสามารถเปิดแอพพลิเคชั่น X ด้วย sudo sudo kateได้เสมอ ตอนนี้ฉันได้เปลี่ยนไปใช้ซุ้มประตูที่ไม่ทำงาน ฉันรู้ว่าฉันได้รับคำสั่งให้ใช้ kdesu เสมอ แต่การตั้งค่าใดที่มีใน kubuntu ที่ให้ฉันใช้ sudo บนแอป X ที่ป้องกันไม่ให้ฉันทำบนซุ้มประตู

แก้ไข :
ขออภัยฉันทำสิ่งที่ตัวเองเกลียดมาก> _ <

นี่คือสิ่งที่ฉันพยายามทำ:

[falmarri @ falmarri-z-arch Downloads] $ sudo kate
รหัสผ่าน: 
ไม่ได้ระบุโปรโตคอล
kate: ไม่สามารถเชื่อมต่อกับ X server: 0.0

โปรดทราบว่านี่เป็นเพียงเทอร์มินัลปกติโดยใช้ konsole ฉันไม่ได้ใช้ SSH

/ etc / sudoers :

## ไฟล์ sudoers
##
## ไฟล์นี้จะต้องแก้ไขด้วยคำสั่ง 'visudo' ในฐานะรูท
## ความล้มเหลวในการใช้ 'visudo' อาจส่งผลให้เกิดข้อผิดพลาดทางไวยากรณ์หรือสิทธิ์ของไฟล์
## ที่ป้องกันไม่ให้ sudo ทำงาน
##
## ดูหน้า man sudoers สำหรับรายละเอียดเกี่ยวกับวิธีเขียนไฟล์ sudoers
##

##
## ข้อกำหนดเฉพาะของชื่อโฮสต์
##
## กลุ่มของเครื่องจักร เหล่านี้อาจรวมถึงชื่อโฮสต์ (เป็นทางเลือกที่มีสัญลักษณ์เสริม)
## ที่อยู่ IP, หมายเลขเครือข่ายหรือกลุ่มเน็ต
# Host_Alias ​​WEBSERVERS = www1, www2, www3

##
## สเปคนามแฝงของผู้ใช้
##
## กลุ่มผู้ใช้ สิ่งเหล่านี้อาจประกอบด้วยชื่อผู้ใช้ uids กลุ่ม Unix
## หรือ netgroups
# User_Alias ​​ADMINS = millert, dowdy, mikef

##
## สเปคนามแฝง Cmnd
##
## กลุ่มคำสั่ง มักใช้ในการจัดกลุ่มคำสั่งที่เกี่ยวข้องเข้าด้วยกัน                                                               
# Cmnd_Alias ​​กระบวนการ = / usr / bin / nice, / bin / kill, / usr / bin / renice, \                                                             
# / usr / bin / pkill, / usr / bin / top                                                                             

##                                                                                                                                   
## ค่าเริ่มต้น                                                                                                            
##                                                                                                                                   
## คุณอาจต้องการเก็บตัวแปรสภาพแวดล้อมต่อไปนี้ไว้บางส่วน                                                                  
## เมื่อเรียกใช้คำสั่งผ่าน sudo                                                                                                   
##                                                                                                                                   
## การตั้งค่าสถานที่                                                                                                                   
# ค่าเริ่มต้น env_keep + = "ภาษา LANGUAGE LINGUAS LC_ * _XKB_CHARSET"                                                                     
##                                                                                                                                   
## เรียกใช้แอปพลิเคชั่น X ผ่าน sudo; HOME ใช้เพื่อค้นหา                                                                         
## .Xauthority ไฟล์ โปรดทราบว่าโปรแกรมอื่นใช้ HOME เพื่อค้นหา                                                                      
## ไฟล์การกำหนดค่าและสิ่งนี้อาจนำไปสู่การเพิ่มสิทธิ์!                                                                    
 ค่าเริ่มต้น env_keep + = "HOME"                                                                                                         
##                                                                                                                                   
## การตั้งค่าพา ธ ของทรัพยากร X11                                                                                                        
 ค่าเริ่มต้น env_keep + = "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"                                                              
##                                                                                                                                   
## การตั้งค่าเส้นทางเดสก์ท็อป                                                                                                             
 ค่าเริ่มต้น env_keep + = "QTDIR KDEDIR"                                                                                                 
##                                                                                                                                   
## อนุญาตให้คำสั่ง sudo-run เพื่อสืบทอดเซสชัน ConsoleKit ของผู้โทร
# ค่าเริ่มต้น env_keep + = "XDG_SESSION_COOKIE"
##
## Uncomment เพื่อเปิดใช้งานวิธีการป้อนข้อมูลพิเศษ ควรระมัดระวังเป็นพิเศษ
## นี่อาจทำให้ผู้ใช้ล้มล้างคำสั่งที่เรียกใช้ผ่าน sudo
 ค่าเริ่มต้น env_keep + = "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment เพื่อเปิดใช้งานการบันทึกผลลัพธ์ของคำสั่งยกเว้น
## sudoreplay และรีบูต ใช้ sudoreplay เพื่อเล่นเซสชันที่บันทึกไว้
# ค่าเริ่มต้น log_output
# ค่าเริ่มต้น! / usr / bin / sudoreplay! log_output
# ค่าเริ่มต้น! / usr / local / bin / sudoreplay! log_output
# ค่าเริ่มต้น! / sbin / รีบูต! log_output

##
## ข้อมูลจำเพาะนามแฝง Runas
##


ค่าเริ่มต้น: falmarri timestamp_timeout = 10

##
## ข้อกำหนดสิทธิ์ของผู้ใช้
##
root ALL = (ALL) ALL

## Uncomment เพื่ออนุญาตให้สมาชิกวงล้อดำเนินการคำสั่งใด ๆ
% wheel ALL = (ALL) ALL

## สิ่งเดียวกันโดยไม่มีรหัสผ่าน
#% wheel ALL = (ALL) NOPASSWD: ALL

## ไม่แสดงความคิดเห็นเพื่ออนุญาตให้สมาชิกของกลุ่ม sudo ดำเนินการคำสั่งใด ๆ
#% sudo ALL = (ALL) ALL

## ไม่แสดงข้อคิดเห็นเพื่ออนุญาตให้ผู้ใช้เรียกใช้ sudo หากพวกเขารู้รหัสผ่าน
## ของผู้ใช้ที่กำลังเรียกใช้คำสั่งเป็น (รูทตามค่าเริ่มต้น)
# ค่าเริ่มต้น targetpw # ขอรหัสผ่านของผู้ใช้เป้าหมาย
# ALL ALL = (ALL) ALL # คำเตือน: ใช้สิ่งนี้ร่วมกับ 'ค่าเริ่มต้น targetpw'

## อ่านไฟล์ดร็อปอินจาก /etc/sudoers.d
## ('#' ที่นี่ไม่ได้ระบุความคิดเห็น)
#includedir /etc/sudoers.d


กำหนด "ไม่ทำงาน" คุณได้รับข้อผิดพลาดอะไร คุณติดตั้งsudoอย่างถูกต้องหรือไม่ คุณสามารถเริ่มใช้แอพที่ไม่ใช่ GUI ได้sudoหรือไม่?
sepp2k

PS คุณสามารถลองใช้แอปที่เรียกว่าsux"su with X" โดยพื้นฐานแล้ว
xenoterracide

คำตอบ:


6

ดูเหมือนว่าการกำหนดค่าโดยเจตนาใน Arch Linux ดูสิ่งนี้สำหรับการสนทนากับลิงก์ไปยังโซลูชัน

ปลายที่ดีที่สุดดูเหมือนว่าจะมีการเพิ่ม "DISPLAY ดิสเพลย์" เพื่อไป "env_keep" /etc/sudoersค่าตั้งต้นในการ

Fedora มี/etc/sudoersรายการต่อไปนี้และนี่จะทำให้ sudo somexapp ประสบความสำเร็จ

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

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

ฉันเพิ่มการตั้งค่า Fedora ลงในคำตอบของฉัน ฉันคิดว่าคุณยังคิดถึง DISPLAY และ XAUTHORITY ในไฟล์ที่โพสต์
fschmitt

ที่จริงดูเหมือนว่าจะทำงานตอนนี้ ฉันไม่แน่ใจว่าฉันลืมที่จะบันทึกหรืออะไรบางอย่าง ขอบคุณ =]
Falmarri

9

โปรแกรมกราฟิกไม่ควรรันด้วย sudo วิธีที่ถูกต้องคือใช้kdesudoใน KDE สำหรับเรียกใช้โปรแกรม GUI ในฐานะรูทหรือgksuใน GNOME

การรันโปรแกรมกราฟิกในฐานะรูทนั้นมีโอกาสที่จะก่อให้เกิดปัญหาร้ายแรงนั่นคือสาเหตุที่ทำให้เครื่องห่อหุ้ม อ่านหัวข้อการส่งจดหมาย Arch นี้สำหรับปัญหาร้ายแรงที่คุณอาจประสบกับการพยายามหลอกsudoให้เปิดแอป GUI


ฉันสับสนในสิ่งที่ด้ายพูด มันเป็นเพียงปัญหาเมื่อใช้ X เป็นราก? ฉันไม่เคยมีปัญหาในการใช้งาน sudo จากเซสชัน X
Falmarri

3
การเรียกใช้แอป GUI ในฐานะรูทด้วย sudo สามารถเปลี่ยนไฟล์ให้เป็นเจ้าของโดยรูท ~/.ICEauthorityหนึ่งไฟล์ที่น่ารังเกียจโดยเฉพาะอย่างยิ่งนี้สามารถเกิดขึ้นกับมี สิ่งนี้สามารถป้องกันคุณจากการเข้าสู่ระบบ Google "ICEauthority" และคุณจะเห็นว่าผลลัพธ์นั้นเต็มไปด้วยคนที่ไม่สามารถเข้าสู่ระบบของพวกเขาได้เพราะไฟล์นั้นเป็นของ root ฉันเพิ่งเลือกอันนั้นเพราะมันอยู่บน Arch, ระบบปฏิบัติการของผู้ใช้
andrewsomething
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.