잊다 sudo su
을 사용 sudo su
하면 이점이 없으며 , 사람들이을 사용하는 데 익숙해 졌을 때의 구식 습관입니다 su
. sudo
리눅스 배포판이 루트 암호 설정을 중단 sudo
하고 루트 계정에 액세스 할 수있는 유일한 방법을 만들었을 때 사람들 이 정면으로 치기 시작했습니다 . 그들은 습관을 바꾸지 않고 방금 사용했습니다 sudo su
. ( sudoers
구성이있는 상자를 사용할 때 상대적으로 최근까지 습관 중 하나를 강요 할 때까지 그중 하나였습니다 ).
사용하다 sudo -u
로그인 쉘의 경우을 sudo -u postgres -i
선호합니다 sudo su - postgres
. 사용자에게 루트 액세스 권한이 필요하지 않으며 사용자가 /etc/sudoers
될 수있는 권한 만 있으면 postgres
됩니다. 또한 더 나은 액세스 제어를 시행 할 수 있습니다.
명령 실행
sudo -u postgres psql -c "SELECT 1"
대안보다 우수합니다.
sudo su - postgres -c "psql -c \"SELECT 1\""
따옴표와 다른 셸 메타 문자를 이중 이스케이프 할 필요가 없으며 루트가 필요하지 않은 다른 보안 이점도 있습니다. 당신은 아마 실수로 글을 쓸 것입니다 :
sudo su - postgres -c psql -c "SELECT 1"
때로는 제대로 작동하지 않습니다.
마지막으로,를 통해 설정 환경 변수에 그것의 방법보다 쉽게 sudo
, 예를 들어,
sudo PATH=/usr/pgsql-9.3/bin:$PATH -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/testcluster
통해보다 su
. (여기서 올바른 실행 파일을 찾을 수 PATH
있도록 설정이 필요합니다 ).initdb
postgres
그래서. 잊어 su
명령이 존재한다. 더 이상 필요하지 않습니다. 습관을 없애려면 오류를 인쇄 할 것으로 별칭을 지정하십시오. (일부 초기화 및 패키지 설정 스크립트는 여전히 사용 su
하므로 제거 할 수 없습니다).
참조 :