이것시스템 응용 프로그램/그림자내 GNU/Linux 시스템의 패키지에는 useradd
이전에 간과했던 옵션인 을 지원하는 명령이 포함되어 있습니다. --non-unique
대학에서 집에 돌아올 때 편의를 위해 원래 사용자 이름(집에서 임의의 이름)에 대한 새 사용자 이름을 만들었습니다.
useradd --non-unique -u 1001 \
--no-create-home --home-dir /home/casualname \
-g 1001 -G `id casualname -G | tr ' ' ,` universityUsername
이를 통해 ~/.ssh/config 별칭을 생성하거나 -l 옵션을 지정하지 않고도 loginuniversityUsername을 사용하여 캠퍼스에서 로그인할 수 있습니다 ssh
. 로그인 후 whoami
캐주얼네임으로 신고해주세요. 이는 Casualname이 /etc/passwd 파일의 상단에 더 가깝게 보이기 때문입니다.
이러한 별칭이 얼마나 널리 지원되는지, 그리고 이를 사용하는 데 단점이 있는지 알고 싶습니다. 또한 사용자가 /etc/passwd에서 항목을 재정렬할 수 없는 시스템에서 기본 사용자 별칭을 프록시 별칭($USER가 설정된 값)으로 선택하는 방법이 있습니까?
답변1
여러 사용자가 동일한 UID를 사용할 수 없습니다. UID가 동일하면 동일한 사용자입니다.
당신이 가지고 있는 것은 동일한 사용자에 대한 사용자 데이터베이스의 여러 항목입니다. 이것은 내가 본 모든 UNIX 변형에서 가능합니다. 사용자 이름은 어떤 항목이 사용되는지, 따라서 로그인 시 어떤 비밀번호, 홈 디렉터리 및 쉘이 적용되는지를 결정합니다. 첫 번째 항목은 사용자 데이터베이스의 ID 기반 조회가 반환할 내용을 결정합니다. 일부 애플리케이션은 이름(사용할 수 있음 $USER
)으로 사용자 데이터베이스를 조회하고 다른 애플리케이션은 UID를 사용하는 경우 첫 번째 항목을 가져오며 이에 대해 수행할 수 있는 작업은 없습니다.
귀여운 설정이지만 귀엽지만 대부분 쓸모없는 것 중 하나입니다. 이는 특이한 일입니다. 관리자 동료가 있어도 이에 대해 감사하지 않을 것입니다. 많은 애플리케이션이 이러한 상황을 처리하지 않고 제대로 수행되지 않을 수 있습니다(예: $LOGNAME
일부 기능에 따라 다른 데이터가 사용되는 결과가 발생함). 로그인한 사용자 이름에 따라 다름). 또한 오류가 발생하기 쉽습니다. 두 번째 항목을 생성하려면 루트 액세스 권한이 필요하며 두 항목을 내부 또는 외부에서 편집해야 한다는 것을 기억해야 합니다 passwd
( 예를 들어 루트 액세스가 필요한 shadow
일반 호출과 달리 비밀번호 변경 ). passwd
정당한 이유가 있는 경우에만 이 작업을 수행해야 합니다.
원하는 것이 동일한 SSH 사용자 이름을 사용하는 것이라면 다른 사람들이 수행한 작업은 다음과 같습니다.별칭.ssh/config
. 이것이 그들의 목적입니다. 설정이 더 간단하고, 더 많은 권한이 필요하지 않으며, 특이하고 잠재적으로 혼란스러울 수 있는 구성을 설정하지 않습니다.
동일한 사용자에 대해 여러 항목을 유용하게 사용하는 것 중 하나는 문제가 발생할 때 사용자를 구출하는 것입니다. 예를 들어 toor
한 계정(레거시 이름)의 셸은 시스템 복구에만 사용되는 정적으로 연결된 바이너리입니다.
답변2
실제 별칭이 아니므로 사용하지 않는 것이 좋습니다. Kerberos와 같은 일부 프로그램은 UID가 아닌 이름으로 사용자를 식별합니다.
예를 들어 다음이 작동할 수 있습니다.
kinit universityUsername
단, 다음의 경우에는 그 효과가 보장되지 않습니다.
kinit casualname
프로그램이 실제로 UID를 사용하는지 아니면 사용자 이름을 사용하는지 알지 못하면 자신과 사용 중인 프로그램을 혼동할 수 있으므로 이는 모범 사례가 아닙니다.
답변3
root
나는 다른 로그인 셸(및 홈 디렉터리)을 지정할 수 있도록 사용자에 대해 이와 같은 별칭을 사용합니다 . 그래서 내 zoot
사용자는 root
이지만다루기 힘든로그인 셸로서 홈 디렉터리를 홈 디렉터리로 사용하므로 zoot
모든 셸 구성( ~/.z*
별칭 파일 등)을 가져올 수 있습니다. 매우 편리합니다. 즉, 어떤 방식으로든 설정을 수정할 필요가 없으며 root
다른 관리자가 있다면 좋을 것입니다.
내가 알아차린 유일한 부작용은 를 사용하는 경우 rkhunter
실제로 그 일을 한 사람이 자신임을 알려야 한다는 것입니다.
/etc/rkhunter.conf
UID0_ACCOUNTS=zoot
답변4
저는 LDAP에 대해 인증하는 서버에서 이 설정을 사용합니다. 일부 중요한(관리자) 사용자도 로컬 계정을 가지고 있으므로 LDAP 또는 네트워크 문제가 있어도 우리는 잠기지 않습니다. 동일한 uid를 사용한다는 것은 모든 표준 설정을 즉시 사용할 수 있음을 의미합니다.
또한 $USER 변수의 동작도 확인했습니다. 이것은 아마도 glibc의 버그일 것입니다.
일반적으로 말하면, 이 경우 로그인하는 사용자 이름이 무엇이든 "되어야" 합니다. 사용자 ID에서 사용자 이름을 찾는 것은 잘못된 동작입니다.
주목해야 할 또 다른 중요한 측면(이미 다루었지만 다른 독자들에게 강조하고 싶습니다): 그룹 구성원은 사용자 ID가 아닌 이름으로 결정됩니다. 이는 귀하의 시나리오에서 Universityusername을 일반 사용자와 동일한 모든 그룹에 추가해야 함을 의미합니다.