1. 루트 비밀번호가없는 이유
로 루트로 로그인 할 수있는 수퍼 유저 계정의 비밀번호를 만들 수 있지만 su
, 이것이 우분투 (또는 점점 더 많은 배포판)를 사용하는 일반적인 방법은 아니라는 점을 언급 할 가치가 있습니다. 우분투는 기본적으로 루트 로그인 및 비밀번호를 제공 하지 않기로 선택했습니다 . 대신 기본 Ubuntu 설치는 sudo
수퍼 유저 권한을 부여 하는 데 사용 됩니다. 기본 우분투 설치에서 OS를 설치 한 사람에게는 기본적으로 "스도"권한이 부여됩니다.
전체 "sudo"권한을 가진 사람은 sudo
자신의 명령 앞에 "슈퍼 유저로"무언가를 수행 할 수 있습니다 . 예를 들어 apt-get dist-upgrade
수퍼 유저 로 실행 하려면 다음을 사용할 수 있습니다.
sudo apt-get dist-upgrade
웹에서 우분투에 대한 튜토리얼을 읽는 곳 어디에서나 sudo 사용법을 볼 수 있습니다. 이 작업을 대신 할 수 있습니다.
su
apt-get dist-upgrade
exit
sudo를 사용하면 sudo 액세스 권한이있는 사용자를 미리 선택하십시오. 그들은 자신의 암호를 사용하기 때문에 루트 암호를 기억할 필요가 없습니다. 여러 명의 사용자가있는 경우 루트 비밀번호를 변경하지 않고 모든 사람에게 새 비밀번호를 알리지 않고도 sudo 권한을 제거하여 수퍼 유저 액세스 권한을 취소 할 수 있습니다. sudo를 사용하여 사용자가 수행 할 수있는 명령과 해당 사용자에 대해 금지 된 명령을 선택할 수도 있습니다. 마지막으로 보안 위반이있는 경우 어떤 사용자 계정이 손상되었는지를 보여주는 더 나은 감사 추적을 남길 수 있습니다.
Sudo를 사용하면 수퍼 유저 권한으로 단일 명령을보다 쉽게 수행 할 수 있습니다. 으로는 su
, 당신은 영구적으로 사용 종료해야하는 수퍼 유저 쉘에 드롭 exit
또는 logout
. 이로 인해 사람들이 로그 아웃했다가 나중에 로그인하는 것보다 편리하기 때문에 필요 이상으로 수퍼 유저 셸에 머무를 수 있습니다.
sudo를 사용하면 다음 명령을 사용하여 영구 (대화식) 수퍼 유저 셸을 열 수 있습니다.
sudo su
... 명령에 sudo
대한 수퍼 유저 권한을 부여 하므로 루트 암호 없이도 계속 수행 할 수 있습니다 su
.
마찬가지로 su -
로그인 쉘 대신 sudo su -
또는 바로 가기를 사용할 수 있습니다 sudo -i
.
그러나 그렇게 할 때 모든 명령에 대해 수퍼 유저 역할을한다는 것을 알아야합니다. 실수로 시스템에 손상을 줄 가능성을 줄이기 위해 필요 이상으로 수퍼 유저로 머 무르지 않는 것이 좋은 보안 원칙입니다 (시스템 없이는 사용자 소유의 파일 만 손상시킬 수 있음).
다만, 명확하게 당신은 할 수 있습니다 당신이 선택하는 경우, 루트 사용자에게 특별히 대신 일들이 방법을 수행하려는 경우, OLI의 대답 @에 설명 된대로 루트로 로그인을 허용하는 암호를 제공합니다. 우분투를 선호하는 우분투 협약에 대해 sudo
알려주고 대안이 있다는 것을 알려 드리고자합니다.
2. chmod 777 -R 명령의 문제점
귀하의 질문에는 두 번째 부분이 있습니다 : 명령 관련 문제 sudo chmod 777 -R foobs
.
첫째, 다음 경고는 컴퓨터에서 잠재적으로 심각한 보안 문제를 나타냅니다.
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
이것은 어떤 단계에서 /var/lib/sudo
세계 기록 가능하도록 설정되었음을 의미합니다 . 나는 당신이 같은 명령을 사용하여 어떤 단계에서 이것을했다고 상상합니다 sudo chmod 777 -R /
. 불행히도이 작업을 수행하면 시스템 전체의 모든 파일 권한이 거의 손상되었을 수 있습니다. 이 파일이 세계에서 쓸 수있는 권한으로 변경된 유일한 중요한 시스템 파일 일 가능성은 낮습니다. 기본적으로 지금은 쉽게 해킹 가능한 시스템을 보유하고 있으며 시스템을 다시 얻는 유일한 방법은 다시 설치하는 것입니다.
둘째, 사용중인 명령 :
sudo chmod 777 -R foobs
홈 디렉토리 내에서 파일을 조작 할 때이 경우에는를 ~/Desktop
사용할 필요가 없습니다 sudo
. 홈 디렉토리에 생성 한 모든 파일은 어쨌든 수정 가능해야합니다 (그렇지 않은 경우 재미있는 일이 발생합니다).
또한 파일 사용 권한을 재귀 적으로 또는 많은 수의 파일에서 수행하는 것과 같이 파일 사용 권한을 변경 한 결과에 대해 충분히 알고 있어야합니다. 이 경우 파일 쓰기 권한을 세계 쓰기 가능하도록 신중하게 변경합니다. 다른 사용자 나 컴퓨터의 버그가있는 서버 소프트웨어는 이러한 모든 파일과 디렉토리를 쉽게 덮어 쓸 수 있습니다.
해결하려는 모든 문제에 대해 적절한 해결책 chmod 777 -R [dir]
이 아니라는 것이 거의 확실합니다 (위에서 언급했듯이 / var / lib의 시스템 파일 에도이 작업을 수행했다는 증거가 있습니다. 장소).
기본 몇 가지 기본 규칙 :
홈 디렉토리, 데스크탑 등에서 자신의 파일을 엉망으로 만들면 sudo
슈퍼 유저 권한 을 사용할 필요가 없습니다 . 만일 그렇게한다면, 당신이 잘못하고 있다는 경고 신호입니다.
패키지가 소유 한 시스템 파일을 수동으로 수정해서는 안됩니다. 예외 : 당신은 그런 자신의 구성을 수정하여로 그 패키지, 문서화 방법으로 구체적으로 그 일을하지 않는 한 /etc
. 이것은 파일 권한 변경에도 적용됩니다. 학습서 또는 문제점을 수정하려는 시도 sudo
또는 수퍼 유저 권한이 필요 하고 단순히 / etc /의 구성을 변경 한 것이 아니라면, 잘못된 일을하고 있다는 경고 신호입니다.
chmod -R 777 whatever
큰 보안 위험을 유발하지 않으려면 거의 수행하지 마십시오 .