2017-01-23 61 views
2

我正嘗試在Alpine Linux Docker容器內創建一個新用戶,其中UID1340816314爲了讓用戶使用與主機上的特定用戶匹配的UID無法在Docker Alpine中添加具有高UID的用戶

問題是,即使我通過以下adduser man page重新定義/etc/login.defs中的UID_MAX的值,我仍面臨adduser: number 1340816314 is not in 0..256000 range。我不認爲它對Alpine is from BusyBox中的adduser命令有任何影響。

這裏是什麼,我嘗試做日誌:

$ docker run -it --rm alpine:3.4 sh 
/# adduser -D -g '' -u 1340816314 user 
adduser: number 1340816314 is not in 0..256000 range 
/# echo "UID_MAX 1340816314" > /etc/login.defs 
/# adduser -D -g '' -u 1340816314 user 
adduser: number 1340816314 is not in 0..256000 range 
/# echo "UID_MAX 1340816315" > /etc/login.defs 
/# adduser -D -g '' -u 1340816314 user 
adduser: number 1340816314 is not in 0..256000 range 

你知道如何將用戶在阿爾卑斯山的Linux添加一個大UID泊塢窗容器內?

+3

高山使用'busybox' adduser的,這可以簡單地限制在它支持的最大值中。您正在閱讀的手冊頁不一定是正確的(其他發行版有一個'adduser'命令,它與busybox提供的命令不同)。 – larsks

+0

降低我的問題的人可以解釋爲什麼在這裏? –

+1

我不知道你爲什麼被低估。我有同樣的問題。 –

回答

2

這裏是一個工作但髒的解決方法,通過手動創建用戶,使用$UID_TO_SET作爲包含高UID設置在bash變量:

# Create user 
echo "user:x:$UID_TO_SET:$UID_TO_SET::/home/user:" >> /etc/passwd 
## thanks for http://stackoverflow.com/a/1094354/535203 to compute the creation date 
echo "user:!:$(($(date +%s)/60/60/24)):0:99999:7:::" >> /etc/shadow 
echo "user:x:$UID_TO_SET:" >> /etc/group 
mkdir /home/user && chown user: /home/user 
相關問題