วิธีการเรียกใช้ google chrome เป็น root ใน linux


10

เมื่อฉันต้องการเรียกใช้ google chrome เป็น root ข้อความแสดงข้อผิดพลาดที่มีชื่อนี้จะปรากฏขึ้น:

ไม่สามารถเรียกใช้ Google chrome ในฐานะ root

และเนื้อหาของข้อความคือ:

ในการรันในฐานะรูทคุณต้องระบุ --user-data-dir ทางเลือกสำหรับการจัดเก็บข้อมูลโปรไฟล์

ใครช่วยฉันได้บ้าง


1
แม้ว่ามันจะไม่เป็นการดีที่จะเรียกใช้แอปพลิเคชันนี้ในฐานะ root แต่ฉันจะอธิบายวิธี
M0εiπ

คำตอบ:


7

หากต้องการเรียกใช้ google chrome ในฐานะรูทให้ทำตามขั้นตอนเหล่านี้:

  1. เปิดgoogle-chromeในตัวแก้ไขรายการโปรดของคุณ (แทนที่$EDITORด้วยรายการโปรดของคุณ):

    $EDITOR $(which google-chrome)
    
  2. เพิ่ม--user-data-dirที่ส่วนท้ายสุดของไฟล์

    ไฟล์ของฉันมีลักษณะเช่นนี้:

    exec -a "$0" "$HERE/chrome"  "$PROFILE_DIRECTORY_FLAG" \   "$@"
    --user-data-dir
    
  3. บันทึกและปิดตัวแก้ไข

คุณทำเสร็จแล้ว สนุกกับมัน :)


หากคุณต้องการดูวิดีโอสอนคุณสามารถตรวจสอบโพสต์บล็อกของฉัน:

วิธีเรียกใช้ google chrome เป็นรูทใน Linux - MoeinFatehi


3
เพื่อให้ชัดเจนคำตอบที่ถูกต้องที่นี่คือ“ คุณไม่” การเรียกใช้แอพกราฟิกในฐานะที่เป็นรูทไม่ใช่ความคิดที่ดี
HalosGhost

1
ฉันได้ยินมาว่าคุณไม่ควรรันแอปพลิเคชั่นกราฟิกในฐานะที่เป็นรูทและฉันตัดสินใจว่าจะทำเพียงเพื่อค้นหาว่าทำไมไม่ ฉันวางแผนที่จะทำจนกว่าฉันจะพบ นี่คือตอนนี้ 14 ปีที่ผ่านมา
Thorsten Staerk

2
คุณควรอ่านหลักการของสิทธิ์น้อยที่สุด
HalosGhost

2
ท้ายที่สุดฉันก็ต้องใช้--no-sandboxเช่นกัน yolo
Bryce Guinta

4

ตอนนี้คุณไม่สามารถเรียกใช้ google-chrome ในฐานะผู้ใช้รูทบนเวอร์ชันที่อัปเดตได้เมื่อต้องการเรียกใช้ Google Chrome ในฐานะผู้ใช้มาตรฐาน (ในขณะที่ลงชื่อเข้าใช้ในฐานะรูท)

เปิด terminal และประเภท:

adduser -u chromeuser หรือ useradd -m chromeuser

วิธีเรียกใช้คำสั่ง google chrome ใช้:

gksu -u chromeuser google-chrome หรือ sux chromeuser google-chrome

หากคุณไม่ต้องการเรียกใช้จาก Terminal ให้เพิ่ม chrome ในทาสก์บาร์จากนั้นคลิกขวาที่มันเลือกคุณสมบัติและเพิ่มคำสั่งด้านบนในพารามิเตอร์ command


gksu -u gv google-chrome-stableนอกจากนี้ยังใช้บัญชีผู้ใช้ที่มีอยู่ทำงานให้ฉัน: แม้ว่าฉันจะได้รับข้อผิดพลาดบางอย่างใน terminal แต่มันใช้งานได้
George Vasiliou

3

สำหรับผู้ที่อาจยังคง Google ในเดือนธันวาคม 2559 - Google Chrome เวอร์ชัน 54.0.2840.90 64 บิตภายใต้ XFCE และ Debian 8.5:

กรณีที่ 1: Chrome ไม่เริ่มทำงานเลย
ในการตั้งค่าของฉันเพียงแค่ทำงานใน terminal google-chrome-stableฉันได้รับข้อผิดพลาดใน terminal illegal instructionทันที ไม่มีเฟรมไม่มีหน้าจอว่างเปล่าไม่มีหน้าต่างสีดำ เพียงแค่ข้อผิดพลาดคอนโซลหยาบ ข้อผิดพลาดนี้หายไปโดยใช้--no-sandboxตัวเลือกบรรทัดคำสั่ง

กรณีที่ 2: Chrome ยังคงปฏิเสธที่จะเปิดแม้จะมีตัวเลือก - ไม่ - กล่องทราย
นั่นไม่ใช่กรณีของฉันตั้งแต่ - ไม่มีกล่อง Sandbox ก็เพียงพอ แต่ถ้าคุณประสบพฤติกรรมดังกล่าวคุณสามารถลองปิดการใช้งานทุกอย่างเมื่อโทรโครเมี่ยมเช่น:

google-chrome-stable --disable-gpu --disable-extensions --disable-d3d11 --disable-local-storage --disable-notifications --disable-offne-pages --disable-plugin-power-saver --disable-plugins-discovery --disable-sync --disable-translate --disable-webgl --no-experiments --no-sandbox

จากนั้นคุณสามารถเปิดใช้งานตัวเลือกทีละขั้นตอนเพื่อระบุว่าตัวแบ่งใด
PS: ธงทั้งหมด CLI / args สามารถพบได้ที่นี่

กรณีที่ 3: ข้อความPlease start Google Chrome as a normal user.To run as root you must specify an alternate --user-data-dir for storage of profile informationปรากฏขึ้น

โซลูชันที่เหมาะกับฉัน: ไปที่/opt/google/chromeและเปิดไฟล์google-chromeซึ่งจริงๆแล้วเป็นสคริปต์ทุบตี

ในตอนท้ายของสคริปต์พบส่วน

if [[ -n "$CHROME_USER_DATA_DIR" ]]; then
  # Note: exec -a below is a bashism.
  exec -a "$0" "$HERE/chrome"  \
    --user-data-dir="$CHROME_USER_DATA_DIR" "$@"
else
  exec -a "$0" "$HERE/chrome"  "$@"
fi

และเปลี่ยนส่วนอื่นเช่นนี้:

else
  #exec -a "$0" "$HERE/chrome"  "$@"
  exec -a "$0" "$HERE/chrome" "$@" --user-data-dir="$HOME"
fi

google-chrome-stable --no-sandboxบันทึกและเรียกใช้
ฉันตื่นแล้วท่อง

สำหรับวิธีการที่ซับซ้อนยิ่งขึ้นฉันใช้การตรวจสอบผู้ใช้แบบส่วนตัวเพื่อหลีกเลี่ยงการรบกวนโครเมี่ยมที่อาจเกิดขึ้นกับผู้ใช้ปกติ:

else
    if [ "$USER" = "root" ]  || [ "$LOGNAME" = "root" ];then 
        exec -a "$0" "$HERE/chrome" "$@" --user-data-dir="$HOME"
    else
        exec -a "$0" "$HERE/chrome"  "$@"
    fi

วิธีแก้ปัญหาอื่น:
คุณไม่สามารถแก้ไขไฟล์ google-chrome ตามที่ระบุไว้ด้านบนและคุณสามารถติดตามการแนะนำ @tzafar อีกครั้งสำหรับการสร้างผู้ใช้ใหม่หรือเพื่อเปิดใช้งาน chrome โดยใช้บัญชีผู้ใช้ปกติที่มีอยู่: gksu -u user google-chrome-stable(ใช้งานได้ Terminal)


1
ทำงานอย่างสมบูรณ์แบบ
Ewall Tester

2

เรียกใช้คำสั่ง folloing และเปิด google-chrome มันจะทำงาน

sed -i -e 's@Exec=/usr/bin/google-chrome-stable %U@Exec=/usr/bin/google-chrome-stable %U --no-sandbox@g' /usr/share/applications/google-chrome.desktop 

0

หากต้องการเรียกใช้ google chrome เป็นรูทให้เพิ่มพารามิเตอร์นี้ "- no-sandbox"

ป้อนคำอธิบายรูปภาพที่นี่

มันจะได้ผลสำหรับฉัน


อะไรคือผลที่เกิดขึ้นจริงจากการทำเช่นนี้?
Kusalananda

เหมือนกับผลที่ตามมาจากการใช้บัญชีรูท
SAID

-1

ฉันได้ลองวิธีแก้ปัญหาทั้งหมดที่มีให้ดังนั้นโดยความเห็นของฉันอันนี้ดีที่สุด

sudo chmod -R 777 /home/user_name/.config/google-chrome

เพียงแค่เรียกใช้คำสั่งคุณไม่จำเป็นต้องทำอะไร


สวัสดี Abhinav คุณช่วยอธิบายได้ไหมว่าวิธีนี้ตอบคำถามของการเรียกใช้ Chrome ในฐานะรูท
roaima

-2

นี่เป็นช็อตที่ยาวนาน แต่ลองนี่สิ

sudo chmod -R 777 /home/user_name/.config/google-chrome

ไม่จำเป็นต้องกำหนดค่า sandbox อีกต่อไป


ทุกคนช่วยให้การกำหนดค่า Chrome อ่านได้อย่างไร
Kusalananda

ปัญหาจะแตกต่างกันไปทุกครั้งถ้า 'google-chrome - no-sandbox' ไม่ทำงานปกติต้องใช้ sudo เพราะไม่ได้รับอนุญาตเพียงพอสำหรับโฟลเดอร์ /home/usr_name/.config/google-chrome หรืออื่น ๆ ไดเรกทอรี
Piyush Pattaiya

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