/ etc / group 및 / etc / passwd 파일을 정렬 할 수 있습니까?


33

본인 /etc/group은 새로운 사용자를 추가하고 자신의 사용자 및 / 또는 그룹을 추가 한 프로그램을 설치하여 성장했습니다. 의 경우도 마찬가지입니다 /etc/passwd. 구조가 부족하여 편집 작업이 약간 번거로워졌습니다.

월 나는 일종의 이러한 파일 (예를 들어 숫자 ID 또는 이름으로 알파벳) 시스템 및 / 또는 패키지 관리자에 부정적인 영향없이?

나는 그것이 중요하지 않다고 생각하지만, 나는 단지 2 차 의견을 얻고 싶습니다. 아마도 root첫 번째 줄이거 나 첫 번째 1k 줄 또는 다른 것이어야합니까?

동일합니다 /etc/*shadow.


7
"구조가 부족하여 편집이 약간 번거로워졌습니다."왜 수동으로 해당 파일을 편집합니까?
케빈

파일 정렬은 편집에 어떤 도움이됩니까? 관련 계정을 그룹화 한 다음 행 범위에서 비슷한 변경을 수행하기 때문입니까? 그러나 uid 또는 이름으로 정렬하면 관련 계정이 인접합니까?
Barmar

@Barmar 사용자 계정이 범위별로 그룹화되고 시스템 계정과 분리되어 있기 때문에 주로 도움이되었습니다 (UID별로 정렬시). 따라서로 편집 할 때 올바른 라인을 찾아 검사하거나 변경하는 것이 더 쉽습니다 vi.
Ned64

답변:


50

당신은해야 확인이 일을 당신이 정렬 할 수 있습니다, 실제로 기사에 따르면 및 설명서를 읽고 : /etc/passwd/etc/group에 UID / GID로 pwck -sgrpck -s각각.


3
@Menasheh이 사이트의 색상은 다른 사이트만큼 눈에 띄지 않지만이 답변의 "이 작업을 수행해도 괜찮습니다"는 하이퍼 링크입니다.
hvd

2
알았어.하지만 ... 일반적으로 / etc / passwd 및 유사한 파일을 수동으로 편집해야하는 유효한 이유가 있습니까? 작성 및 수정하도록 설계된 도구를 통해 액세스하는 것이 더 좋지 않습니까?
mickeyf_supports_Monica

@mickeyf /etc/passwd이동 / 구조 변경 (전역 실 또는 전화 번호 변경 등)으로 인해 모든 사용자에 대한 GECOS 필드 변경과 같이 일괄 변경을 수행 할 때 사람들이 수동으로 편집하는 것을 보았습니다 . 때때로 자라는 이유.
ErikF 2019

44

ErikF는 이것이 일반적으로 괜찮다는 것이 맞지만, 한 가지 잠재적 인 문제를 지적하고 싶습니다.

다른 사용자 이름을 동일한 UID에 매핑 할 수 있습니다. 이를 사용하는 경우 UID를 사용자 이름으로 다시 매핑하는 도구는 일반적으로에서 해당 UID에 대해 찾은 첫 번째 사용자 이름을 선택합니다 /etc/passwd. 정렬하면 다른 사용자 이름이 먼저 표시 될 수 있습니다. 표시 목적 (예 : ls -l출력)의 경우, 사용자 이름이 작동해야하지만 사용자 이름 A의 요청을 수락하도록 일부 프로그램을 구성했을 수 있습니다. 여기서 A 및 B 인 경우에도 사용자 이름 B에서 오는 요청이 있으면 해당 요청을 거부합니다. 같은 사용자입니다.


고맙게도, 수십 년 전에 솔라리스에서 tcsh와 uid 0을 가진 사용자를 가질 수있었습니다. 그러나 Linux 시스템은이 상황을 자체적으로 작성하지는 않습니다. 해당 상황에 문제가 있으려면 해당 사용자를 수동으로 작성해야합니다.
Ned64

2

첫 줄에 루트를 두는 것은 사실상 "표준"이었으며 오랫동안 문제를 처리하거나 시스템을 복구 할 때 쉘을 수정하거나 암호를 삭제해야하는 경우 매우 편리합니다.

마찬가지로 나는 모두의 끝에서 중간 및 표준 사용자의 데몬 / 유틸 사용자를 선호 passwd하고 shadow.

hvd 또한 많은 사용자가 수동으로 관리하는 시스템에서 사용자 순서를 방해하는 것에 대한 대답도 매우 좋습니다.

예를 들어 표준 사용자의 경우에만 파일을 정렬 할 수 있다면 모든 사용자의 순서를 변경하는 것보다 더 합리적인 방법입니다.


1
UID를 기준으로 숫자로 정렬하면 원하는 순서를 가져와야합니다. 루트는 항상 0이며 데몬은 일반적으로 100 미만의 UID를 갖습니다.
Barmar

@Barmar 이름이 아닌 UID로 정렬하는 경우, 기억해 주셔서 감사합니다.
Rui F Ribeiro

0

다음은 그림자 / gshadow 파일을 유사하게 안전하게 ( vipw -s/ 사용 vigr -s) 정렬 하고 명령 줄에서 대신 하는 약간 털이 많은 bash 코드입니다 .

EDITOR="/usr/bin/vi -c \"1,\\\$!awk 'BEGIN {FS = \\\":\\\"} FNR==NR {x2[\\\$1] = \\\$0; next} \\\$1 in x2 {print x2[\\\$1]}' - /etc/passwd\" -c \"wq! \" >/dev/null 2>&1" vipw -s

EDITOR="/usr/bin/vi -c \"1,\\\$!awk 'BEGIN {FS = \\\":\\\"} FNR==NR {x2[\\\$1] = \\\$0; next} \\\$1 in x2 {print x2[\\\$1]}' - /etc/group\" -c \"wq! \" >/dev/null 2>&1" vigr -s

노트:

  1. vi -c위한 에디터에 할당 VIM 편집기 명령 전달 vipw/ vigr의해 EDITOR변수
  2. AWK 코드의 종류 shadow에 의해 passwd(그리고 gshadow에 의해 group)
  3. 백 슬래시는 따옴표 수준에 해당하는 여러 수준의 이스케이프 일뿐입니다.
  4. 두 번째 명령 (-c \ "wq! \")은 정렬 된 파일을 쓰고 닫습니다. shadow / gshadow는 종종 000 모드 (즉, 쓰기 불가능)이므로 힘이 필요합니다. '!'사이의 공백에 유의하십시오. bash 이벤트를 참조하는 '! \'로 쉘이 해석하지 못하게하려면 '\'가 필요합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.