![다른 사용자로 디렉터리 및 하위 디렉터리 만들기 [닫기]](https://linux55.com/image/82499/%EB%8B%A4%EB%A5%B8%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A1%9C%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%20%EB%B0%8F%20%ED%95%98%EC%9C%84%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%20%EB%A7%8C%EB%93%A4%EA%B8%B0%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
다른 사용자로 쉘 스크립트 내부에서 디렉토리와 하위 디렉토리를 생성하려고 합니다.
문제는 root
소유권을 가지고 디렉토리가 생성되도록 스크립트를 실행하고 있다는 것입니다. 디렉터리 및 하위 디렉터리 이름이 포함된 텍스트 파일이 있고 root
이 작업을 수행하기 위해 다음 명령을 사용하고 있습니다.
cat dirname.txt | xargs -L 1 mkdir
다음과 같습니다.
cet/mnt
cet/mnt/jkl
cet/mnj/lok
시도했지만 sudo
상위 디렉터리만 필요한 사용자 소유권을 얻습니다.
답변1
왜 이렇게 하면 안 되나요?
user="foo"
group="bar"
perm=741
for dir in $(cat dirname.txt); do
mkdir ${dir}
chown ${user}:${group} ${dir}
chmod -R ${perm} ${dir}
done
향후 변경을 더 쉽게 만들려면 변수를 활용하는 것이 가장 좋습니다. 한 줄 대신 디렉터리 목록을 반복하는 것도 유지 관리가 더 쉽습니다.
답변2
다음과 같이 시도해 보세요:
cat dirName.txt | xargs -L 1 sudo -u ubuntu mkdir -p