نحوه استفاده از passwd و adduser در لینوکس چگونه است؟ در سیستم عامل لینوکس، مدیریت کاربران از جمله تغییر رمز عبور و ایجاد حساب کاربری جدید از اهمیت بالایی برخوردار است.
رمز عبور و احراز هویت مفاهیمی هستند که هر کاربر هنگام کار در سرور ابری لینوکسی باید با آنها سر و کار داشته باشد. این موضوعات شامل فایل پیکربندی و ابزار مختلف میشوند.
در این آموزش، ما برخی از فایلهای اساسی مانند “/etc/passwd” ، “/etc/shadow” و همچنین ابزارهایی برای تنظیم احراز هویت، مانند دستور “passwd” و “adduser” را با نام مناسب بررسی خواهیم کرد.
برای اجرای دستورات این آموزش، ما از سیستم عامل اوبونتو استفاده خواهیم کرد، اما شما میتوانید با استفاده از توزیع لینوکس موردنظر خود به روشی مشابه عمل کنید.
فایل etc/passwd/ چیست
فایل etc/passwd/، یکی از فایلهای سیستم در سیستمعاملهای مبتنی بر Unix است.
این فایل نه تنها رمز عبور بلکه رمز عبور هش شده هر کاربر را در سیستم ذخیره میکرد. با این حال، این مسئولیت به دلایل امنیتی به یک فایل جداگانه منتقل شده است.
با اجرای دستور زیر، میتوانید آنچه در فایل “/etc/passwd” وجود دارد را مشاهده کنید.
less /etc/passwd
پس از اجرای دستور، خروجی زیر را دریافت خواهید کرد.
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh . . .
اولین نکتهای که باید به آن توجه داشته باشید، این است که این فایل توسط کاربران ناشناس قابل دسترسی است و همه افراد در سیستم امتیازات این فایل را خواندهاند، به همین دلیل اطلاعات رمز عبور از این فایل خارج شده است.
در ادامه مطلب نحوه استفاده از passwd و adduser در لینوکس، فرمت فایل etc/passwd/ را بررسی خواهیم کرد.
نحوه خواندن فایل etc/passwd/
هر خط در فایل حاوی اطلاعات ورود به سیستم یک کاربر واحد است. برخی از این کاربران ممکن است برای استفاده توسط دیمونها و خدمات پس زمینه ایجاد شوند.
به خط زیر نگاه کنید تا ببینید چه اطلاعاتی در آن وجود دارد.
root:x:0:0:root:/root:/bin/bash
فیلدهای اطلاعات با یک کاراکتر کولون (:) از هم جدا میشوند. در یک فایل معمولی لینوکس “/etc/passwd” در هر خط هفت فیلد وجود دارد.
نام کاربری حساب root
<li><strong>x</strong>: Placeholder for password information. The password is obtained from the "/etc/shadow" file.</li>
<li><strong>0</strong>: User ID. Each user has a unique ID that identifies them on the system. The root user is always referenced by user ID 0.</li>
<li><strong>0</strong>: Group ID. Each group has a unique group ID. Each user has a "primary" group that is used as the group by default. Again, the root group's ID is always 0.</li>
<li><strong>root</strong>: Comment field. This field can be used to describe the user or user's function. This can be anything from contact information for the user, to descriptions of the service the account was made for.</li>
<li><strong>/root</strong>: Home directory. For regular users, this would usually be "/home/<span class="highlight">username</span>". For root, this is "/root".</li>
<li><strong>/bin/bash</strong>: User shell. This field contains the shell that will be spawned or the command that will be run when the user logs in.</li>
این فایل با اضافه کردن حسابهای کاربری با استفاده از دستوراتی مانند “adduser” و “useradd” یا با نصب دیگر سرویسها رشد میکند.
اطلاعات نام کاربری جدید به انتهای این فایل اضافه خواهد شد.
در اغلب موارد، نباید این فایل را به صورت دستی ویرایش کنید. ابزارهایی وجود دارند که این فایل را تغییر میدهند و از حفظ سینتکس مناسب اطمینان میدهند.
فایل etc/shadow/ چیست
اطلاعات رمز عبور واقعی در فایلی به نام “/etc/shadow” ذخیره میشود.
در واقع این فایل حاوی رمزهای عبور به صورت متن ساده نیست. در عوض، از یک تابع مشتق کلید برای ایجاد یک هش استفاده میکند. این چیزی است که در فایل ذخیره میشود.
یک تابع مشتق کلید، اساساً الگوریتمی است که همیشه یک هش خاص را هنگامی که ورودی یکسان داده میشود، ایجاد میکند.
بیشتر بدانید : نحوه استفاده از ps ،kill و nice برای مدیریت فرآیندها در لینوکس
الگوریتم مشابهی روی رمز عبوری که هنگام احراز هویت داده شده اجرا میشود و این مقدار با مقدار موجود در این فایل مقایسه میشود.
توجه داشته باشید که این فایل، برخلاف فایل “/ etc /passwd”، توسط کاربران ناشناس قابل خواندن نیست.
کاربر root دارای مجوزهای خواندن و نوشتن است و گروه “shadow” که شامل کاربران مورد نیاز برای احراز هویت است، فقط دارای مجوزهای خواندن است.
نحوه خواندن فایل etc/shadow/
با اجرای دستور زیر، فایل “/etc/shadow” را باز کنید.
sudo less /etc/shadow
با اجرای این دستور، خروجی زیر را دریافت خواهید کرد.
root:$6$mJD3Rsj4$xUa7jru6EEGTXnhwTfTT26/j8M5XiQvUl6UH32cfAWT/6W9iSI5IuIw5OOw4khwrsOHPyMwfCLyayfYiVdhAq0:15952:0:99999:7::: daemon:*:15455:0:99999:7::: bin:*:15455:0:99999:7::: sys:*:15455:0:99999:7::: sync:*:15455:0:99999:7::: games:*:15455:0:99999:7::: man:*:15455:0:99999:7::: . . .
مانند فایل “/etc/passwd”، هر خط اطلاعات یک کاربر را تعریف میکند و هر فیلد با یک کاراکتر (:) مشخص میشود.
توجه داشته باشید: مقدار ستاره (*) در برخی از خطوط بالا به این معنی است که کاربر نمیتواند وارد حساب شود و عمدتا برای خدمات استفاده میشود.
به خط زیر توجه کنید.
daemon:*:15455:0:99999:7:::
اینها فیلدهایی هستند که در فایل “/etc/shadow” تعریف شدهاند.
daemon: نام کاربری حساب
<li><strong>*</strong>: Salt and hashed password. You can see what this looks like with the root entry above.
As noted above, the asterisk signifies that this account cannot be used to log in.</li>
<li><strong>15455</strong>: Last password change. This value is measured in days from the Unix "epoch", which is January 1, 1970.</li>
<li><strong>0</strong>: Days until password change permitted. 0 in this field means there are no restrictions.</li>
<li><strong>99999</strong>: Days until password change required. 99999 means that there is no limit to how long the current password is valid.</li>
<li><strong>7</strong>: Days of warning prior to expiration. If there is a password change requirement, this will warn the user to change their password this many days in advance.</li>
<li><strong>[blank]</strong>The last three fields are used to denote days before the account is made inactive, days since the Epoch when the account expires. The last field is unused.</li>
نحوه تغییر رمز عبور
کاربران با اجرای دستور “passwd” میتوانند رمز عبور خود را تغییر دهند.
دستور زیر به صورت پیش فرض رمز عبور کاربر فعلی را تغییر میدهد و نیازی به مجوزهای خاصی ندارد.
passwd
اگر میخواهید رمز عبور کاربر دیگری را تغییر دهید، به امتیازات مدیریتی نیاز خواهید داشت.
برای انجام این کار، میتوانید از سینتکس زیر استفاده کنید.
sudo passwd username
برای دستور sudo از شما خواسته میشود رمز عبور خود را وارد کنید و سپس رمز عبور جدیدی را که میخواهید استفاده کنید را وارد و تأیید نمایید.
اگر مقدار هش شده را در فایل “/etc/shadow” مقایسه کنید، خواهید دید که پس از صدور دستور passwd تغییر میکند.
نحوه ایجاد کاربر جدید
کاربران را میتوانید با استفاده از دستورات مختلفی ایجاد کنید.
در مطلب نحوه استفاده از passwd و adduser در لینوکس، ایجاد کاربر را به سادهترین روش ممکن آموزش خواهیم داد.
در سیستمهای اوبونتو، adduser به اسکریپت perl مرتبط است که ایجاد کاربر را مدیریت میکند.
شما میتوانید آن را به این صورت نامگذاری کنید.
adduser demo
خروجی زیر را دریافت خواهید کرد.
Adding user `demo' ... Adding new group `demo' (1000) ... Adding new user `demo' (1000) with group `demo' ... Creating home directory `/home/demo' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for demo Enter the new value, or press ENTER for the default Full Name []: test Room Number []: room Work Phone []: work phone Home Phone []: home phone Other []: other Is the information correct? [Y/n]
در ادامه، از شما یک سری سوال پرسیده خواهد شد که به پر کردن اطلاعات در فایل “/etc/passwd” و فایل “/etc/shadow” کمک میکند.
با ورود به فایل “/ etc / Passwd” میتوانید ببینید که چه ورودیهایی به آن اضافه شده است. برای همین امر، دستور زیر را اجرا کنید.
tail -1 /etc/passwd
خروجی زیر را دریافت خواهید کرد.
demo:x:1000:1000:test,room,work phoneme phone,other:/home/demo:/bin/bash
در ادامه مطلب نحوه استفاده از passwd و adduser در لینوکس، میتوانید دستور مشابهی را اجرا کنید تا تغییرات ایجاد شده در فایل “/ etc / Shadow” را مشاهده کنید.
sudo tail -1 /etc/shadow
خروجی زیر را دریافت خواهید کرد.
demo:$6$XvPCmWr4$HXWmaGSeU5SrKwK2ouAjc68SxbJgUQkQ.Fco9eTOex8232S7weBfr/CMHQkullQRLyJtCAD6rw5TVOXk39NAo/:15952:0:99999:7:::
جمع بندی
لینوکس یکی از محبوبترین سیستم عاملها است که توسط جامعهٔ بزرگی از توسعهدهندگان و کاربران استفاده میشود. یکی از ویژگیهای قدرتمند لینوکس، قابلیت ایجاد و مدیریت حسابهای کاربری مختلف است. در این مقاله، به بررسی دو ابزار مهم برای مدیریت حسابهای کاربری پرداختهایم تا بتوانید بهطور مستقل حسابهای کاربری خود را در سرور لینوکس ایجاد یا تغییر دهید و همچنین در صورت لزوم، به دیگران در مدیریت حسابهای کاربری کمک کنید.
[yasr_overall_rating]