發表文章

目前顯示的是有「privilege」標籤的文章

docker 容器之使用者 uid 和 gid

 docker 容器的 uid 和 gid 常會讓使用者在 host 端取用 volume 時綁手綁腳,雖然有人說這其中還有安全性的考量,但是使用 sudo 好像也沒有比較好,為了可以直接存取 volume 的檔案,居然花了好久好久,久到夫人說:怎麼最近又開始抱著電腦了?……………………………………其實是電腦沒有放人  工作環境:     Debian          mariadb 10.11 docker(compose) 狀況:裝好 mariadb 之後,volume 的權限是 999.999 ,很煩,得 sudo 才能在本機作業,雖然也沒什麼不行,但就不愛,然後…………搞死自已  2個解法,因為不是 product 環境,先試到這兒,期望有人講白話,把這題解了,免得折騰半天 法1:雖然不能自動化,但是直覺…  先裝起來  dcshell container_name (docker exec -it $1 /bin/bash -l)  usermod -u your_uid_in_host app_user;  groupmod -g your_gid_in_host app_group;  exit  chown -R user_user:user_group docker_volume  然後參照之前的 客製 docker image 的方式, 在 docker-compose.override.yml 設定引用新的 image  法2:真的用 Dockerfile 就可以自動化嗎!?先搞懂 Dockerfile 怎麼用吧  去 下載 所需的檔案,然後加一個超奇怪的 「USER "1000"」 到 Dockerfile 裏,再回到 docker-compose 裏引用 Dockerfile 並且指定 user ,這個解法能用匪夷所思來形容,反正能解,先頂著   總而言之  書到用時恨太多! 先醬!      收工! =================== sample 檔 =============...

virtualbox也拿出來用一用之 80 port forwarding 不見了

  virtualbox 在 windows 上使用還是蠻直覺的,一個 Linux VM(以下簡稱 VM) 的網頁伺服器,設定完成 NAT 的埠號轉接(port forwarding)就啟用了,想必將 VM 轉到 Linux Server(以下簡稱 Server) 上這個 VM 也(那)是(知)瞬(馬)間(上)完(撞)成(牆)吧(呢)! 工作環境:     Ubuntu Web Server VM 建置於 Windows 平台預計移植到 Linux Server平台  因為 Server 本身就會運行 ssh server 所以 VM 上的 ssh port 勢必得改掉,這樣遠端連入 ssh 時可以用 port 來辨別到底要連到 VM 上還是 Server 上,過了一關  為了讓 VM 的網頁伺服器運行起來和一般連接網頁時一樣,使用者直覺的打上網址(不用另加特殊埠號)就能連結,所以埠號轉送選了預設的 Server 80 port 對 VM 80 port ,接著怎麼連也連不上, netstat 一直不會出現 80 port 而 SSH 的 port 明晃晃的擺在眼前  防火牆開開關關, tcp wrapper, iptables 查了又查,就是沒辦法讓 80 port 現形,直到有人在網頁上說了,1024以下的埠號是保留存取權的,難怪…… 設定都對,別說找不到路,連路口都沒看到,問題就來了,問題發現,問題解釋,都有了,怎麼解決?  chat 被追問了許久,終於說出要 setcap ,指令打了半天,拆解又合併,就是不行,只好選用 VBOX_HARD_CAP_NET_BIND_SERVICE ,本能反應地在指令模式中 export VBOX_HARD_CAP_NET_BIND_SERVICE=1 source 接著和 GPT 確認之後,說是直接 vboxmanage startvm VMName --type headless 就行,結果也撞壁 ……  結果試出是 vboxmanage startvm VMName --type headless --putenv VBOX_HARD_CAP_NET_BIND_SERVICE=1  如此,不用先 export 或是 sour...

以一般使用者啟用(launch) anaconda jupyterlab

 jupyterlab 當初在裝的時侯可能有遇到權限問題,簡單處理就是大招直接開下去,用管理者權限裝了,導致後來要啟用 jupyterlab 時要先用管理者權限啟用 anaconda 才能啟用 jupyterlab,如果這時侯用一般使用者啟用時會出現類似: alias 引用時有問題,用 i18n() 替代, ExtentionManager 有問題,請檢查你的 jupyter_notebook_config.py 、 jupyter-labextention-script 之類的問題(如下 error log),即使你用管理者權限啟用 jupyterlab 而你的 jupyter notebook 的密碼也設好了,用密碼也登不進去  工作環境:     Windows10       anaconda3         jupyterlab  先移掉 jupyterlab ,如同上述,用管理者權限裝的,先用管理者權限啟用 anaconda 再到 jupyterlab 的齒輪 remove application   重新安裝 jupyterlab ,打開 anaconda prompt (非管理者權限) conda install -c conda-forge jupyterlab  然後就會出現: EnvironmentNotWritableError: The current user does not have write permissions to the target environment. environment location : C :\ ProgramData\Anaconda3 不管 location 是那裏,把你的使用者權限加上去,如果沒有資料夾就開下去 裝好之後再回 anaconda (不使用管理者權限啟用),此時開啟 jupyterlab 就可以啟用了     收工! # lanuch jupyterlab with general user privelege within anaconda =======...