bash install with不存在的组



我正在编写一个linux安装脚本,在这里我引导到linux的RAM磁盘映像,然后安装新版本的linux以在挂载上闪存。

linux的RAM磁盘(运行)版本没有名为"bob"的用户组,但是我在挂载的分区上安装的映像有

安装完成了,但我想做的最后一个步骤是创建两个文件夹,它们属于组"bob">

所以我用do这样写:

# Note: /tmp/test is not the actual mount point - this is just an example
install -o user -g bob -d /tmp/test
install: invalid group ‘bob’

我当前运行的linux版本没有组bob,但我知道我正在创建的目标文件夹确实有这个组-当我重新启动到该映像时。

有办法做到这一点吗?我唯一能想到的就是创建一个群组"bob"暂时执行install命令,然后再次删除。

从挂载映像的/etc/group文件中提取bob的GID,并使用它

我认为您也需要为UID做同样的事情,如果user,因为这可能与主机系统中的不一样。

uid=$(awk -F: '$1 == "user" {print $3}' /tmp/test/etc/passwd)
gid=$(awk -F: '$1 == "bob" {print $3}' /tmp/test/etc/group)
if [ -n "$uid" && -n "$gid" ]
then
install -o "$uid" -g "$gid" -d /tmp/test
fi

最新更新