홈 디렉터리 주소를 txt 파일에 저장하려면 다른 사용자로 Sudo하세요.

홈 디렉터리 주소를 txt 파일에 저장하려면 다른 사용자로 Sudo하세요.

사용자 홈 디렉토리를 users.txt 파일에 저장하려고 하는데 내 홈 디렉토리만 계속 저장하고 있습니다. 스크립트는 사용자에게 $username에 저장한 사용자 이름을 입력하도록 요청합니다. 내가 달릴 때

ls ~ >> users.txt

ls home/student/am1014(내 사용자 이름)이 표시됩니다 .

저장하려면 sudo를 사용해야 한다고 가정하지만 방법을 잘 모르겠습니다.

답변1

안에:

sudo -u joe ls ~

~명령(여기)을 실행하기 전에 쉘에 의해 확장되므로 sudo실제로는 다음이 실행됩니다.

sudo -u joe ls /home/me

joe의 홈 디렉토리 내용을 나열하려면 다음을 수행하십시오 .

ls ~joe

또는 그의 홈 디렉토리에 대한 읽기 액세스 권한이 없는 경우:

sudo -u joe ls ~joe

또는 쉘 실행의 경우~처럼joe확장하려면 ~:

sudo -u joe sh -c 'ls ~'

csh// tcsh를 제외하고 사용자 이름이 변수에 있는 경우 접근 방식을 zsh사용할 수 없습니다 . ls ~joe껍질에 따라

user=joe
echo ~$user

또는 ./home/mejoe~joe에서 (문자 그대로) bash라는 사용자가 있으면 $user해당 사용자의 홈 디렉터리가 반환됩니다.

여기에는 다음이 필요합니다.

eval "ls ~$user"

$user( 미리 유효한 사용자 이름이 포함되어 있는지 확인했을 것입니다 ).

답변2

다음 명령은 읽고 /etc/passwd출력합니다username : home-dir

awk -F: '{print $1":" $6}' /etc/passwd

출력은 다음과 같습니다.

root:/root
daemon:/usr/sbin
bin:/bin
sys:/dev
sync:/bin
games:/usr/games

다음을 사용하여 출력을 파일로 리디렉션할 수 있습니다.

awk -F: '{print $1":" $6}' /etc/passwd > result.txt

관련 정보