내가 입력하면 cd ~username
이렇게 나온다.
Can't find /home2/username
실제로 ~username
존재하며 /home3
작동하곤 했습니다. 이상한 일은 일어나지 않았습니다. 어쨌든 Linux는 내 파일이 모두 /home2
거기에 있다고 생각합니다. 어제는 잘 작동했습니다. 그러면 나는 다음을 본다:/home3
/home3
/home2
root pts/6 139.193.156.125 Thu Aug 29 05:48 still logged in
root pts/5 ng1.cptxoffice.n Thu Aug 29 05:43 still logged in
root pts/4 139.193.156.125 Thu Aug 29 05:35 still logged in
root pts/3 139.193.156.125 Thu Aug 29 05:31 still logged in
root pts/2 139.193.156.125 Thu Aug 29 05:12 still logged in
root pts/1 139.193.156.125 Thu Aug 29 02:20 still logged in
root pts/0 139.193.156.125 Thu Aug 29 01:34 still logged in
reboot system boot 2.6.32-279.22.1. Wed Aug 28 17:00 - 05:48 (12:48)
reboot system boot 2.6.32-279.22.1. Wed Aug 28 11:33 - 16:46 (05:13)
root pts/0 139.193.156.125 Mon Aug 26 05:12 - 01:23 (20:11)
root pts/0 139.193.156.125 Wed Aug 21 20:51 - 22:07 (01:15)
root pts/1 139.193.156.125 Wed Aug 21 06:50 - 22:01 (15:11)
주인의 상황은 잘 모르겠습니다 ng1.cptxoffice.net
.
리눅스가 or ~freemark
에 속하도록 어떻게 말합니까 ?/home2
/home3
/home2
에서 로 또는 /home3
그 반대로 소프트 링크를 배치하여 문제를 일시적으로 해결할 수 있었습니다 . 그러나 애초에 이런 일이 발생하는 이유는 이해할 수 없습니다.
답변1
먼저, 계정의 홈 디렉터리가 어떻게 설정되어 있는지 알아야 합니다. 이는 다음 명령을 실행하여 찾을 수 있습니다.
getent passwd username | cut -d: -f6
( username
사용자 이름은 어디에 있습니까?) 나는 그것이 다음과 같을 것이라고 상상한다 /home/username
. 이 경우 /home3/username
홈 디렉터리를 설정해야 할 수도 있습니다.
usermod -d /home2/username username
(루트로 실행해야 합니다. 또는 sudo
sudoers 파일에 액세스할 수 있는 경우 루트로 실행해야 합니다.)
sudo usermod -d /home2/username username
위의 경우가 아니고 명령이 getent
홈 디렉토리를 로 반환하는 경우 해당 디렉토리가 이미 심볼릭 링크인지 /home
확인해야 합니다 ./home
ls -ld /home
출력이 다음 형식인 경우(심볼릭 링크 표시 및 home3 확인):
lrwxr-xr-x 1 root root 4 Aug 29 13:37 home@ -> home3
그런 다음 home3을 가리키는 심볼릭 링크가 이미 있으므로 이를 변경해야 합니다.
rm /home ; ln -sf /home2 /home3
문제를 진단하려면 루트 계정에 액세스할 수 있는 경우 파일을 확인하십시오 ~root/.bash_history
. 사용자가 경로를 변경한 것으로 보입니다. 다음 명령을 실행하여 로그인 세션을 종료할 수도 있습니다.
ps ua | grep '[p]ts/5'
다음과 같이 출력되어야 합니다.
root 19687 0.0 0.1 26896 9732 pts/5 Ss+ Aug20 0:00 -bash
그런 다음 관련 프로세스 ID(ps 명령 출력의 두 번째 열)를 다음 명령에 전달하여 세션을 종료할 수 있습니다 kill
.
kill -15 19687
일반적으로 원격 루트 액세스를 허용하는 것은 매우 나쁜 습관입니다. 원격 호스트에서 루트 액세스를 얻으려면 루트가 아닌 계정과 sudo를 사용하는 것이 좋습니다. 루트 계정도 노출됐다그리고설정하는 것은 PasswordAuthentication yes
정말 나쁜 습관입니다.특히비밀번호가 무차별 대입 공격을 받아 호스트가 손상될 수 있으므로 비밀번호가 취약한 경우(예: 여기에서 발생할 수 있는 일)
호스트에 원격으로 액세스할 수 있고 모든 명령을 루트로 실행할 수 있는 sudo 권한이 있는 루트가 아닌 계정이 있는 경우 루트 비밀번호를 변경 sudo passwd
하고 원격 호스트가 다음과 같이 연결할 수 없도록 /etc/ssh/sshd_config
해당 비밀번호를 설정하도록 변경하는 것이 좋습니다. PermitRootLogin no
뿌리. 다음과 같이 설정되면 sshd를 다시 시작해야 합니다.
/etc/init.d/sshd restart
(이는 /etc/init.d/ssh restart
운영 체제에 따라 다를 수 있습니다). 나중에 루트 셸이 필요한 경우 루트가 아닌 사용자로 호스트에 ssh를 실행하고 exec sudo bash
루트 셸을 얻으려면 실행하세요.