
나는 생각했다:
echo hello world > /usr/bin/firefox
브라우저에 메시지가 표시됩니다. 아무 일도하지. 그런 다음 다음을 시도했습니다.
echo hello world > /usr/bin/kwrite
kwrite가 앞에 'hello world'를 입력하여 열리는지 확인하세요. 이번에도 아무 일도 일어나지 않았습니다. 그런 다음 두 명령을 모두 실행한 후 다음을 수행합니다.
computer:~$ kwrite
/usr/bin/kwrite: line 1: hello: command not found
computer:~$ firefox
/usr/bin/firefox: line 1: hello: command not found
행위 ls -l /usr/bin/
:
-rwxr-xr-x 1 root root 182576 2012-08-21 06:42 apt-ftparchive
-rwxr-xr-x 1 root root 116996 2012-08-21 06:41 apt-get
-rwxr-xr-x 1 root root 2151596 2011-10-20 21:45 aptitude
-rwxr-xr-x 1 root root 1939 2011-10-20 21:45 aptitude-create-state-bundle
-rwxr-xr-x 1 root root 3007 2011-10-20 21:45 aptitude-run-state-bundle
-rwxr-xr-x 1 root root 7336 2012-08-21 06:41 apt-key
lrwxrwxrwx 1 root root 20 2012-12-29 10:41 /usr/bin/firefox -> /opt/firefox/firefox
-rwxr-xr-x 1 root root 5476 2010-11-17 04:58 /usr/bin/kwrite
-rwxr-xr-x 1 root root 181104 2010-02-16 01:40 zip
-rwxr-xr-x 1 root root 1184 2011-01-21 23:49 zxpdf
내 시스템의 (및 기타 bin 폴더)에 있는 바이너리 파일에는 /usr/bin
최소한 사용자 쓰기 권한(?)이 있습니다. 그래서 제가 효과적으로 한 일은쓰다실행 파일 'hello world'에(비록 /usr/bin/kwrite
바이너리 실행이었지만 /opt/firefox/firefox
쉘 스크립트였음)
따라서 실행 파일이 이러한 유형의 사고를 당하기 쉬운 것은 분명합니다. 그래서 쓰기 권한이 필요한지 묻고 싶습니다. 나는 그것을 끄고 싶지만 여기서 뭔가를 놓치고 있지 않은지 확인하고 싶습니다.
답변1
첫째, 모든 또는 쓰기 비트가 있으므로 echo hello world > /usr/bin/kwrite
루트로 시도해야 합니다.w
-rwxr-xr-x
사용자 및 그룹에 대해서는 꺼져 있습니다 . 두 번째 질문의 경우 루트만 쓰기 권한이 있습니다.
일반 사용자가 컴파일하고 설치하지 않은 경우 대부분의 바이너리 파일입니다.
파일 권한 표기법도 자세히 살펴봐야 합니다. 여기 대단해요링크
답변2
바이너리 파일에는 사용자 쓰기 권한이 있습니다.사용자는 루트입니다. 루트만 에 쓸 수 있습니다 /usr/bin
.
루트로서 간단한 작업(브라우저 및 워드 프로세서 사용과 같은)을 수행하지 않는 것에 대해 정말 철저하게 정리해야 합니다. 여기에서 피해 제한을 참조하세요. http://www.howtogeek.com/124950/htg-explains-why-you-shouldnt-log-into-your-linux-system-as-root/
또한 .sh
. /usr/bin
필요한 경우 루트로 편집할 수 있습니다.