다른 사용자의 홈 디렉토리에서 mkdir에 루트를 사용하십시오.

다른 사용자의 홈 디렉토리에서 mkdir에 루트를 사용하십시오.

다른 사용자의 폴더 아래에 폴더를 만드는 데 문제가 있습니다 /home/devuser1/pubic_html. 사용을 자제 sudo하고 대안을 찾아보려고 합니다 . 이 폴더의 권한은 다음과 같습니다.

drwxr-s--- 2 devuser1  www-data 4096 Apr 28 19:40 public_html

아니면 sudo접두사를 사용한다고 가정하면 어떤 영향이 있나요? sudo폴더 생성을 사용하는 것은 나쁜 습관이라는 것을 읽었습니다 . 새 폴더를 만든 후에도 소유권을 관련 사용자로 변경했습니다. 예:

chown -vR devuser1:www-data /home/devuser1/public_html/$vhost

답변1

다음을 사용하여 install특정 소유자, 그룹 및 모드로 디렉터리를 만들 수 있습니다 .

install -d -o <user> -g <group> -m <mode> <path>

답변2

sudo -u [username] mkdir /home/[username]/public_html/[folder_name]잘 작동합니다.

내가 아는 한, 동일한 사용자로 로그인하고 public_html.

당신은 또한 전화할 수 있습니다su -c "mkdir /home/[username]/public_html/[folder_name]" [username]

답변3

이러한 권한이 주어지면 디렉터리 소유자나 수퍼유저만 하위 디렉터리를 만들 수 있습니다.

폴더를 생성하기 위해 추가 권한을 사용하지 않을 수 있는 유일한 방법은 소유권을 자신에게로 변경하고( 사용하여 sudo) 하위 디렉터리를 생성한 다음 결국 소유권을 소유자에게 반환하는 것입니다. 그러나 이는 나에게 좋은 해결책이 아닌 것 같습니다.

답변4

하나 만들어 보려고 했는데 mkdir -p /srv/postgres/data/mydir왜냐면

drwxr-xr-x 3 root root 4.0K Apr 7 08:26 srv주인이 있다root

어느 것도 아니다install -d -o <user> -g <group> -m <mode> <path> @user2313838

sudo -u postgres mkdir -p /srv/postgres/data/mydir좋지도 않아@maGz

해결책은 두 명령으로 분할하는 것입니다.

sudo mkdir -p /srv/postgres/data/mydir
sudo chown postgres:postgres /srv/postgres -R

관련 정보