www-data 사용자가 루트를 RW로 마운트하도록 허용

www-data 사용자가 루트를 RW로 마운트하도록 허용

내가 실행하는 시스템에는 /대부분의 경우 "ro"(읽기 전용)로 마운트된 루트 파티션( )이 있습니다. 그러나 "www-data" 사용자가 "rw"로 설정할 수 있도록 하려면 이것이 필요합니다.

"rw"로 만들려면 명령을 사용합니다 sudo mount -o remount,rw /. 이것은 작동합니다.

그러나 PHP 스크립트("www-data" 사용자)가 동일한 명령을 실행하면 실패합니다.

/etc/sudoers.d/폴더에 다음 내용으로 파일을 만들었습니다.

www-data ALL=(ALL) NOPASSWD: ALL

/usr/bin/sudo /sbin/rebootPHP에서 명령을 실행할 수 있기 때문에 잘 동작하는 것을 확인할 수 있습니다 . 그러나 /bin/mount명령이 작동하지 않습니다. 제가 더 해야 할 일이 있나요?

해당 특정 명령만 실행할 수 있도록 sudoers 파일을 더 구체적으로 만들 예정이지만 지금은 작동하기를 원합니다.

로그를 봅니다. 명령을 수동으로 실행한 후:

2020-10-22T19:37:19+0000 d0-14-11-00-00-03 sudo[18582]:       pi : TTY=serial1 ; PWD=/home/pi ; USER=root ; COMMAND=/bin/mount -o remount,rw /
2020-10-22T19:37:20+0000 d0-14-11-00-00-03 sudo[18582]: pam_unix(sudo:session): session opened for user root by (uid=0)
2020-10-22T19:37:20+0000 d0-14-11-00-00-03 kernel: EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
2020-10-22T19:37:20+0000 d0-14-11-00-00-03 sudo[18582]: pam_unix(sudo:session): session closed for user root

PHP 스크립트를 통해 명령을 실행한 후:

2020-10-22T19:38:26+0000 d0-14-11-00-00-03 sudo[18703]: www-data : TTY=unknown ; PWD=/var/www/web ; USER=root ; COMMAND=/bin/mount -vo remount,rw /
2020-10-22T19:38:27+0000 d0-14-11-00-00-03 sudo[18703]: pam_unix(sudo:session): session opened for user root by (uid=0)
2020-10-22T19:38:27+0000 d0-14-11-00-00-03 sudo[18703]: pam_unix(sudo:session): session closed for user root
2020-10-22T19:38:27+0000 d0-14-11-00-00-03 kernel: EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)

해결됨

여기 솔루션을 사용하여 해결되었습니다.

쉘을 통해 마운트를 수행하기 전에는 PHP 및 apache2를 통해 루트 파일 시스템을 다시 마운트할 수 없습니다.

관련 정보