ابرکاربر

در رایانش و سیستم‌عامل‌ها کاربر ممتاز یک حساب کاربری ویژه است که برای انجام کارهای مدیریتی استفاده می‌شود. بسته به سیستم‌عامل، نام واقعی این کاربر می‌تواند، ریشه ، مدیر یا سرپرست باشد. در برخی از سیستم‌عامل‌ها هم نام واقعی این کاربر اهمیت ندارد، در چنین سیستم‌هایی با تنظیم کردن یک پرچم بر روی حساب کاربری یکی از کاربران معمولی، می‌توان آن کاربر را از امتیازات ویژه برخوردار کرد.
در سیستم‌عامل‌هایی که از مفهوم کاربر ممتاز استفاده می‌کنند، معمولا پیشنهاد می‌شود که برنامه‌های کاربردی به عنوان یک کاربر معمولی اجرا شوند و کارهای خودشان را به عنوان یک کاربر معمولی انجام دهند تا قادر نباشند در سرتاسر سیستم تغییر ایجاد کنند و به این ترتیب احتمال آسیب رساندن به سیستم کاهش یابد.
یونیکس و شبه یونیکس
در سیستم‌عامل‌های شبه یونیکس، به کاربری که از تمام حقوق و امتیازات (فایل‌ها و برنامه‌ها) در تمام حالت‌ها (تک‌کاربره یا چند کاربره) برخوردار است، کاربر ریشه گفته می‌شود. اسامی جایگزین برای این کاربر عبارتند از baron در سیستم‌عامل بی‌اواس و همین‌طور avatar که در برخی از سیستم‌های یونیکس استفاده می‌شود. در سیستم‌عامل‌های بی‌اس‌دی معمولا علاوه بر کاربر root، کاربر دیگری به نام toor وجود دارد. toor در حقیقت معکوس root است. بدون توجه به نام این کاربرها، شماره شناسایی آنها همیشه صفر است. کاربر ریشه می‌تواند کارهای زیادی انجام دهد که کاربران معمولی قادر به انجام آنها نیستند. همانند تغییر دادن مالک فایل‌ها و استفاده از پورتهای شبکه زیر ۱۰۲۴. شاید به این خاطر که کاربر root تنها کاربری است که می‌تواند مجوزهای دایرکتوری ریشه را تغییر دهد، نام root بر روی آن گذارده شده. این دایرکتوری در اصل به عنوان دایرکتوری خانگی کاربر ریشه شناخته می‌شود. اولین فرایندی که در سیستم آغاز به کار می‌کند و معمولا اینیت نامیده می‌شود، به عنوان کاربر ریشه اجرا می‌شود و از امتیازات این کاربر برخوردار است. تمام دیگر فرایندها چه به صورت مستقیم و چه به صورت غیر مستقیم، توسط اینیت به اجرا درمی‌آیند و آنها هم امتیازات خود را از والدشان به ارث می‌برند. تنها فرایندهایی که به عنوان کاربر ریشه در حال اجرا هستند، قادر هستند تا شناسه ID خودشان را به کاربر دیگری تغییر دهند. وقتی که فرایندی این کار را انجام داد، هیچ راه برگشتی نیست. انجام این کار گاهی اوقات دور انداختن امتیازات ریشه نامیده می‌شود و به این منظور استفاده می‌شود که احتمال آسیب‌رسانی به سیستم توسط فرایند مورد نظر کاهش یابد.
در برخی از سیستم‌ها همانند پلان ۹ هم کلا هیچ کاربر ممتازی وجود ندارد.
کاربر ممتاز در لینوکس و دسترسی ریشه‌ای در آن
برای آگاه شدن و فرهیختن «دسترسی ریشه‌ای» در لینوکس، دامنه توانمندی‌های کاربر در این سامانه کارگر در زیر، بخش‌بندی می‌شود:
الف- کاربری عادی بدون اختیارات مدیریتی:
کاربرانی که تا اندازه این دامنه دارای اختیارات در لینوکس هستند، می‌توانند درون پوشه‌ها شده و از آن روگرفت بسازند و گشتارگر اینترنت را بازگشوده و هر نشانه اینترنتی‌ای را باز کرده و به سپاردن پوشه‌ها و پرونده‌ها در حافظه‌های رایانه‌ای بپردازند مگر این که اختیاراتی به دست کاربران با دامنه توانمندی‌های گسترده‌تر، از این‌گونه کاربران عادی گرفته شده باشد.
ب- کاربری با دامنه توانمندی‌های مدیریتی:
این دامنه توانمندی‌ها در بر گیرنده همه کارهایی است که می‌توان با لینوکس بر روی رایانه یا هر جای دیگری انجام داد. کارهایی هم‌چون ساختن کاربر تازه و محدود کردن توانمندی‌های گروه‌ها و کاربران و نصب کردن و پاک کردن برنامه‌ها و در دسترس آوردن و از دسترس بیرون بردن درایوهای حافظه‌های جانبی رایانه و روزامد کردن برنامه‌ها و …
پ- دامنه کاربری فرامدیریتی یا همان «دسترسی ریشه‌ای»:
برای پاسبانی از اجراهای ناخواسته دستورها و کارهایی که می‌توانند به سامانه زیان به بار آورند، لینوکس حتی مدیران را نیز برای انجام دادن کارهایی با پالایه یا همان فیلتر روبه‌رو می‌سازد تا اگر کاربری دارای توانمندی‌های مدیریتی بود ولی تخصص لازم برای کار کردن با رایانه را نداشت، نتواند با اشتباهی که ممکن است انجام دهد، زیان‌های واگردان نشدنی‌ای را به بار بیاورد. حتی ممکن است نرم‌افزاری به دست کاربر با توانمندی‌های مدیریتی نصب شود و این توانمندی‌ها را به دست آورد و این توانمندی‌ها به دست آن نرم‌افزار برای سامانه زیان‌ها و بیم‌هایی را به همراه داشته باشد. از این رو سیاست زیرساخت لینوکس بر آن است تا دسترسی ریشه را تنها به یک کاربر پیش‌ساخته و نادگرگون‌شدنی بدهد و هر گاه یک کاربر با توانمندی‌های مدیریتی بخواهد کاری را بکند که نیاز به اختیارات فرا مدیریتی باشد، وادار شود تا به پالایه لینوکس واکنش نشان دهد و دسترسی ریشه‌ای را برای خود برای یک کار معین یا یک برنامه معین، فراهم آورد. این کاربر که دارای دسترسی ریشه‌ای در سیستم عامل‌های شبیه لینوکس است، root نام دارد.
چگونگی به دست آوردن دسترسی ریشه‌ای در لینوکس
با آگاه بودن از این که لینوکس در گونه‌های بسیاری به بیرون گسترانده شده‌است و پوسته‌های گوناگونی برای این سامانه کارگر نوشته شده و به کار گرفته شده‌است، راه‌های گوناگونی می‌تواند برای کارهای گوناگون در دسترس کاربران گذاشته شود.
پوسته‌های گوناگون برای لینوکس و سیستم عامل‌های مشابه آن همواره بر آن هستند که رابط ترمینال را بتوانند در پیش روی کاربر آماده بسازند. این رابط یک میانجی است که فرمان‌ها در آن نوشته می‌شود و با فرشده شدن کلید enter روی تخته‌کلید، این فرمان‌ها اجرا می‌شوند.
اگرچه راه همواری برای به دست آوردن دسترسی ریشه‌ای در محیط گرافیکی سامانه‌های کارگر همانند لینوکس، نباید در پیش روی کاربران گذاشته شود، ولی برخی از برنامه‌ها و پوسته‌ها هستند که با اندکی دگرگونی این توان را دارند تا دسترسی ریشه‌ای را برای خود و کاربران فراهم کنند.
با رفتن به ترمینال یا پیشخوان فرمان
یکی از راه‌ها برای به دست آوردن توانمندی‌های فرامدیریتی و دسترسی ریشه‌ای، رفتن به ترمینال در لینوکس است.
با به کار بردن برنامه‌ها و فرمان‌های جانبی و اجرای برنامه‌ها از راه این برنامه‌ها و فرمان‌های جانبی، می‌توان دسترسی ریشه‌ای را به برنامه یا روند معینی داد و تا برنامه یا روند معین بسته نشود یا این اختیارات از او گرفته نشود و برنامه یا فرمان جانبی‌ای که این اختیارات و دسترسی ریشه‌ای را به برنامه یا روند معین رسانده‌است، در میانه اجرا باشد، این برنامه یا روند معین، دسترسی ریشه‌ای را به سامانه در دست خواهد داشت.
سه تا از این برنامه‌ها که دسترسی ریشه‌ای را فراهم می‌آورند، su و sudo و gksu هستند که از آن‌ها می‌توان در ترمینال لینوکس، بهره جست.
su و sudo
این دو برنامه تا اندازه‌ای با هم فرق دارند.
شاید واج‌های لاتین برنامه sudo برگرفته از واژگروه زیر باشد:
super user do
یعنی: انجام کارهایی که فراتر از کاربر ---عادی--- است.
این برنامه گرافیکی نیست و بهتر است برنامه‌هایی که نیاز به دسترسی ریشه‌ای دارند و محیطی گرافیکی به کاربر نشان می‌دهند، با این برنامه اجرا نشوند.
gksu
این برنامه نگارش گرافیکی از sudo است.
شاید فرمان به راه افتادن این برنامه که چهار واج لاتین است، از واژگروه زیر گرفته شده باشد:
gtk su
برای دادن دسترسی ریشه‌ای به برنامه‌هایی که محیط گرافیکی را به کاربر نشان می‌دهند، می‌توان از gksu بهره گرفت.
نمونه به دست آوردن دسترسی ریشه‌ای در ترمینال
یک نمونه در زیر، آورده می‌شود:
پرونده‌ای با نام fstab در پوشه‌ای با نام etc هست.
کاربر به خوبی می‌داند که چه کار می‌خواهد بکند و می‌داند که اگر ویرایش پرونده fstab را نادرست انجام دهد، ای بسا زیان‌های سختی بر رایانه وی برسد.
کاربر دارای دامنه توانمندی‌های مدیریتی است و برای ویراستن پرونده fstab نیازمند به دسترسی ریشه‌ای شده‌است.
کاربر می‌خواهد با برنامه‌ای که نامش gedit است، پرونده fstab را در پوشه etc ویرایش کند.
کاربر ناگزیر با دست یازیدن بر فرمان جانبی gksu برنامه gedit را با دسترسی ریشه‌ای می‌خواهد باز کند و از برنامه gedit در همان فرمان یک‌جا می‌خواهد تا پرونده fstab را از پوشه etc باز کند.
کاربر ترمینال را باز می‌کند.
کاربر فرمان زیر را در ترمینال می‌نویسد:
gksu gedit /etc/fstab
پالایه به پیش روی کاربر می‌آید و از او گذرواژه کاربر root را می‌پرسد و از او می‌خواهد که اگر می‌خواهد دسترسی ریشه‌ای را به برنامه ویرایشگر gedit بدهد، گذرواژه را داده و کلید enter را بفشارد.
همین که کاربر پالایه را با آری پذیرفت، دسترسی ریشه‌ای به برنامه gedit داده می‌شود و پرونده fstab با دسترسی ریشه‌ای به دست برنامه gedit باز می‌شود و هر دگرگونی‌ای را برنامه می‌تواند در این پرونده بسپارد تا مگر این که این برنامه بسته شود و دوباره باز شود یا ترمینال بسته شود و پیامدش این باشد که فرمان gksu که درگاه دسترسی ریشه‌ای در این نمونه می‌باشد، ناکار گردد.
کارا کردن کاربر root برای بهره‌مندی در به دست آوردن دسترسی ریشه‌ای و دیگر چیزها
کاربر root که کاربر ممتاز در لینوکس است، به گونه کارخانه‌ای و پیش‌نمود، دارای هیچ گذرواژه‌ای نیست و برای همین برای به کار گرفته شدن، ناکار است.
برای این که این کاربر در لینوکس، برای بهره رساندن به هر برنامه و فرمانی کارا شود، باید یک گذرواژه به آن ویژه کرد.
برای این کار، می‌توان از راه ترمینال، روش زیر را پیمود:
کاربر root چنین انگاشته شده که گذرواژه‌ای برای خود نداردد و برای نمونه لینوکس تازه نصب شده و تا کنون کسی به root با گذرواژه‌ای درون نشده‌است.
کاربر می‌داند که چه کاری را می‌خواهد بکند و می‌داند که گذرواژه‌ای که می‌خواهد به کاربر root ویژه کند، تا چه اندازه سهمگین و گران است.
خود کاربر نیز دارای توانمندی‌های مدیریتی است.
کاربر از چیده‌مان تخته‌کلید خود نیز آگاه است و برای نمونه می‌داند که چیده‌مانش آیا آلمانی است یا انگلیسی زیرا که جای برخی از واج‌ها برای نمونه در تخته‌کلید با چیده‌مان آلمانی و انگلیسی با یک‌دیگر دگرگون هستند.
کاربر ترمینال را می‌گشاید و فرمان زیر را نگاشته و سپس کلید enter را برای به کار افتادن فرمان، می‌فشارد.
sudo passwd root
سپس پالایه به پیش روی کاربر می‌آید و از او خواسته می‌شود تا گذرواژه‌ای برای کاربر root بنویسد و به پیش برود و ای بسا گذرواژه دو بار از کاربر برای هشدار، خواسته شود و کاربر هر بار که گذرواژه یک‌سانی را نوشت، برای پیش رفتن کلید enter را باید فشار دهد.
همین که پالایه از پیش روی کاربر با پیام فرجامش رفت، کاربر root دیگر کارا شده و گذرواژه‌اش هم همانی است که کاربر در پله ششم در این نمونه که نوشته شده‌است، در پالایه درون کرده‌است.