دستور passwd

**passwd** نام دستوری در اکثر سیستم‌عامل‌های یونیکس و شبه یونیکس است که توسط آن کاربران می‌توانند کلمه عبور خود را تغییر دهند. کلمه عبوری که کاربر وارد می‌کند، با استفاده از یک تابع اشتقاق کلید به صورت درهم‌شده درمی‌آید که این نسخه درهم‌شده ذخیره می‌شود. بنا به دلایل امنیتی، نسخه اصلی کلمه عبور ذخیره نمی‌شود و تنها نسخه درهم‌شده ذخیره می‌شود. وقتی که کاربر وارد سیستم می‌شود، کلمه عبوری که در حین ورود به سیستم وارد کرده مجدداً با استفاده از همان تابع اشتقاق کلید به صورت درهم درمی‌آید و نتیجه عملیات با نسخه‌ای که ذخیره شده مقایسه می‌شود، اگر برابر بودند، کاربر اجازه ورود به سیستم می‌یابد.

فایل ‎/etc/passwd
-----------------

فایل ‎/etc/passwd دربرگیرنده اطلاعات مربوط به کاربران سیستم است. در این فایل، به ازای هر کاربر جدیدی که تعریف میکنید، یک خط اضافه می‌شود که هر خط از هفت فیلد تشکیل شده که این فیلدها با کاراکتر ‘:’ از هم جدا می‌شوند.

مثال:

```
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
```

این فیلدها از قرار زیر هستند:

فیلد اول: نام کاربری، از این نام برای ورود به سیستم استفاده می‌شود.

فیلد دوم: این فیلد حاوی کلمه عبور کاربر است. این کلمه عبور به صورت رمزنگاری شده نوشته می‌شود و انتخابی است.

فیلد سوم: UID کاربر. در سیستم‌های unix-base هر کاربری یک شماره منحصربه‌فرد دارد.(چیزی مثل شماره شناس‌نامه یا شماره دانشجویی)

فیلد چهارم: GID گروه کاربر. هر کاربر حداقل عضو یک گروه است و هر گروه هم یک شماره منحصربه‌فرد دارد.

فیلد پنجم: این فیلد خود به چند فیلد دیگر تقسیم می‌شود که با ‘,’ از هم جدا می‌شوند.

فیلد اول: حاوی نام کامل و واقعی کاربر است (هنگام ارسال و دریافت ایمیل، این نام نمایش داده می‌شود.)

فیلد دوم: شماره اتاق کاربر.

فیلد سوم: شماره تلفن محل کار کاربر

فیلد چهارم: شماره تلفن خانه کاربر

فیلد پنجم:اطلاعات دیگر

فیلد ششم: مسیر کامل دایرکتوری خانگی کاربر است.( دایرکتوری خانگی جاییست که کاربر دسترسی کامل به آن دارد و فایل‌های شخصی اش را در آنجا نگهداری می‌کند.)

فیلد هفتم: مسیر کامل پوسته (shell) پیشفرض کاربر در این فیلد نوشته می‌شود.

فیلد دوم که حاوی کلمه عبور رمزنگاری شده کاربر است می‌تواند خالی باشد. در این صورت هیچ پسوردی برای احراز هویت از کاربر سؤال نمی‌شود. در صورتی که این فیلد خالی باشد، بعضی از برنامه‌ها که فایل ‎/etc/passwd را میخوانند، ممکن است که اجازه هیچگونه دسترسی به کاربر ندهند. اگر فیلد کلمه عبور حاوی یک کاراکتر ‘x’ (به صورت کوچک) باشد، کلمه عبور واقعی کاربر در فایل ‎/etc/shadow ذخیره می‌شود. در این صورت فایل ‎/etc/shadow حتماً باید حاوی یک خط برای این کاربر باشد وگرنه این نام کاربری غیر معتبر محسوب می‌شود.

اگر این فیلد حاوی هر رشته دیگری باشد، با آن رشته همانند یک کلمه عبور رمزنگاری شده برخورد خواهد شد.

فیلد پنجم توسط بعضی از برنامه‌های کاربردی مثل finger استفاده می‌شود.

فیلد ششم نشان دهنده دایرکتوری خانگی کاربر است. دایرکتوری خانگی کاربر جاییست که وقتی کاربر به سیستم وارد می‌شود در آنجا قرار میگیرد. برنامه login از این فیلد برای مقدار دهی به متغیر محیطی ‎$HOME استفاده میکنند.

فیلد هفتم مشخص‌کننده پوسته پیشفرض کاربر است. البته می‌توانید آدرس هر برنامه دیگری را هم بنویسید. در این صورت آن برنامه به هنگام ورود کاربر اجرا خواهد شد. اگر این فیلد را خالی بگذارید پوسته پیشفرض که معمولاً ‎/bin/sh است برای کاربر در نظر گرفته می‌شود.

همیشه سعی کنید از ترکیب اعداد و حروف کوچک و بزرگ در پسورد خود استفاده نمایید. استفاده از Space (فاصله) و Shift+123 (@#$ %^&\*) تا حد زیادی از لو رفتن پسورد جلوگیری میکند.

فایل ‎/etc/passwd- یک پشتیبان از این فایل است.

منابع
-----

* مشارکت‌کنندگان ویکی‌پدیا. «Passwd». در *دانشنامهٔ ویکی‌پدیای انگلیسی*، بازبینی‌شده در ۴ بهمن ۱۳۹۲.

| * ن
* ب
* و
برنامه‌های واسط خط فرمان یونیکس و shell builtins |
| --- |
| سامانهٔ پرونده | 
* cat
* cd
* Chmod
* Chown
* Chgrp
* چک‌سام (دستور لینوکس)
* cmp
* CP
* dd
* du
* df
* file
* Fsck
* fuser
* ln
* Ls
* Mkdir
* Mount
* Mv
* pax
* Pwd
* rm
* Rmdir
* size
* split
* tee
* دستگاه حسی‌تنی
* type
* umask

 |
| فرایندها | 
* at
* bg
* Chroot
* cron
* fg
* Kill
* Killall
* nice
* pgrep
* Pkill
* ps
* Pstree
* time
* top

 |
| محیط کاربری | 
* clear
* Env
* exit
* finger
* history
* فهرست ابزارهای یونیکس
* logname
* mesg
* Passwd
* اس‌یو
* Sudo
* uptime
* talk
* tput
* Uname
* W (یونیکس)
* wall
* who
* Whoami
* write

 |
| پردازش متن | 
* awk
* banner
* basename
* comm
* csplit
* cut
* Diff
* Dirname
* ed
* ex
* fmt
* fold
* head
* iconv
* join
* less
* more
* nl
* paste
* Sed
* sort
* spell
* رشته‌ها (یونیکس)
* دم (عضو)
* TR
* uniq
* وی‌آی
* wc
* xargs

 |
| Shell builtins | 
* alias
* echo
* expr
* printf
* sleep
* test
* true and false
* unset
* Wait
* Yes

 |
| شبکه | 
* dig
* host
* Ifconfig
* inetd
* nc
* Netstat
* nslookup
* Ping
* rdate
* rlogin
* route
* ssh
* Traceroute

 |
| جستجو | 
* find
* Grep
* locate
* whatis
* whereis

 |
| مستندسازی | 
* apropos
* help
* man

 |
| گوناگون | 
* bc
* dc
* cal
* lp
* od

 |
| *فهرست ابزارهای یونیکس* |