나는 사용자가 HTTP를 통해 다른 사용자에게 보내는 데 필요한 파일을 저장할 수 있는 임시 디렉터리를 설정했습니다. 디렉토리는 SFTP 사용자가 소유하며 크론 작업을 실행할 수 없습니다.
cron 작업을 실행할 수 있는 셸 사용자가 있지만 SFTP 사용자 디렉터리의 파일을 편집할 수 있는 권한이 없습니다.
sudo를 사용할 때 SFTP 사용자 디렉터리에 액세스할 수 있지만 cron 작업을 실행할 수 없는(읽기: 정말 원하지 않는) 관리 사용자가 있습니다.
그래서 여기에 수수께끼가 있습니다. 관리자 권한으로 SFTP 사용자 디렉터리에서 1주일 된 파일을 삭제하기 위해 쉘 사용자로 야간 cron 작업을 실행하려면 어떻게 해야 합니까?
답변1
파일 을 편집하고 /etc/sudoers
(! 사용 visudo
) 쉘 사용자에게 비밀번호를 입력하지 않고도 특정 명령을 실행할 수 있는 충분한 권한을 허용하는 항목을 추가하십시오. 스크립트를 사용하는 경우 루트 외에는 누구도 스크립트를 편집할 수 없도록 하십시오.
에서 쉘 사용자 이름은 /etc/sudoers
어디에 있습니까?shelluser
shelluser ALL=NOPASSWD: /usr/bin/clean-up-sftp-temp-directory
/usr/bin/clean-up-sftp-temp-directory
스크립트 에서 다음을 추가할 수 있습니다.
#!/bin/sh
rm -f /home/sftpuser/will-be-deleted/*
스크립트를 실행 가능하게 만든 후에는 sudo clean-up-sftp-temp-directory
이를 호출하여 쉘 사용자의 crontab에 추가할 수 있어야 합니다.