su가 필요한 것은 이번이 처음입니다.
노트북 화면 밝기를 변경하기 위해 /sys/devices/virtual/backlight/acpi_video0/brightness의 값을 변경하는 방법에 대한 기사를 읽었습니다.
$ sudo echo 10 > brightness
나는 내가 원했을 때 거절을 당하고 있다는 것을 처음으로 깨달았습니다 .
나는 su를 사용하여 루트로 전환했고 # echo 10 > brightness
거의 즉시 밝기를 변경했습니다.
마지막으로 시도했을 때 이상한 일이 일어났고 # echo 20 > brightness
(maxbrightness 파일의 값은 15였습니다) 쓰기 오류가 발생했습니다.
누군가 sudo와 su의 차이점을 나에게 설명해 줄 수 있습니까? 쓰기 오류에 대해 알면 추가적인 이점이 있습니다. 어떤 도움, 조언 및/또는 링크라도 대단히 감사하겠습니다.
답변1
리디렉션이 작동하는 방식은 아닙니다. 명령에 추가하면 >
루트 대신 호출 사용자(귀하)로 리디렉션이 실행됩니다. 이걸로 해라tee
:
echo 20 | sudo tee /sys/devices/virtual/backlight/acpi_video0/brightness
또는 별도의 권한이 있는 쉘에서 명령을 호출하여:
sudo bash -c "echo 20 > /sys/devices/virtual/backlight/acpi_video0/brightness"
답변2
이는 sudo
가 아니라 실제로 설명했던 명령이 처리되는 방식 때문입니다.이 문제. 당신이 할 때
$ sudo echo 10 > brightness
쉘은 루트로 실행되는 명령을 실행 sudo echo 10
합니다 echo 10
. 그런 다음 셸은 brightness
출력을 리디렉션할 수 있도록 열려고 시도 echo 10
하지만 그럴 수 없습니다. 셸은 루트가 아닌 사용자 권한으로 실행되고 있습니다. 내가 연결한 질문에 대한 답변으로 게시된 몇 가지 해결 방법이 있습니다.
$ echo 10 | sudo tee brightness
이제 tee
열립니다 brightness
. 루트로 실행 중이므로 성공합니다.
답변3
수 =에스마녀너ser: 다른 사용자로 쉘을 사용하세요
스도=에스상위 레이어너세레하다: 루트 사용자로 다음 명령을 실행합니다.
귀하의 경우 다음 명령은 echo 20
echo 20이므로 이전에 언급한 것처럼 echo 20만 루트로 실행됩니다. 리디렉션이 다시 작동합니다.
답변4
/etc/sudoers
파일을 보고 싶을 수도 있습니다 . 해당 목록에 에어컨이 없으면 에어컨을 이용할 수 없습니다.sudo
.