دستور passwd در لینوکس برای تغییر پسوردهای حساب کاربری استفاده می‌شود.

کاربر root تنها کسی است که می‌تواند پسورد هر کاربر را در سیستم تغییر دهد، در حالی که یک کاربر عادی فقط می‌تواند پسورد حساب کاربری خود را تغییر دهد.

ساختار دستور Passwd به صورت زیر می‌باشد:

 passwd [options] [username] 
 

مثال:

Command: passwd 

 

Command [root]: passwd user1 

 

توجه: کاربران عادی با استفاده از sudo می‌توانند به امتیازات root دسترسی پیدا کنند. بدین صورت می‌توانند پسورد را برای خود root نیز تغییر دهند. این امر به‌ویژه هنگامی مفید است که یک کاربر عضو گروه ادمین باشد (در لیست  sudoerها یعنی /etc/sudoers قرار دارد و می‌تواند در دستورات از sudo استفاده کند) و پسورد root تنظیم نشده باشد، که این مورد در بسیاری از توزیع‌های متداول لینوکس وجود دارد.

Command: sudo passwd root 

 

پردازش در دستور passwd:

1) تایید پسورد فعلی کاربر: هنگامی‌که کاربر دستور passwd را وارد می‌نماید، از او پسورد فعلی‌اش را درخواست می‌کند، تا با پسورد ذخیره شده در فایل etc/shadow/ وارسی نماید. کاربر root می‌تواند این مرحله را دور بزند و مستقیماً پسورد را تغییر دهد، بنابراین امکان بازیابی پسوردهای فراموش شده وجود دارد.

2) وارسی اطلاعات زمانی پسورد: در لینوکس، پسوردها می‌توانند دارای یک بازه زمانی اعتبار باشند؛ بدین معنی که پسورد پس از گذشت یک بازه زمانی منقضی شود. علاوه‌براین، می‌توان به گونه‌ای تنظیم نمود که کاربر برای یک بازه زمانی قادر به تغییر پسورد خود نباشد. این اطلاعات زمانی مربوط به پسورد در یک فایل etc/shadow/ ذخیره می‌شود.

3) تغییر پسورد: پس از احراز هویت، از کاربر خواسته می‌شود پسورد جدید خود را وارد کند. پس از آن با وارد کردن مجدد پسورد توسط کاربر، پسورد جدید تأیید می‌شود.

 

این مطلب نیز ممکن است برای شما مفید باشد: نحوه تعویض رمزعبور هاست سی پنل

 

فایل /etc/shadow: فایل shadow لیستی از یکسری مقادیر 9تایی است که با “:” از هم جدا شده اند. مانند تصویر زیر:

user1:$6$x8wAJRpP$EWC97sXW5tqac10Q2TQyXkR.1l1jdK4VLK1pkZKmA2mbA6UnSGyo94Pis074viWBA3sVbkCptSZzuP2K.y.an/:17887:0:99999:7:::

 

هر یک از این 9 مقادیر به شرح زیر می‌باشد.

قسمت 1: نام کاربری.

قسمت 2: پسورد رمزگذاری شده.

قسمت 3: تعداد روزها از 1 ژانویه 1970 تا آخرین بار که پسورد تغییر کرده است.

قسمت 4: حداقل تعداد روزهایی که کاربر نمی‌تواند پسورد را تغییر دهد. (مقدار 0 بدان معنی است که پسورد در هر زمان قابل تغییر است).

قسمت 5: تعداد روزهایی که پس از آن باید پسورد تغییر کند. (مقدار 99999 بدان معنی است که پسورد هرگز منقضی نمی‌شود).

قسمت 6: تعداد روزهایی که به کاربر برای انقضای پسورد هشدار داده می‌شود.

قسمت 7: تعداد روزهایی که پس از منقضی شدن پسورد حساب کاربری غیرفعال می‌شود.

قسمت 8: تعداد روزها از 1 ژانویه 1970 تا زمانی که یک حساب کاربری غیرفعال می‌شود.

قسمت 9: این قسمت برای برخی استفاده‌های احتمالی در آینده در نظر گرفته شده است.

 

گزینه‌های passwd:

d ، -delete-: این گزینه پسورد کاربر را حذف می‌کند و باعث می‌شود تعداد حساب‌های کاربری کمتر شود.

-e ، -expire: این گزینه بلافاصله پسورد حساب کاربری را منقضی می‌کند و کاربر را مجبور به تغییر پسورد در ورود بعدی خود می‌نماید.

 

h ، -help-: جزئیات دستور  passwd را نمایش می‌دهد.

i ، -inactive INACTIVE_DAYS-: این گزینه به همراه یک عدد صحیح می‌آید. INACTIVE_DAYS تعداد روزهای پس از انقضای پسورد را نشان می‌دهد که حساب کاربری غیرفعال می‌شود.

example: passwd -i 3 user1 

k ، -keep-tokens-: این گزینه هنگامی استفاده می‌شود که شما فقط می‌خواهید پسورد خود را که منقضی شده است، تغییر دهید. در صورتی که پسورد هنوز منقضی نشده باشد، حتی اگر درخواست تغییر آن را بدهید، توکن‌های تأیید اعتبار همچنان نگهداری می‌شوند. توجه داشته باشید که اگر مدت انقضاء برای کاربر 99999 تعیین شده باشد، این گزینه توکن‌ها را نگه نداشته و رمزعبور تغییر می‌یابد.

l ، -lock-: پسورد کاربر را قفل می‌کند. این گزینه به انتهای پسورد رمزشده کاربر یک کاراکتر ‘!’ اضافه می‌کند؛ در این صورت پسورد ذخیره شده با هیچ یک از ترکیب‌های پسورد ورودی مطابقت نخواهد داشت. اگرچه با این کار حساب کاربری غیرفعال نمی‌شود؛ اما از ورود کاربر با استفاده از پسورد جلوگیری می‌کند. با این حال سایر روش‌های تأیید اعتبار مانند کلیدهای ssh همچنان برای ورود به حساب کاربری قابل استفاده خواهند بود.

n ، -mindays MIN_DAYS-: حداقل تعداد روزها را با استفاده از MIN_DAYS برای یک بازه زمانی بین دوبار تغییر پسورد تعیین می‌نماید؛ بدین صورت کاربر نمی‌تواند پسورد را تا قبل از گذشت MIN_DAYS تعداد روز دوباره تغییر دهد.

q ، -quiet-: از این گزینه برای حالت سکوت استفاده می‌شود. زمانی که از این گزینه در تغییر پسورد استفاده می‌کنید، پیام “Changing password for $user” که معمولاً قبل از تغییر پسورد چاپ می‌شود، دیگر نمایش داده نخواهد شد.

 

r ، -repository REPO-: از این گزینه برای تغییر پسورد برای مخزن با نام "REPO" استفاده می‌شود.

R ، -root CHROOT_DIR-: این گزینه تغییرات را در دایرکتوری CHROOT_DIR اعمال می‌نماید و از فایل‌های پیکربندی در دایرکتوری CHROOT_DIR استفاده می‌نماید. این گزینه در اصل دایرکتوری root را برای فرآیند passwd تنها یک‌بار تغییر می‌دهد و از آنجایی که CHROOT_DIR یک زیردایرکتوری از root است، نمی‌تواند به فایل‌های پیکربندی خارج از CHROOT_DIR دسترسی پیدا کند.

S ، -status-: وضعیت پسورد (7 فیلد از فیلدهای بالای) کاربر را در فرمت زیر نشان می‌دهد:

user1 P 12/22/2018 0 99999 7 3

اولین فیلد، نام ورود کاربر است. فیلد دوم نشان می‌دهد که آیا حساب کاربری دارای پسورد قفل شده است (L)، یا اینکه اصلا پسورد ندارد (NP)، یا دارای پسورد قابل استفاده است (P). فیلد سوم تاریخ آخرین تغییر پسورد را نشان می‌دهد. چهار فیلد بعدی نیز به ترتیب حداقل زمان، حداکثر زمان، دوره اخطار و دوره عدم فعالیت برای پسورد را نشان می‌دهد. این زمان‌ها و دوره‌ها به‌صورت روز بیان می‌شوند.

S [ ، –status] -a [ ، –all]-: این ترکیب از گزینه‌ها وضعیت پسورد را برای همه کاربران نشان می‌دهد. توجه داشته باشید که a- یا all- بدون گزینه S- قابل استفاده نیست.

u ، -unlock-: پسورد یک حساب کاربری را از حالت قفل بیرون می‌آورد.

w ، -warndays WARN_DAYS-: از این گزینه برای تغییر زمان اعلام اخطار برای انقضای پسورد استفاده می‌شود.

x ، -Maxdays MAX_DAYS-: حداکثر تعداد روزهایی را که پسورد معتبر است، تعیین کنید. پس از گذشت MAX_DAYS، پسورد منقضی می‌شود و کاربر باید پسورد خود را تغییر دهد.

 

 

منبع:

geeksforgeeks