اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

حل مشکل Could not chdir to home directory /home/behrooz: No such file or directory

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    حل مشکل Could not chdir to home directory /home/behrooz: No such file or directory

    من یک سرور Ubutu 12.4 دارم وقتی با دستور useradd یک user روش تعریف میکنم و بعدش با اون یوزر به سرور ssh میکنم با پیغام Could not chdir to home directory /home/behrooz: No such file or directory مواجه میشم و اینکه برای یوزری که ساختم bash نداره و وقتی میخوام کامندها رو تایپ کنم دکمه TAB کار نمیکنه و باید همه رو خودم دستی و به صورت کامل تایپ کنم. مشکل دوم اینکه کاربرم home directory نداره و این مشکل بزرگی هستش برام. چون وقتی یوزرها لاگین میکنند به سرور، توی home directory شون یه فایل .bash_history ایجاد میشه که از طریق اون میتونید بفهمید که هر یوزری از چه کامندهایی استفاده کرده و از این قبیل چیزها.
    کد PHP:
    Could not chdir to home directory /home/shahabNo such file or directory
    $

    برای حل مشکل نداشتن bash اگر دستور bash رو تایپ کنید که یوزر شما به مد bash بره سپس میتونید دستورات تون رو راحت تایپ کنید. ولی این کار جالبی نیست که هرسری لاگین کردید کامند bash رو تایپ کنید.
    کد PHP:
    bash
    behrooz
    @voip:/$ 
    برای حل مشکل نداشتن bash باید اون رو به صورت دائمی درست کنید که چند تا کار میشه انجام داد که در ادامه به آن میپردازیم.

    روش اول : شما وقتی که یک یوزر توی سرور ایجاد میکنید اسم کاربر به فایل etc/passwd هم اضافه خواهد شد که اطلاعات کاربر از جمله نام یوزر، شماره GID, UID و مشخصات دایرکتوری home کاربر و همچنین نوع دسترسیش به shell را نمایش میدهد. فایل passwd را با استفاده از یک ادیتور باز کرده. و یوزر مورد نظرتون رو پیدا کنید. در اینجا من با دستور useradd mohammad یک یوزر دیگه به نام mohammad درست کردم. همونطور که در پایین مشاهده میکنید فایل passwd را باز کردم و shell یوزر mohammad به صورت bin/sh هستش. برای اینکه به شل کامل دسترسی داشته باشه باید bin/sh را به bin/bash تغییر دهیم :
    کد PHP:
    mohammad:x:1004:1004::/home/mohammad:/bin/sh 
    بخشی که نوشته /bin/sh را ادیت کرده و به جای sh بنویسید bash :
    کد PHP:
    mohammad:x:1004:1004::/home/mohammad:/bin/bash 
    مجددا که با یوزر mohammad لاگین کنید و مشاهده خواهید کرد که به bash دسترسی دارید و میتونید کارهاتون رو انجام بدید.

    روش دوم : استفاده از دستور usermod با آپشن -s برای تغییر شل کاربر میباشد :
    کد PHP:
    # usermod -s /bin/sh mohammad
    OR
    # usermod -s /bin/bash mohammad 
    روش سوم : اینکه دستور useradd در اوبونتو 12.4 تنظیمات پیش فرض کاربران رو انجام نمیده. و توصیه میشه که از دستور adduser استفاده کنید. شما میتونید یوزر جدیدی که درست کردید رو حذف کنید و اونو با دستور adduser دوباره بسازید. وقتی با دستور adduser کار کنید موقع ساخت یوزر هم برای کاربر دایرکتوری home رو درست میکنه و هم bash کاربر رو ایجاد میکنه.

    روش چهارم : این هست که شما یوزرتون رو با دستور useradd ساختید ولی بدون اینکه حذفش کنید میخواید home دایرکتوری براش ایجاد کنید و دسترسی bash رو هم بهش بدید. برای این کار اول یک دایرکتوری توی مسیری که میخواید home directory کاربر اونجا باشه را درست کنید، همانند دستورات زیر در اینجا من توی مسیر home یک دایرکتوری برای یوزر linuxzone درست کردم. بعدش دسترسی bash رو به user و دایرکتوری home کاربر linuxzone دادم سپس مالکیت یا owner دایرکتوری linuxzone هم به خود یوزر linuxzone دادم و بعدش فایل های مورد نیاز از جمله .bash_logout و .bashrc و .profile برای پروفایل کاربر رو از مسیر /etc/skel به دایرکتوری کاربرم انتقال دادم.

    کد PHP:
    root@voip:~# mkdir /home/linuxzone
    root@voip:~# usermod --shell /bin/bash --home /home/linuxzone linuxzone
    root@voip:~# chown -R linuxzone:linuxzone /home/linuxzone/
    root@voip:~# cp /etc/skel/.
    ./            ../           .bash_logout  .bashrc       .profile
    root
    @voip:~# cp /etc/skel/.bash_logout .bashrc .profile /home/linuxzone/
    root@voip:~#
    root@voip:~# ls -la /home/linuxzone/
    total 20
    drwxr
    -xr-x 2 linuxzone linuxzone 4096 Nov 26 16:51 .
    drwxr-xr-x 8 root      root      4096 Nov 26 16:50 ..
    -
    rw-r--r-- 1 root      root       220 Nov 26 16:51 .bash_logout
    -rw-r--r-- 1 root      root      3711 Nov 26 16:51 .bashrc
    -rw-r--r-- 1 root      root       140 Nov 26 16:51 .profile
    root
    @voip:~
    توجه داشته باشید که فایل bash_history که کامندهایی که کاربر وارد استفاده کرده رو نمایش میده بعد از لاگین کردن کاربر به صورت اتوماتیک خودش ایجاد میکنه.
    امیدوارم آموزش به دردتون خورده باشه. موفق باشید.
    اینستاگرام انجمن لینوکس ایران : https://www.instagram.com/iranlinuxforum

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X