解決Deepin無法在root用戶啟動Google Chrome瀏覽器的問題,步驟如下。
1.找到Chrome的路徑
which google-chrome
假如路徑為:/usr/bin/google-chrome
2.編輯google-chrome文件
打開google-chrome,修改文件末尾命令。
vim /usr/bin/google-chrome
在 exec -a "$0" "$HERE/chrome" "$@"
末尾增加 --user-data-dir --no-sandbox
按Esc,:wq,退出保存,現(xiàn)在即可打開Chrome瀏覽器了!
ps:下面看下用非root用戶啟動Apache|Nginx的方法
眾所周知,apache的80端口為系統(tǒng)保留端口,如果通過其他非root用戶啟動,會報錯如下:
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
因為普通用戶只能用1024以上的端口,1024以內(nèi)的端口只能由root用戶使用。
但是為了避免每次啟動都通過root用戶,可以通過set UID的方式來解決此問題。
一次性進行如下操作即可完成。
在root用戶環(huán)境中做如下操作
cd ……/apache/bin
chown root httpd
chmod u+s httpd
再 su - USERNAME
到普通用戶下,通過
……/apache/bin/apachectl start即可
為何不chmod u+s apachectl呢?
因為set UID這種方式只針對二進制文件有效,而tail一下apachectl發(fā)現(xiàn):
apachectl是一個腳本文件,仔細(xì)查閱發(fā)現(xiàn)有如下一句
HTTPD='/home/……/apache/bin/httpd'
得出結(jié)論:apachectl腳本是通過啟動httpd文件來啟動整個httpd服務(wù)。
再次cat httpd,出現(xiàn)各種不可讀亂碼,ctrl+c結(jié)束輸出之后,斷定httpd為二進制文件。
最后chmod u+s httpd即可,當(dāng)然得保證httpd的所屬者為root用戶,如果不是,執(zhí)行:
chown root httpd即可。
同樣,nginx啟動也如此,用root用戶進入....nginx/sbin
然后chown root nginx
chmod u+s nginx
然后通過普通用戶就可以啟動了。
再同樣,tomcat也如此。
當(dāng)然,修改默認(rèn)端口到大于1024也是可以的。
總結(jié)
以上所述是小編給大家介紹的Linux 解決Deepin無法在root用戶啟動Google Chrome瀏覽器的問題,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!