저는 Linux 서버를 처음 사용합니다.
이것에 대해 나를 당황하게 만드는 두 가지 질문이 있습니다.
1 1. user:group 이제 /var/www/html을 이렇게 표시합니다.
내 nginx.conf
것이 설정되었습니다server{ user www-data }
터미널에서 내가 설정한
chown -R root:www-data /var/www/html find /var/www/html -type d -exec chmod 775 {} + find /var/www/html -type f -exec chmod 664 {} + find /var/www/html/uploads/images -type d -exec chmod 775 {} +
내가 옳은 일을 하고 있는 걸까? 아니면 www-data:www-data로 설정해야 합니까?
2 2. crontab에 관해서는 많은 TUT가 있지만 누가 crontab을 운영하는지 명확하지 않습니다. 문제는
adam
사용자로 로그인했는데 내 서버가 해당 사용자에게 속해 있으면 어떻게 되나요 root:www-data
? 아니면 사용자 www-data:www-data
대신 해당 사용자에게 crontab을 어떻게 제공합니까 ? adam
백업 등의 파일을 쓰려면 퍼머넌트가 필요하기 때문이다.
답변1
1) 일반적으로 의 파일은 및 /var/www
에 속해야 하며 , 자체 및 모든 하위 디렉터리는 에 속해야 합니다 .root:www-data
chmod 644
/var/www
chmod 755
그들은해야아니요www-data
다음을 제외하고 는 사용자가 쓸 수 있습니다 .꼭 필요한(실행 파일의 경우 3배입니다.) www-data
웹 서버 자체 또는 웹 서버가 실행하는 스크립트를 손상시키려는 공격자가 쓰기 가능한 파일을 수정할 수 있기 때문입니다( suexec
일반적으로 웹 서버 대신 스크립트 소유자의 권한을 사용하지 않는 한). 그다지 좋아지지 않고 더 나빠질 수도 있습니다). 아무 것도 쓸 수 없다면 www-data
접근 권한을 얻은 공격자가 입는 피해는 www-data
크게 줄어듭니다.
2) cron
작업은 작업을 호출한 사용자에 의해 실행됩니다 crontab
. 루트의 crontab에 있으면 루트로 실행됩니다. Adam의 crontab에 있으면 adam으로 실행됩니다.
/etc
( 등) 아래의 시스템 전체 crontab 은 예외입니다 /etc/crontab
. /etc/cron.d/*
이러한 crontab의 작업 사양 형식에는 작업을 실행하는 사용자를 지정하는 추가 필드가 포함되어 있습니다.
답변2
(1) chmod
과 chown
다른 명령입니다. 첫 번째는 권한을 설정하고 두 번째는 소유권을 설정합니다. 당신은 또한 실행하고 싶을 수도 있습니다
`find /var/www/html -exec chown www-data:www-data {} +`
이미 실행한 명령 외에도 선택할 수 있습니다.
(2) 사용자가 크론 작업을 실행할 수 있도록 편집 /etc/cron.allow
하고 추가 할 수 있습니다. 필요한 경우 또는 이에 대한 추가 정보를 제공해야 합니다 .www-data
www-data
man cron
man crontab