재부팅 후 시스템 파일에 대한 권한 설정을 재설정하는 데 문제가 있습니다. 시작 시 권한을 원하는 방식으로 다시 설정하는 bash 스크립트를 실행하도록 systemd 및 rc-local 서비스를 설정하고 있습니다.
systemd 및 rc-local 서비스를 성공적으로 설정했으며 /etc/rc.local
.
내 스크립트 rc.local
는 다음과 같습니다.
#! /bin/bash
cd /dev/
sudo chmod a+rw vmnet0
sudo chmod a+rw vmnet1
재부팅한 후에도 이 사실을 발견했지만 /dev/vmnet0
여전히 /dev/vmnet1
잘못된 권한이 있었습니다. 실행했을 때 및 파일을 볼 수 없다고 불평하는 것을 systemctl status rc-local
발견했습니다 . 반환되는 구체적인 정보는 다음과 같습니다.chmod
/dev/vmnet0
/dev/vmnet1
pam_unix(sudo:session) session opened for user root by (did=0)
chmod: cannot access 'vmnet0': no such file or directory
pam_unix(sudo:session) session closed for user root
root : TTY=unknown ; PWD=/dev ; USER=root ; COMMAND=/usr/bin/chmod a+rw vmnet1
pam_unix(sudo:session): session opened for user root by (uid=0)
chmod: cannot access 'vmnet1': No such file or directory
pam_unix(sudo:session): session closed for user root
rc-local.service:c Control process existed, code=exited, status=1/FAILURE
rc-local.service: Failed with result 'exit-code'.
Failed to start /etc/rc.local Compatibility.
/dev/vmnet0
루트로 실행되는 스크립트가 및 파일을 볼 수 없는 이유를 알아내려고 머리를 긁적입니다 /dev/vmnet1
. 어떤 아이디어가 있나요?
답변1
1.) rc-local.service와 같은 시스템 단위에서는 sudo를 사용할 필요가 없으며 모든 명령은 이미 루트로 실행됩니다. 실제로, 합당한 이유가 없는 한 시스템 서비스에서 sudo를 사용하지 마십시오.
2.) rc-local.service는 이러한 장치 파일을 생성하는 드라이버 서비스가 로드되기 전(또는 적어도 동시에) 실행될 가능성이 높습니다. 정렬 문제입니다. 새로운 시스템 서비스 단위를 생성하고 시작하는 것이 좋습니다 After=vmware-networks.service
(드라이버를 로드하는 VMware 서비스의 이름이라고 가정).