일부 sudo 사용자는 커널 모듈을 제거할 수 없습니다.

일부 sudo 사용자는 커널 모듈을 제거할 수 없습니다.

나는 sudoers(다른 프로젝트 중에서) 다음 줄을 포함하는 파일을 사용합니다.

homebridge    ALL=(ALL) NOPASSWD: /sbin/modprobe -r bcm2835-v4l2, /sbin/modprobe bcm2835-v4l2, /sbin/reboot
%sudo         ALL=(ALL) NOPASSWD: /sbin/modprobe -r bcm2835-v4l2, /sbin/modprobe bcm2835-v4l2, /sbin/reboot

/usr/bin/sudo /sbin/modprobe -r bcm2835-v4l2내 사용하여 다음 명령을 실행할 때일반 사용자, 비밀번호를 입력하지 않고도 정상적으로 작동합니다.

내가 /usr/bin/sudo /sbin/modprobe -r bcm2835-v4l2사용할 때홈브리지사용자는 sudoers에도 언급되어 있으며 명령은 출력과 함께 실패합니다. modprobe: ERROR: ../libkmod/libkmod-module.c:793 kmod_module_remove_module() could not remove 'bcm2835_v4l2': Operation not permitted(그러나 비밀번호도 묻지 않습니다)

/usr/bin/sudo /sbin/reboot다음을 사용하여 명령을 성공적으로 실행할 수 있습니다.홈브리지또한 사용자는 비밀번호를 입력할 필요가 없습니다.

  1. 암호를 묻는 것이 아니고 두 사용자 중 한 명이 규칙을 실행할 수 없기 때문에 두 사용자 모두 규칙이 적용된 것처럼 보이게 하는 원인을 알 수 있습니까?
  2. 사용자를 사용하여 명령을 실행할 수 있도록 이 문제를 어떻게 수정합니까 homebridge?

업데이트 1: 안타깝게도 dmesg추가 항목 없이 사용 시도가 실패합니다.홈브리지사용자이지만 일반 사용자를 사용할 때는 다음 줄을 따르십시오.bcm2835-v4l2-0: unregistering video0

bcm2835_v4l2대신 으로 전환했지만 bcm2835-v4l2문제에는 아무런 영향을 미치지 않는 것 같습니다. 실행 lsmod | grep bcm2835-v4l2결과는 없었지만 lsmod | grep bcm2835_v4l2다음과 같은 결과가 제공되었습니다.

bcm2835_v4l2           40960  0
videobuf2_vmalloc      16384  1 bcm2835_v4l2
bcm2835_mmal_vchiq     28672  3 bcm2835_isp,bcm2835_codec,bcm2835_v4l2
videobuf2_v4l2         32768  4 bcm2835_isp,bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem
videobuf2_common       61440  5 bcm2835_isp,bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2
videodev              249856  6 bcm2835_isp,bcm2835_codec,videobuf2_common,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2

syslog시도가 실패하면 항목이 없습니다.홈브리지사용자.

업데이트 2:/var/log/secure그러나 사용할 수 있는 것은 없습니다 /var/log/auth.log.

homepi sudo: homebridge : TTY=pts/0 ; PWD=/var/lib/homebridge ; USER=root ; COMMAND=/sbin/modprobe -r bcm2835_v4l2
homepi sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
homepi sudo: pam_unix(sudo:session): session closed for user root

업데이트 3: 다음을 사용하여 모듈을 제거하면일반 사용자, 다음을 사용하여 로드해 보세요.홈브리지사용자님, 모듈을 로드할 수 없습니다:

/usr/bin/sudo /sbin/modprobe bcm2835_v4l2 && echo 1
modprobe: ERROR: could not insert 'bcm2835_v4l2': Operation not permitted`.

사용하려고 할 때 모듈이 이미 로드된 경우홈브리지사용자, 오류 없음:

/usr/bin/sudo /sbin/modprobe bcm2835_v4l2 && echo 1
1

업데이트 3: 사용홈브리지사용자:

capsh --print
Current: = cap_net_bind_service,cap_net_raw+eip
Bounding set =cap_chown,cap_dac_override,cap_fowner,cap_setgid,cap_setuid,cap_net_bind_service,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_sys_chroot,cap_sys_admin,cap_audit_write
Securebits: xxxxxxxx
 secure-noroot: no (unlocked)
 secure-no-suid-fixup: no (unlocked)
 secure-keep-caps: no (unlocked)
uid=999(homebridge)
gid=995(homebridge)
groups=20(dialout),27(sudo),29(audio),44(video),46(plugdev),105(input),112(bluetooth),995(homebridge),997(gpio)

사용정기적인사용자:

capsh --print
Current: =
Bounding set =cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_owner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control,cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,cap_wake_alarm,cap_block_suspend,cap_audit_read,38,39,40
Securebits: xxxxx
 secure-noroot: no (unlocked)
 secure-no-suid-fixup: no (unlocked)
 secure-keep-caps: no (unlocked)
uid=4814(regularUserName)
gid=4814(regularUserName)
groups=4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),105(input),109(netdev),997(gpio),998(i2c),999(spi),4814(regularUserName)

물론,홈브리지사용자가 아직 할당되지 않았습니다 cap_sys_module. 무슨 뜻이에요? 고칠 수 있나요?

업데이트 4

lsb_release  -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

관련 정보