podman-unshare(1) General Commands Manual podman-unshare(1) نام (NAME) podman-unshare - اجرای یک دستور درون فضای نام کاربری تغییریافته خلاصه دستور (SYNOPSIS) podman unshare [گزینه‌ها] [دستور] توضیحات (DESCRIPTION) فرایندی را (به‌طور پیش‌فرض، $SHELL) درون یک فضای نام کاربری (user namespace) جدید اجرا می‌کند. این فضای نام کاربری به‌گونه‌ای پیکربندی می‌شود که شناسه کاربری (UID) و شناسه گروهی اصلی (GID) کاربر فراخواننده به ترتیب برابر با UID 0 و GID 0 به نظر برسند. هر محدوده‌ای که با آن کاربر و گروه در /etc/subuid و /etc/subgid مطابقت داشته باشد نیز به کمک برنامه‌های کمکی newuidmap(1) و newgidmap(1) با همان هویت خودشان نگاشت می‌شوند. دستور podman unshare برای عیب‌یابی عملیات‌های بدون دسترسی ریشه (unprivileged) و برای پاکسازی دستی فضای ذخیره‌سازی و سایر داده‌های مربوط به ایمیج‌ها و کانتینرها مفید است. همچنین برای استفاده از دستور podman mount کاربرد دارد. اگر یک کاربر غیرریشه بخواهد کانتینری را سوار کرده و با آن کار کند، باید podman unshare را اجرا نماید. اجرای podman mount برای کاربران غیرریشه با شکست مواجه می‌شود مگر اینکه کاربر درون یک نشست podman unshare در حال اجرا باشد. نشست unshare دو متغیر محیطی را تعریف می‌کند: • CONTAINERS_GRAPHROOT: مسیر داده‌های پایدار (persistent) کانتینر. • CONTAINERS_RUNROOT: مسیر داده‌های موقت و فرار (volatile) کانتینر. مهم: این دستور در کلاینت ریموت پادمن در دسترس نیست. گزینه‌ها (OPTIONS) --help, -h چاپ بیانیه راهنمای استفاده --rootless-netns پیوستن به فضای نام شبکه بدون ریشه (rootless network namespace) که برای شبکه‌بندی netavark استفاده می‌شود. این گزینه می‌تواند برای اتصال به یک کانتینر بدون ریشه از طریق نشانی IP (شبکه‌بندی bridge) استفاده شود. در غیر این صورت، این کار از فضای نام شبکه میزبان امکان‌پذیر نیست. کدهای خروج (EXIT CODES) کد خروج از podman unshare اطلاعاتی درباره علت شکست اجرای کانتینر یا پایان یافتن آن ارائه می‌دهد. هنگامی که دستورات podman unshare با یک کد غیر صفر خارج می‌شوند، کدهای خروج از استاندارد chroot پیروی می‌کنند (به زیر مراجعه کنید): 125 خطا از خود پادمن است $ podman unshare --foo; echo $? Error: unknown flag: --foo 125 126 هنگام اجرای یک دستور محصور و زمانی که این دستور قابل فراخوانی نیست $ podman unshare /etc; echo $? Error: fork/exec /etc: permission denied 126 127 هنگام اجرای یک دستور محصور و زمانی که این دستور یافت نمی‌شود $ podman unshare foo; echo $? Error: fork/exec /usr/bin/bogus: no such file or directory 127 کد خروج کد خروج دستور محصور $ podman unshare /bin/sh -c 'exit 3'; echo $? 3 مثال‌ها (EXAMPLES) اجرای دستور مشخص‌شده درون فضای نام کاربری بدون ریشه: $ podman unshare id uid=0(root) gid=0(root) groups=0(root),65534(nobody) نمایش نگاشت‌های فضای نام کاربری برای کانتینرهای بدون ریشه: $ podman unshare cat /proc/self/uid_map /proc/self/gid_map 0 1000 1 1 10000 65536 0 1000 1 1 10000 65536 نمایش اطلاعات netns بدون ریشه در فضای نام کاربری برای کانتینرهای بدون ریشه: $ podman unshare --rootless-netns ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: tap0: mtu 65520 qdisc fq_codel state UNKNOWN group default qlen 1000 link/ether aa:8c:0b:73:98:f6 brd ff:ff:ff:ff:ff:ff inet 10.0.2.100/24 brd 10.0.2.255 scope global tap0 valid_lft forever preferred_lft forever inet6 fd00::a88c:bff:fe73:98f6/64 scope global dynamic mngtmpaddr valid_lft 86389sec preferred_lft 14389sec inet6 fe80::a88c:bff:fe73:98f6/64 scope link valid_lft forever preferred_lft forever همچنین ببینید (SEE ALSO) podman(1), podman-mount(1), namespaces(7), newuidmap(1), newgidmap(1), user_namespaces(7) podman-unshare(1)