| buildah-unshare(1) | General Commands Manual | buildah-unshare(1) |
نام (NAME)
buildah-unshare - اجرای دستور در یک فضای نام کاربری (User Namespace) جدید
خلاصه دستور (SYNOPSIS)
buildah unshare [گزینهها] [--] [دستور]
توضیحات (DESCRIPTION)
یک فرآیند (بهطور پیشفرض، $SHELL) را در یک فضای نام کاربری (User Namespace) جدید اجرا میکند. این فضای نام کاربری به گونهای پیکربندی شده است که UID و GID اصلی کاربر فراخواننده به ترتیب به عنوان UID 0 و GID 0 نمایش داده میشوند. هر محدودهای که در /etc/subuid و /etc/subgid با آن کاربر و گروه مطابقت داشته باشد نیز با کمک ابزارهای کمکی newuidmap(1) و newgidmap(1) به عنوان خودشان نگاشت میشوند.
دستور buildah unshare برای عیبیابی عملیاتهای بدون امتیاز (unprivileged) و پاکسازی دستی فضای ذخیرهسازی و سایر دادههای مربوط به ایمیجها و کانتینرها مفید است.
همچنین اگر بخواهید از دستور buildah mount استفاده کنید، این دستور کاربرد دارد. اگر یک کاربر بدون امتیاز بخواهد یک کانتینر را سوار (mount) کرده و با آن کار کند، باید buildah unshare را اجرا کند. اجرای buildah mount برای کاربران بدون امتیاز با شکست مواجه میشود، مگر اینکه کاربر درون یک نشست (session) buildah unshare در حال اجرا باشد.
گزینهها (OPTIONS)
--mount, -m [VARIABLE=]containerNameOrID
کانتینر containerNameOrID را هنگام اجرای دستور سوار (mount) میکند و متغیر محیطی VARIABLE را روی مسیر نقطه اتصال (mountpoint) تنظیم مینماید. اگر VARIABLE مشخص نشود، مقدار پیشفرض آن containerNameOrID خواهد بود که ممکن است یک نام معتبر برای متغیر محیطی نباشد.
مثال (EXAMPLE)
buildah unshare id
buildah unshare pwd
buildah unshare cat /proc/self/uid_map /proc/self/gid_map
buildah unshare rm -fr $HOME/.local/share/containers/storage /run/user/`id -u`/run
buildah unshare --mount containerID sh -c 'cat ${containerID}/etc/os-release'
buildah unshare --mount root=containerID sh -c 'cat ${root}/etc/os-release'
اگر میخواهید از buildah به همراه دستور «mount» استفاده کنید، میتوانید اسکریپتی مشابه زیر ایجاد نمایید:
cat > buildah-script.sh << _EOF #!/bin/bash ctr=$(buildah from scratch) mnt=$(buildah mount $ctr) dnf -y install --installroot=$mnt --use-host-config --setopt "*.countme=false" PACKAGES dnf -y clean all --installroot=$mnt buildah config --entrypoint="/bin/PACKAGE" --env "FOO=BAR" $ctr buildah commit $ctr imagename buildah unmount $ctr _EOF chmod +x buildah-script.sh
سپس آن را با دستور زیر اجرا کنید:
buildah unshare ./buildah-script.sh
همچنین ببینید (SEE ALSO)
buildah(1), buildah-mount(1), namespaces(7), newuidmap(1), newgidmap(1), user_namespaces(7)
| June 2018 | buildah |