我必须在/ etc / passwd中创建UID范围为8000到9000的用户。有没有办法预测下一个用于命令行的UID。
我知道下面的命令为我提供了在passwd文件中存在的最后一个UID之后使用的UID:
awk -F: 'BEGIN {maxuid=0;} {if ($3 > maxuid) maxuid=$3;} END {print maxuid+1;}' /etc/passwd
我需要在命令行中更改什么才能在8000 - 9000范围内使用下一个UID?
提前致谢
答案 0 :(得分:0)
根据您的陈述,基于您的陈述并不清楚可以帮助您。
解决方案1: 如果您要打印UID介于8000
到9000
之间的所有用户条目,则:
awk -F":" '$3>=8000 && $3<=9000' /etc/passwd
解决方案第二: 如果您需要最大uid数介于8000到9000 uid之间,那么以下内容可能有所帮助。
awk -F":" '$3>=8000 && $3<=9000{max=max>$3?max:$3} END{if(max){print max} else {print "No uid in between 80000 to 9000"}}' /etc/passwd
答案 1 :(得分:0)
这将填充第一个可用的ID,即使在使用的ID中有空洞(例如使用了8000和8002但是8001不是,因此应该选择使用的下一个ID):
awk -F: '
{ used[$3] }
END {
avail = 0
for (i=8000; i<=9000; i++) {
if ( !(i in used) ) {
avail = i
break
}
}
print avail
}
' /etc/passwd