저는 프로덕션 서버에서 일하고 있습니다. 일일 크론 작업이 있으며 파일 시스템 권한은 다음과 같습니다.
cron.daily$ ls -Al
total 24
-rwxr-xr-x 1 root root 332 Dec 3 10:33 0yum-daily.cron
-rwxr-xr-x 1 root root 2239 Jun 9 2014 certwatch
-rwxr-x--- 1 root root 953 Aug 29 2015 gdrive-backup
-rwx------ 1 root root 180 Jul 31 2013 logrotate
-rw-r--r-- 1 root root 618 Mar 17 2014 man-db.cron
-rw-r----- 1 root root 192 Jan 26 2014 mlocate
하나의 작업을 제외한 모든 작업은 CentOS 또는 호스팅 제공업체에서 제공합니다. 단 하나의 작업은 우리 작업입니다. 이러한 당국은 범위를 확장했습니다.
우리의 임무는 사용자 이름과 비밀번호가 하드코딩된 gdrive-backup입니다. 우리는 세상에 읽기 액세스 권한을 제공하는 것이 적절하지 않다고 생각합니다.
크론 작업이 파일 시스템에 있을 때 어떤 권한을 가져야 합니까?
이것은 특별한 일이 일어나지 않음을 나타내는 crontab 고양이입니다.
$ cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
$
관련 질문은크론 작업에 대한 런타임 권한은 무엇입니까?, 그러나 파일 시스템 권한이 아닌 작업 실행 시 사용자 자격 증명에 대해 설명합니다.
답변1
CentOS에서는 일일 크론 작업이 다음과 같이 실행됩니다.
/usr/bin/run-parts /etc/cron.daily
run-parts는 쉘 스크립트입니다. 인수(디렉토리)의 내용을 살펴보고, , 및 디렉토리로 끝나는 파일을 필터링한 다음 ~
테스트 를 통과한 (즉, 루트에서 실행할 수 있는) 각 파일에 대해 파일을 실행합니다..swp
.rpmsave
if [ -x $i ]
/etc/cron.daily
따라서 비트가 열려 있는 모든 파일이 x
실행됩니다. 원하는 경우 모든 사람의 읽기 액세스를 거부하도록 이러한 파일에 대한 권한을 설정할 수 있습니다. 명령에 대한 인수로 전달될 수 있는 스크립트에 암호를 포함하는 경우 모든 /proc/*/cmdline
파일을 공개적으로 읽을 수 있으므로 런타임에 모든 사용자가 모든 명령과 인수를 볼 수 있다는 점 에 유의하십시오 .