내 데스크탑에는 Suse Linux가 있습니다. 그래서 저는 루트이자 "일반" 사용자입니다. 예를 들어 Tomcat을 시작하거나 사용해야 하는 프로그램을 설치/제거하거나 sudo
슈퍼 유저로 전환하는 경우가 많습니다. 하지만 나는 .bashrc
, path in .profile
등에 많은 별칭을 정의했습니다 .
슈퍼유저의 일부 권한을 일반 사용자에게 할당할 수 있나요? 예를 들어 프로그램을 설치하려면?
답변1
네, 하지만 그건 당신이 할 수 있는 최악의 일이에요. OS에는 서로 다른 권한을 가진 여러 사용자가 있습니다. 그리고 그것은 의도적인 것입니다. 사용자에게 루트 권한을 영구적으로 부여하면 시스템 보안이 손상됩니다. (Windows 9x와 모든 바이러스를 기억하시나요?)
쉘을 실행하지 않는 한 명령을 실행하면 sudo
사용자 정의 항목이 필요하지 않을 것 같습니다 ./bin/sh
원하는 것을 달성하려면 다음을 수행할 수 있습니다.
시스템 및 에서 ~/.bashrc
항목 을 이동할 수 있으며 , 에서 별도의 스크립트에 넣는 것이 더 좋습니다 (잊지 마세요 ). 이 파일은 각 로그인 세션마다 실행됩니다.~/.profile
/etc/bash/bashrc
/etc/profile
/etc/profile.d/mystuff.sh
chmod +x /etc/profile.d/mystuff.sh
그런 다음 로 루트 세션을 시작합니다 su -
.-에 전달된 (빼기) 기호는 su
로그인 세션을 실행하고 그에 따라 위에 언급된 파일을 실행합니다. Linux 배포판에 따라 전화를 걸어야 할 수도 있습니다 sudo su -
.
logout
루트 세션을 마친 후에 는 루트 권한을 그대로 두는 것이 좋습니다 .
특정 바이너리에 대해서만 루트 권한이 필요한 경우 다른 방법이 있는데, 이를 유효 UID라고 합니다. 예를 들어 mtr
바이너리 에 다음을 사용할 수 있습니다 .
chmod a+s `which mtr`
이렇게 하면 바이너리를 실행할 때 mtr
바이너리를 소유한 사용자(이 경우 루트)의 유효 권한을 얻게 됩니다( chown root /path/to/mtr
). sudo 입력 시간을 절약할 수 있지만 루트 권한을 부여할 바이너리를 신중하게 선택해야 합니다. 위험성을 모르면 위험합니다. 첫 번째 옵션을 사용하는 것이 좋습니다.
답변2
Tomcat의 시작은 다음과 같이 수행되어야 합니다.초기화 스크립트. 사용자 그룹에게 Tomcat을 (재)시작할 수 있는 권한을 부여하려면 다음 줄을 추가하세요./etc/sudoers을 사용하여 visudo
. 이는 다음과 같을 수 있습니다:
%tomcatcontrol localhost = NOPASSWD : /etc/init.d/tomcat *
localhost를 컴퓨터 이름으로 바꾸십시오. 그런 다음 그룹의 각 사용자톰캣컨트롤다음을 발행할 수 있습니다:
sudo /etc/init.d/tomcat restart
(또는 상태, 중지 또는 시작).
이것이 바로 sudo의 목적입니다. 루트 계정으로 더 오랫동안 작업하고 싶다면 다음을 수행할 수 있습니다 su -
. 다른 사용자가 실제로 Tomcat 콘텐츠(사용자 tomcat이 소유한 파일)를 관리하도록 하려면 su - tomcat
사용자 또는 사용자 그룹에 대해 허용할 수 있습니다.
귀하의 별칭에 관해서는 - OpenSuSE에는 해당 목적을 위한 /etc/profile.local이 있다고 생각합니다. 거기에 모든 사용자에게 유효한 항목을 넣을 수 있습니다.