다른 사용자 홈 디렉토리에서 mkdir에 root 사용


27

다른 사용자의 /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

답변:


31

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

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

29

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

동일한 사용자로 로그인하고 아래에 폴더를 만들면 권한 및 소유권이 동일하다는 것을 알 수 있습니다 public_html.

전화 할 수도 있습니다 su -c "mkdir /home/[username]/public_html/[folder_name]" [username]


2
당신이 실행하면 sudo -u USERNAME mkdir DIRNAME, 당신은 실행중인 mkdir사용자로 명령을 USERNAME. 로그인은 USERNAME환경 변수 등을 설정하는 것을 의미하기 때문에 로 로그인하는 것과 정확히 동일 하지는 않지만 중요한 것은 즉, 특정 사용자로 프로세스를 실행하는 것입니다.
Gilles 'SO- 악마 그만해'

1
또한 해당 사용자에게는 권한이 없을 수 있습니다.
mahemoff

1

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

폴더를 만들기 위해 추가 권한을 사용하지 않는 유일한 방법은을 (를 sudo) 사용하여 소유권을 변경 하고 하위 디렉토리를 만든 다음 마지막으로 소유권을 소유자에게 반환하는 것이지만 나에게 좋은 해결책은 아닙니다.


응, 이거 힘들어 이것은 어리석은 질문이지만 내 옵션은 무엇입니까?
maGz

해당 사용자로 명령을 실행하는 방법은 무엇입니까 (루트로) ?: sudo -u devuser1 mkdir /home/devuser1/public_html/test. 폴더를 만드는 것과 동일하지 sudo않습니까? ls -aldrwxr-sr-x 2 devuser1 www-data 4096 Apr 28 23:49 test
maGz

어쩌면 나는 순진하지만, 그 sudo후에 소유권을 변경하는 한 폴더를 만드는 데 악을 보지 못합니다 .
RSFalcon7

무엇에서 ls사용자의의 내용을 보여 public_html,이 같은 변화 소유권이 필요하지 않습니다하지만, 어쩌면 권한 불구하고 나타납니다.
maGz

나는 또한 이것을 생각하는 데 순진하다고 생각합니다. 폴더를 생성하지 않고 폴더를 생성 할 사용자로 자신 su인증 하기 위해 폴더를 사용하고 있습니다 ... 합리적입니까?
maGz

0

나는 노력했지만 노력 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

@maGzsudo -u postgres mkdir -p /srv/postgres/data/mydir작동 하지 않습니다

그래서 나는 두 가지 명령으로 나누었습니다.

sudo mkdir -p /srv/postgres/data/mydir
sudo chown postgres:postgres /srv/postgres -R
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.