sudo의 debianstretch에서 Hostapd_cli를 작동시키는 방법은 무엇입니까?

sudo의 debianstretch에서 Hostapd_cli를 작동시키는 방법은 무엇입니까?

bash 스크립트가 실행 중이고 hostapd_cli all_stajessie 및 Stretch 아래의 명령줄에서 스크립트가 성공적으로 실행됩니다. 스크립트는 jessie의 sudo에서 실행될 때도 작동하지만 확장할 때는 작동하지 않습니다. 스트레칭하는 동안 오류가 발생하여 명령 시간이 초과됩니다 'STA-FIRST' command timed out. strace에서 hostapd_cli를 호출하면 다음 위치에서 소켓 파일이 열리는 것을 볼 수 있습니다 /tmp.

bind(3, {sa_family=AF_UNIX, sun_path="/tmp/wpa_ctrl_13552-1"}, 110) = 0
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/hostapd/wlan1"}, 110) = 0

테스트로서 스크립트를 임시로 수정하고 다음 줄을 추가했습니다.

echo "this is a test" >/tmp/test 2>/root/error

수정된 스크립트를 sudo에서 실행하면 의 파일이 생성되지 않으며 /tmp에 오류가 기록되지 않습니다 /tmp/error.

내 시스템에서는 /tmptmpfs가 아니고 /ext3 파일 시스템 아래의 평범한 오래된 디렉토리일 뿐입니다. 따라서 루트는 아래 파일을 생성할 수 없으며 /tmp공간이 충분합니다.

# df -h /tmp
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb2       6.7G  5.1G  1.4G  80% /

그리고 ls -ld /tmp다음을 제공합니다:

# ls -ld /tmp
drwxrwxrwt 9 root root 4096 Jul 27 23:50 /tmp/

내가 글을 쓸 수 없는 이유를 알아낼 수 있다면 /tmp, hostapd_cli 명령이 작동할 것이라고 확신합니다. 여기서 무슨 일이 일어날 수 있습니까?

답변1

이것이 예상대로 작동하지 않는 이유는 /tmpsystemd에 의해 다음과 같이 다시 매핑되기 때문입니다./tmp/systemd-private-67fcab218d3d46bcb5092dd8a6d4789b-nagios-nrpe-server.service-lN2L1e/tmp

문제는 sudo와 관련이 없지만 사실 sudo는 nrpe 데몬에서 실행되는 플러그인으로 실행되며, 이는 차례로 /tmpsystemd에서 개인 프로세스를 갖도록 구성됩니다.

이 문제를 해결하기 위해 다음을 설정했습니다.

systemctl stop nagios-nrpe-server
set PrivateTmp=false in /etc/systemd/system/multi-user.target.wants/nagios-nrpe-server.service
systemctl daemon-reload
systemctl start nagios-nrpe-server

관련 정보