/etc/group 및 /etc/passwd 파일을 정렬할 수 있나요?

/etc/group 및 /etc/passwd 파일을 정렬할 수 있나요?

/etc/group새로운 사용자를 추가하고 자신의 사용자 및/또는 그룹을 추가하는 프로그램을 설치하여 성장했습니다 . 에 대해서도 마찬가지입니다 /etc/passwd. 이제 구조가 부족하여 편집이 약간 번거롭습니다.

저 할 수 있어요이 파일을 정렬하세요(예: 숫자 ID 또는 이름의 알파벳 순서로) 시스템 및/또는 패키지 관리자에 부정적인 영향을 미치지 않습니까?

그것은 중요하지 않다고 생각하지만 단지 두 번째 의견을 듣고 싶었는지 확인하기 위한 것입니다. 어쩌면 root첫 번째 행이나 처음 1,000개 행 등이 되어야 할까요?

마찬가지이다 /etc/*shadow.

답변1

당신은해야알았어 이렇게 해: 실제로 기사와 설명서에 따르면 및 각각 을 사용하여 UID/GID별로 정렬 /etc/passwd할 수 있습니다 ./etc/grouppwck -sgrpck -s

답변2

이것이 일반적으로 괜찮을 것이라는 ErikF의 주장은 옳지만, 한 가지 잠재적인 문제를 지적하고 싶습니다.

서로 다른 사용자 이름을 동일한 UID에 매핑할 수 있습니다.이 기능을 활용하면 UID를 사용자 이름에 다시 매핑하는 도구는 일반적으로 해당 UID에 대해 찾은 첫 번째 사용자 이름을 선택합니다 /etc/passwd. 정렬하면 다른 사용자 이름이 먼저 나타날 수 있습니다. 표시 목적(예: ls -l출력)을 위해서는 두 사용자 이름 중 하나가 유효해야 하지만 사용자 이름 A의 요청을 수락하도록 무언가를 구성했을 수 있으며 사용자 이름 B에서 오는 요청이 표시되면 A와 B가 동일한 사용자인 경우에도 이 요청을 거부합니다. .

답변3

첫 번째 줄에 루트를 설정하는 것은 오랫동안 사실상의 "표준"이었습니다. 이는 문제를 처리하거나 시스템을 복구할 때 셸을 수정하거나 암호를 제거해야 하는 경우 매우 편리할 수 있습니다.

passwd마찬가지로, 나는 daemon/utils 사용자를 중간에 두고 표준 사용자를 마지막에 두는 것을 선호합니다 shadow.

hvd답변은 사용자 순서를 방해하는 데에도 유용합니다. 특히 많은 사용자가 답변을 수동으로 유지 관리하는 시스템에서는 더욱 그렇습니다.

예를 들어 표준 사용자에 대해서만 파일을 정렬할 수 있다면 모든 사용자에 대해 순서를 변경하는 것보다 더 합리적이라고 생각합니다.

답변4

다음은 Shadow/gshadow 파일을 유사하게 정렬하기 위한 다소 복잡한 bash 코드입니다.안전하게( vipw -s/ 사용 vigr -s) 및 명령줄에서 다음을 수행합니다.

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 -cvipw/ 변수로 지정된 편집기 인 vim 편집기에 명령을 전달합니다 .vigrEDITOR
  2. awk 코드 정렬 shadow기준 passwd(및 gshadow기준 group)
  3. 백슬래시는 단순히 인용 수준에 필요한 여러 이스케이프 수준에 해당합니다.
  4. 두 번째 명령(-c \"wq! \")은 정렬된 파일을 강제로 쓰고 닫습니다. Shadow/gshadow는 일반적으로 모드 000(즉, 쓰기 불가능)이므로 강제 적용이 필요합니다. 쉘이 bash 이벤트를 참조하는 "!\"로 해석하는 것을 방지하려면 "!"와 "\" 사이의 공백이 필요합니다.

관련 정보