'\" t .\" Title: idmap_script .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 08/16/2026 .\" Manual: System Administration tools .\" Source: Samba 4.24.6 .\" Language: Persian .\" .TH "IDMAP_SCRIPT" "8" "08/16/2026" "Samba 4\&.24\&.6" "System Administration tools" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" idmap_script \- بک‌اند idmap_script مربوط به Samba برای Winbind .SH "توضیحات (DESCRIPTION)" .PP پلاگین idmap_script جایگزینی برای بک‌اند idmap_tdb2 است که توسط winbindd جهت ذخیره جدول‌های نگاشت SID/uid/gid در محیط‌های خوشه‌ای به همراه Samba و CTDB به کار می‌رود\&. این بک‌اند فقط‌خواندنی است و از یک اسکریپت برای انجام نگاشت استفاده می‌کند\&. .PP این بک‌اند بر پایه بک‌اند idmap_tdb2 توسعه یافته است و نگاشت‌های SID/uid/gid را در یک TDB ذخیره نمی‌کند، زیرا winbind_cache tdb پس از ارائه نگاشت‌ها، آن‌ها را در خود ذخیره خواهد کرد\&. .SH "گزینه‌های نگاشت شناسه (IDMAP OPTIONS)" .PP range = low \- high .RS 4 محدوده در دسترس UID و GID منطبق را مشخص می‌کند که این بک‌اند روی آن مرجعیت دارد\&. .RE .PP script .RS 4 از این گزینه می‌توان برای پیکربندی یک برنامه خارجی جهت انجام نگاشت‌های شناسه استفاده کرد\&. .RE .SH "اسکریپت نگاشت شناسه (IDMAP SCRIPT)" .PP بک‌اند نگاشت شناسه script از یک برنامه خارجی برای انجام نگاشت‌های شناسه از طریق گزینه /etc/samba/smb\&.conf با عنوان \fIidmap config * : script\fR یا شکل قدیمی و منسوخ‌شده آن \fIidmap : script\fR پشتیبانی می‌کند\&. .PP این اسکریپت باید گزینه‌های خط فرمان زیر را بپذیرد\&. .sp .if n \{\ .RS 4 .\} .nf SIDTOID S\-1\-xxxx IDTOSID UID xxxx IDTOSID GID xxxx IDTOSID XID xxxx .fi .if n \{\ .RE .\} .PP و باید یکی از پاسخ‌های زیر را به عنوان یک خط متن منفرد برگرداند\&. .sp .if n \{\ .RS 4 .\} .nf UID:yyyy GID:yyyy XID:yyyy SID:ssss ERR:yyyy .fi .if n \{\ .RE .\} .PP شناسه XID نشان می‌دهد که شناسه بازگردانده‌شده باید هم یک UID و هم یک GID باشد\&. به این معنی که یک ID_TYPE_BOTH را درخواست می‌کند، اما در نهایت بر عهده اسکریپت است که آیا می‌تواند به این درخواست پاسخ دهد یا خیر\&. اسکریپت می‌تواند فقط یک نگاشت UID یا GID را برگرداند\&. .SH "مثال‌ها (EXAMPLES)" .PP این مثال نحوه استفاده از script را به عنوان بک‌اند پیش‌فرض idmap با کمک یک برنامه خارجی از طریق پارامتر script نشان می‌دهد: .sp .if n \{\ .RS 4 .\} .nf [global] idmap config * : backend = script idmap config * : range = 1000000\-2000000 idmap config * : script = /usr/local/samba/bin/idmap_script\&.sh .fi .if n \{\ .RE .\} .PP این نمونه یک اسکریپت ساده را برای انجام بخشی از این وظیفه نشان می‌دهد: .sp .if n \{\ .RS 4 .\} .nf #!/bin/sh # # Uncomment this if you want some logging #echo $@ >> /tmp/idmap\&.sh\&.log if [ "$1" == "SIDTOID" ] then # Note\&. The number returned has to be within the range defined #echo "Sending UID:1000005" >> /tmp/idmap\&.sh\&.log echo "UID:1000005" exit 0 else #echo "Sending ERR: No idea what to do" >> /tmp/idmap\&.sh\&.log echo "ERR: No idea what to do" exit 1 fi .fi .if n \{\ .RE .\} .PP بدیهی است که این اسکریپت کافی نیست، زیرا احتمالاً باید از wbinfo برای تعیین اینکه آیا یک SID ورودی متعلق به یک کاربر یا گروه است استفاده کند و سپس نگاشت را در یک جدول جستجو کرده یا از سازوکار دیگری برای نگاشت SIDها به UIDها و غیره بهره ببرد\&. .PP لطفاً توجه داشته باشید که این اسکریپت با متغیر محیطی _NO_WINBINDD با مقدار 1 فراخوانی می‌شود\&. این کار از فراخوانی‌های بازگشتی به winbind از درون اسکریپت، هم از طریق فراخوانی‌های صریح به wbinfo و هم از طریق فراخوانی‌های ضمنی توسط nss_winbind جلوگیری می‌کند\&. برای نمونه، فراخوانی .B ls \-l می‌تواند چنین بازگشت بی‌پایانی را ایجاد کند\&. .PP فراخوانی .B wbinfo \-n و .B wbinfo \-s از داخل یک اسکریپت idmap ایمن است\&. برای انجام این کار، اسکریپت باید متغیر محیطی _NO_WINBINDD را دقیقاً پیش از فراخوانی .B wbinfo لغو (unset) کرده و بلافاصله پس از بازگشت .B wbinfo مجدداً آن را روی 1 تنظیم کند تا در برابر بازگشت بی‌پایان محافظت شود\&. .SH "نویسنده (AUTHOR)" .PP نرم‌افزار اصلی Samba و ابزارهای مرتبط توسط Andrew Tridgell ساخته شده‌اند\&. Samba اکنون توسط Samba Team به عنوان پروژه‌ای متن‌باز و مشابه شیوه توسعه هسته لینوکس توسعه داده می‌شود\&.