چرا نباید از ویرایشگر متنی مانند vi برای ویرایش دستی فایل های etc/group , /etc/passwd/ و etc/shadow/ استفاده کرد؟
فرض کنید کاربر root در حال ویرایش فایل ها توسط یک ویرایشگر مانند vi است در همین لحظه یک کاربر اقدام به تعویض گذرواژه خود می کند اما به دلیل اینکه فایل توسط کاربر root و با یک ویرایشگر و معمولی باز شده است تغییرات کاربر در فایل نوشته نمی شود. برای جلوگیری از بروز چنین مشکلی از دو دستور vipw و vigr به ترتیب برای ویرایش فایل etc/passws/ و etc/group/ استفاده می کنیم.
وقتی فایل ها را با این دو دستور باز می کنید، این فایل ها قفل می شوند و در آن لحضه فقط کاربری که آنرا باز کرده می تواند در آن بنویسد. (توجه داشته باشید که این فایل ها فقط خواندنی یا Read-only هستند و فقط کاربر root حق تغییر آنها را دارد ولی همه کاربران می توانند فایل های passwd و group را بخوانند ولی این کاربران حتی حق خواندن فایل های shadow و gshadow را ندارند). برای استفاده از این دستور ها تنها نوشتن نام آنها کافیست و نیازی به نوشتن مسیر منتهی به خود فایل ندارید.
فرض کنید کاربر root با دستور vipw را باز کرده است و می خواهد با دستور useradd یک کاربر جدید را هم ایجاد کنید.اما سیستم اجازه این کار را نمی دهد و به محض اجرای دستور useradd USER_NAME خطای زیر را نشان می دهد. این خطا می گوید که چون فایل etc/passwd/ در حال حاضر توسط دستور vipw باز شده است، امکان نوشتن در آن وجود ندارد.
بطور خلاصه می توان بصورت زیر گفت :
نویسنده نامی امیر
فرض کنید کاربر root در حال ویرایش فایل ها توسط یک ویرایشگر مانند vi است در همین لحظه یک کاربر اقدام به تعویض گذرواژه خود می کند اما به دلیل اینکه فایل توسط کاربر root و با یک ویرایشگر و معمولی باز شده است تغییرات کاربر در فایل نوشته نمی شود. برای جلوگیری از بروز چنین مشکلی از دو دستور vipw و vigr به ترتیب برای ویرایش فایل etc/passws/ و etc/group/ استفاده می کنیم.
وقتی فایل ها را با این دو دستور باز می کنید، این فایل ها قفل می شوند و در آن لحضه فقط کاربری که آنرا باز کرده می تواند در آن بنویسد. (توجه داشته باشید که این فایل ها فقط خواندنی یا Read-only هستند و فقط کاربر root حق تغییر آنها را دارد ولی همه کاربران می توانند فایل های passwd و group را بخوانند ولی این کاربران حتی حق خواندن فایل های shadow و gshadow را ندارند). برای استفاده از این دستور ها تنها نوشتن نام آنها کافیست و نیازی به نوشتن مسیر منتهی به خود فایل ندارید.
فرض کنید کاربر root با دستور vipw را باز کرده است و می خواهد با دستور useradd یک کاربر جدید را هم ایجاد کنید.اما سیستم اجازه این کار را نمی دهد و به محض اجرای دستور useradd USER_NAME خطای زیر را نشان می دهد. این خطا می گوید که چون فایل etc/passwd/ در حال حاضر توسط دستور vipw باز شده است، امکان نوشتن در آن وجود ندارد.
کد PHP:
vipw lockfile (/etc/ptmp) is present
کد PHP:
vipw -> open /etc/passwd
کد PHP:
vigr -> open /etc/group