동일한 UID를 가진 여러 * NIX 계정 테스트를 수행했으며 예상대로 작동했지만이 트릭을 사용하여

표준 예상 동작이 있는지와 동일한 UID를 가진 Linux / Unix에서 둘 이상의 계정을 만들 때 이것이 나쁜 습관으로 간주되는지 궁금합니다. 나는 이것을 사용하여 RHEL5에 대한 테스트를 수행했으며 예상대로 작동했지만이 트릭을 사용하여 운명을 유혹하는지 알 수 없습니다.

예를 들어, 동일한 ID를 가진 두 개의 계정이 있다고 가정 해 보겠습니다.

a1:$1$4zIl1:5000:5000::/home/a1:/bin/bash
a2:$1$bmh92:5000:5000::/home/a2:/bin/bash

이것이 의미하는 것은 :

  • 자체 비밀번호를 사용하여 각 계정에 로그인 할 수 있습니다.
  • 내가 만든 파일은 동일한 UID를 갖습니다.
  • “ls -l”과 같은 도구는 UID를 파일의 첫 번째 항목 (이 경우 a1)으로 나열합니다.
  • 두 계정 간에는 실제로 동일한 사용자이므로 권한 또는 소유권 문제가 발생하지 않습니다.
  • 각 계정에 대한 로그인 감사를 받으므로 시스템에서 발생하는 상황을 추적하는 데 더 세분화됩니다.

그래서 내 질문은 :

  • 이 능력이 설계 되었습니까, 아니면 그것이 작동하는 방식입니까?
  • 이것이 * nix 변형에서 일관됩니까?
  • 이것이 받아 들여 지는가?
  • 이 관행에 의도하지 않은 결과가 있습니까?

여기서 아이디어는 일반 사용자 계정이 아닌 시스템 계정에 사용하는 것입니다.



답변

내 의견 :

이 능력이 설계 되었습니까, 아니면 그것이 작동하는 방식입니까?

설계되었습니다. * NIX를 사용하기 시작한 후 사용자를 공통 그룹에 배치 할 수있었습니다. 문제없이 UID를 동일하게 유지하는 기능은 모든 것처럼 잘못 관리 될 경우 문제를 일으킬 수있는 의도 된 결과 일뿐입니다.

이것이 * nix 변형에서 일관됩니까?

나는 그렇게 믿는다.

이것이 받아 들여 지는가?

일반적으로 사용되는 방식으로 허용됩니다.

이 관행에 의도하지 않은 결과가 있습니까?

로그인 감사 외에는 아무것도 없습니다. 정확히 원하지 않는 한, 시작하십시오.


답변

모든 유닉스에서 작동합니까? 예.

사용하기에 좋은 기술입니까? 더 나은 다른 기술이 있습니다. 예를 들어, 유닉스 그룹과 엄격하게 제어 된 “스도”구성을 올바르게 사용하면 같은 결과를 얻을 수 있습니다.

나는 이것이 문제없이 사용 된 곳을 정확히 보았습니다. FreeBSD에서는 기본 쉘로 / bin / sh를 가진 “toor”(루트 철자법)라는 두 번째 루트 계정을 만드는 것이 일반적입니다. 이 방법으로 루트 쉘이 엉망이 되어도 로그인 할 수 있습니다.


답변

귀하의 질문에 정식 답변을 제공 할 수는 없지만 일명 우리 회사는 루트 사용자와 함께 수년 동안이 일을 해 왔으며 아무런 문제가 없었습니다. 유일하게 존재하는 이유는 / bin / sh 또는 bin / bash 대신 쉘로 / bin / ksh를 갖는 ‘kroot’사용자 (UID 0)를 작성합니다. Oracle DBA는 설치마다 3 ~ 4 개의 사용자 이름을 가진 동일한 사용자 ID를 가진 사용자와 유사한 작업을 수행한다는 것을 알고 있습니다. 솔라리스와 리눅스에서 10 년이 걸렸습니다.

일반 사용자 계정으로는이 작업을 수행하지 않습니다. 언급했듯이 초기 로그인 후 모든 것이 로그 파일의 이름으로 돌아가므로 한 사용자의 작업이 다른 사용자의 작업으로 로그에 가장 될 수 있다고 생각합니다. 시스템 계정의 경우 훌륭하게 작동합니다.


답변

이 능력이 설계 되었습니까, 아니면 그것이 작동하는 방식입니까?

그런 식으로 설계되었습니다.

이것이 * nix 변형에서 일관됩니까?

그렇습니다.

이것이 받아 들여 지는가?

무슨 뜻인지에 따라 다릅니다. 이 유형의 것은 매우 특정한 문제에 대한 답변입니다 (루트 / 투어 계정 참조). 다른 곳에서는 미래에 바보 같은 문제를 요구하고 있습니다. 이것이 올바른 해결책인지 확실하지 않으면 아마도 아닐 것입니다.

이 관행에 의도하지 않은 결과가 있습니까?

사용자 이름과 UID를 상호 교환 가능한 것으로 취급하는 것이 일반적입니다. 다른 사람들이 지적했듯이 로그인 / 활동 감사는 정확하지 않습니다. 또한 관련 사용자 관련 스크립트 / 프로그램 (distro의 useradd, usermod, userdel 스크립트,주기적인 유지 보수 스크립트 등)의 동작을 검토하고 싶을 것입니다.

이 두 사용자를 새 그룹에 추가하고 해당 그룹에 필요한 권한을 부여하여 달성 할 수없는 목표는 무엇입니까?


답변

이 관행에 의도하지 않은 결과가 있습니까?

내가 아는 한 가지 문제가 있습니다. Cron은이 UID 앨리어싱에서 잘 작동하지 않습니다. Python 스크립트에서 “crontab -i”를 실행하여 cron 항목을 업데이트하십시오. 그런 다음 쉘에서 “crontab -e”를 실행하여 동일하게 수정하십시오.

이제 cron (vixie, 내 생각에)은 a1과 a2 (/ var / spool / cron / a1 및 / var / spool / cron / a2)에 대해 동일한 항목을 업데이트했습니다.


답변

이것은 내가 본 모든 배포판에서 예상되는 동작이며 ‘적’이 루트 액세스 권한을 가진 계정을 숨기는 데 사용하는 일반적인 트릭입니다.

확실히 표준은 아니지만 (어디서나 보지 못했지만) 자신의 환경에서 적합하다고 볼 수없는 이유는 없어야합니다.

지금 당장 염두에 두어야 할 것은 감사가 어려워 질 수 있다는 것입니다. 동일한 uid / gid를 가진 두 명의 사용자가있는 경우 로그를 분석 할 때 어떤 작업을 수행했는지 파악하기가 어려울 것입니다.


답변

기본 그룹 ID를 공유하는 것이 일반적이므로 질문은 실제로 UID와 관련이 있습니다.

나는 루트 암호를 밝힐 필요없이 누군가에게 루트 액세스 권한을 부여하기 전에이 작업을 수행했습니다. (sudo가 더 나은 선택 이었지만, 나는 생각한다)

내가 조심해야 할 가장 중요한 것은 사용자 중 하나를 삭제하는 것과 같은 것입니다. 프로그램 혼동되어 두 사용자 또는 둘 다에 속하는 파일 또는 이와 유사한 것들이 삭제 있습니다 .

실제로 프로그래머는 아마도 사용자와 UID 사이에 1 : 1 관계있다고 가정 하므로 userdel에 대해 설명한 것과 비슷한 다른 프로그램에서 예기치 않은 결과가 발생할 수 있습니다.