我正在编写一个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