![루트가 아닌 사용자로 crontab을 편집할 수 없습니다](https://linux55.com/image/41027/%EB%A3%A8%ED%8A%B8%EA%B0%80%20%EC%95%84%EB%8B%8C%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A1%9C%20crontab%EC%9D%84%20%ED%8E%B8%EC%A7%91%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.png)
루트가 아닌 사용자(이 경우 postgres)로 Debian 서버에서 명령을 사용하면 crontab -e
편집할 수 없습니다."/tmp/crontab.SJlY0Y/crontab" [Permission Denied]
crontab -l
반면에 잘 작동합니다. 이 문제를 어떻게 해결할 수 있나요?
현재 권한은 다음과 같습니다.
$ ls -l /tmp/crontab.SJlY0Y/crontab
-rw------- 1 root postgres 1.2K Aug 3 11:44 /tmp/crontab.SJlY0Y/crontab
$ ls -l /var/spool/cron
total 12K
drwxrwx--T 2 daemon daemon 4.0K Sep 12 2012 atjobs
drwxrwx--T 2 daemon daemon 4.0K Jun 9 2012 atspool
drwx-wx--T 2 root crontab 4.0K Aug 3 11:15 crontabs
$ ls -l /var/spool/cron/crontabs
total 12K
-rw------- 1 git crontab 1.3K Mar 2 16:48 git
-rw------- 1 postgres crontab 1.4K Aug 3 11:15 postgres
-rw------- 1 root root 2.3K Jul 20 20:32 root
$ ls -l /usr/bin/crontab
-rwsr-xr-x 1 root root 36K Jul 3 2012 /usr/bin/crontab
$ ls -ld /tmp/
drwxrwxrwt 6 root root 4.0K Aug 3 11:43 /tmp/
답변1
$ ls -l /usr/bin/crontab -rwsr-xr-x 1 root root 36K Jul 3 2012 /usr/bin/crontab
소유권과 허가는 실제로
-rwxr-sr-x 1 root crontab 35880 Jul 3 2012 /usr/bin/crontab
Debian sarge부터 crontab
필요에 따라 setuid 루트가 아닌 setgid crontab입니다.버그 #18333.
이것이 문제의 원인입니다. 프로그램은 setuid가 아닌 setgid가 실행될 것으로 예상하므로 호출자의 사용자 및 그룹 이 아닌 호출자의 기본 그룹인 사용자 및 그룹 crontab
으로 임시 파일을 생성합니다 .root
crontab
cron
패키지를 다시 설치하십시오 .
apt-get --reinstall install cron
(루트로). /var/spool/cron/crontabs
올바른 권한과 소유권이 있는지 확인하세요 .
drwx-wx--T 2 root crontab 4096 Oct 8 2013 /var/spool/cron/crontabs
앞으로는 시스템 파일 권한을 혼동하지 마십시오.
답변2
apt-get --reinstall install cron
다음 오류를 반환하므로 사용할 수 없습니다 .
gateway:/home/firewall# apt-get --reinstall install cron
Reading package lists... Done
Building dependency tree... Done
Suggested packages:
anacron logrotate lockfile-progs checksecurity
Recommended packages:
exim4 postfix mail-transport-agent
The following NEW packages will be installed:
cron
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/78.4kB of archives.
After unpacking 303kB of additional disk space will be used.
(Reading database ... 48768 files and directories currently installed.)
Unpacking cron (from .../cron_3.0pl1-100_i386.deb) ...
dpkg: error processing /var/cache/apt/archives/cron_3.0pl1-100_i386.deb (--unpack):
***unable to make backup link of `./usr/bin/crontab' before installing new version: Operation not permitted***
Errors were encountered while processing:
/var/cache/apt/archives/cron_3.0pl1-100_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
gateway:/home/firewall#
파일을 수동으로 삭제하려고 해도 허용되지 않습니다. 이 파일은 권한이 없으므로 어떻게 삭제합니까?
gateway:~# ls -la /usr/bin/crontab
---------- 1 root crontab 26380 Dec 20 2006 /usr/bin/crontab