다음과 같은 파티션 구성을 가진 USB 썸스틱이 있습니다.
sdb
sdb1 -> root partition '/'
sdb2 -> /home partition
Live CD에서 부팅하거나 컴퓨터 하드웨어의 현재 Ubuntu OS에서 부팅하는 경우 chroot
다음을 수행할 수 있습니다.
mount /dev/sdb1 /mnt
mount /dev/sdb2 /mnt/home
chroot /mnt /bin/bash
이 경우 내 프롬프트는 다음과 같습니다 [root@archiso]
. 문제는 내 사용자 계정에 로그인하고 싶지만 /mnt/home/me
방법을 모른다는 것입니다. 추가 목표는 이 사용자 세션에서 X(및 모든 데스크톱 관리자)를 시작하는 것입니다.
그래서 내가 해결해야 할 문제는 다음과 같습니다.
1) chroot 후 내 사용자 세션에 어떻게 로그인합니까?
2) 일단 로그인하면 startx
처음에 Ubunu OS를 사용하여 컴퓨터에 로그인했고 gnome 세션이 이미 실행 중인데도 X를 시작할 수 있습니까?
답변1
chroot
질문에 설명된 대로 수행한 다음su - fred
(또는 귀하의 이름이 무엇이든) 또는 을 수행하십시오exec su - fred
.- chroot 환경에서 가장 먼저 실행되도록
chroot /mnt /bin/su - fred
실행 합니다 .su
위의 두 가지 모두 fred
사용자가 에 있다고 가정합니다 /mnt/etc/passwd
.
또는
실행하여
chroot --userspec=fred:bedrock --groups=group1,group2 /mnt /bin/bash
chroot에서 시작하여 사용자 ID를 설정합니다. 이것chroot
매뉴얼 호출설명하다,--userspec
및 옵션에 의해 수행되는 사용자 이름 및 그룹 이름 조회는--groups
chroot 외부 및 내부에서 수행되며 chroot 내부의 성공적인 조회가 우선적으로 수행됩니다.마치 로그인 쉘로 호출된 것처럼 동작하도록 지시하려면
-l
(또는--login
) 을 추가하는 것을 고려하십시오 . 즉, 읽기 등 을 지시하십시오.bash
/etc/profile
~/.bash_profile
질문은 "루트가 변경된 후 어떻게 사용자 세션에 로그인합니까?"입니다. 대부분의 경우 문자 그대로의 대답인 가
chroot /mnt /bin/login
작동할 것입니다. 이것이 작동하면 사용자 이름과 비밀번호를 요청한다는 점에서 일반 로그인과 가장 유사합니다. 이것은 (어쨌든)who
chroot 환경의 명령이 사용자 이름(및 로그인 시간 등)을 보고하도록 하는 유일한 대답이며 아마도 환경의 보다 난해한 기능 중 일부를 사용하는 가장 좋은 대안일 것입니다. (나는cron
//crontab
,at
명령passwd
, 파일 시스템 할당량, 회계 시스템 등에 대한 [추측]을 생각하고 있습니다. 이러한 소프트웨어나 다른 소프트웨어가 실제 데이터 UID를 보는 것만으로는 만족하지 못할 수 있는지 또는 왜 그런지 모르겠습니다.) 물론 , 처음 두 개와 달리 대답은 동일합니다. 이는chroot
ed 환경에 정의된 사용자 및 비밀번호에 대해 작동합니다.이 방법은 작동하지 않을 수 있습니다. 일부 버전
login
에서 비표준 방식(이와 같은)으로 작동하고 있음을 감지하고 협조를 거부했던 것을 막연하게 기억하는 것 같습니다 . 하지만 구체적인 내용은 기억나지 않고, 2분 동안 검색해도 아무것도 찾을 수 없었습니다.