몇 년 동안 Ubuntu를 사용한 후 최근 openSUSE 12.3을 실험하기 시작했습니다. 저는 여전히 openSUSE가 Ubuntu와 어떻게 작동 su
하는지 에 익숙해지고 있습니다 . openSUSE 매뉴얼을 읽었지만 두 가지 관련 질문에 대한 답을 찾을 수 없습니다.sudo
sudo
1) 이전 질문에서https://askubuntu.com/questions/236859/are-there-adverse- effects-from-or-a-better-way-than-writing-to-run-or-dev-shgpg
, 복호화된 파일이 하드 드라이브에 절대 닿지 않도록 이 플래그를 사용하여 복호화된 파일을 임시로 쓰는 방법을 물었습니다 . 하지만 글을 쓰려면 Ubuntu에 있어야 합니다./run
gpg --output
/run
sudo
sudo gpg --output '/run/temporary_file_name' etc.
openSUSE에서 동일한 작업을 수행하려고 하면( sudo
또는 사용 su
) 에서 오류 메시지가 나타납니다 gpg
. 아마도 루트 사용자가 내 사용자 계정의 gpg 키를 볼 수 없기 때문일 것입니다. sudo from Ubuntu, in which
sudo seems to use the same preferences / gpg keys as the regular user, be replicated in openSUSE? I could use
gpg 등을 사용할 수 있나요 ? 티 등이 있을 것 같지만 우분투의 작업 방식에 비하면 투박해 보입니다.
2) 일부(전부는 아님) 행에 루트 권한이 필요한 Ubuntu의 여러 bash 스크립트가 있습니다(예: 루트가 소유하지 않으려는 파일을 복사한 다음 루트 권한이 필요한 새 소프트웨어 설치). Ubuntu 에서는 sudo
. 이러한 스크립트 줄에서 sudo some_command
openSUSE를 사용하도록 조정하는 가장 좋은 방법은 무엇입니까? 스크립트에서 단독으로 사용 su -c 'command'
하면 루트 비밀번호를 입력한 후 스크립트 작동이 중지됩니다.su
openSUSE에 대해 구체적으로 질문하고 있지만 이 질문은 Ubuntu가 아닌 많은 배포판에 적용될 수 있습니다.
답변1
sudo가 환경 변수를 유지하는지 HOME
아니면 대상 사용자의 홈 디렉터리로 설정하는지 여부는 해당 구성에 따라 다릅니다(자세한 내용은 설명서 참조). Ubuntu가 옳고 SuSE가 잘못하거나 그 반대가 아닙니다. 두 옵션 모두 장점과 단점이 있습니다. 시나리오 작가로서 당신의 임무는 두 가지 상황을 모두 다루는 것입니다. (1)에 대한 해결책은 gpg를 실행 sudo -H
하거나 전달하는 것입니다 --homedir
.
그러나 gpg를 루트로 실행하는 것은 확실히 잘못된 접근 방식입니다. 이로 인해 gpg에 너무 많은 권한이 부여되고 액세스 권한이 있을 수 있습니다 ~/.gnupg
(예: 사용자의 홈 디렉터리가 NFS에 있는 경우). 키를 소유한 사용자로 gpg를 실행하고 데이터를 표준 출력으로 인쇄하도록 합니다.파이프라인 액세스tee
쓰기 위해 특별한 권한이 필요한 파일로 출력하는 표준 방법입니다(왜 "서투르다"고 생각하는지 모르겠습니다).
gpg -d foo.gpg | sudo tee /run/foo
루트가 필요한지 su
여부 sudo
는 시스템 관리자의 선택에 따라 다릅니다. 동일한 시스템의 다른 사용자가 그 중 하나를 사용할 수 있습니다. 스크립트를 실행할 모든 시스템의 구성을 제어하지 않는 한 두 가지 가능성을 모두 고려하십시오(예: 스크립트에 옵션 전달).
스크립트가 Ubuntu에서 실행되지만 sudo
다른 배포판에서는 실패하는 경우 su
환경을 (거의) 완전히 재설정해야 할 수 있습니다. 이는 sudo
Ubuntu의 기본 구성이지만 다른 시스템에서는 다르게 동작할 수 있습니다. 재설정되는 환경에 의존하지 않도록 스크립트를 수정하세요.
답변2
이것은 대부분 질문 1에 대한 답변입니다. 다른 질문은 지금 당장 답변할 시간이 없는 별도의 질문이기 때문입니다.
Ubuntu는 완전한 권한 분리와 함께 제공되는 추가적인 복잡성을 원하지 않거나 필요로 하지 않는 일반 데스크탑 사용자의 관심을 끌기 위해 보안에 대한 몇 가지 지름길을 사용합니다. 그러나 디스크에 기록하고 싶지 않을 정도로 민감한 데이터를 처리하는 경우에는 그러한 사용자가 아니며 sudo
Ubuntu 스타일 규칙을 구현하여 표준 보안 아키텍처를 우회해서는 안 됩니다.
경고하다:RAM에 무언가를 넣었다고 해서 다른 사람이 해당 항목에 액세스할 수 없는 것은 아닙니다. 가장 확실한 원인은 디스크 스와핑으로, 이로 인해 RAM의 내용이 무기한 저장될 수 있습니다. 그러나 다른 타협도 가능합니다.
따라서 스왑 파티션을 비활성화하고 이것이 충분하다고 생각한다면:
/run에 쓰는 것보다 더 나은 옵션은 이를 사용할 사용자가 소유한 고유한 tmpfs 마운트를 만드는 것입니다. 예를 들어 사용자 ID와 그룹 ID가 모두 500인 경우:
mount -t tmpfs tmpfs /home/jl/realtmp -ouid=500,gid=500
이 명령은 다음 과 같이 실행되어야 합니다 root
.fstab
tmpfs /home/jl/realtmp tmpfs uid=500,gid=500 0 0
답변3
sudo를 활성화하겠습니다. 이는 /etc/sudoers 파일을 편집하고 user ALL=(ALL) ALL 행을 추가하여 수행됩니다. 원하는 사용자와 함께. 이 작업은 루트로 수행되어야 합니다.