/etc/group
새로운 사용자를 추가하고 자신의 사용자 및/또는 그룹을 추가하는 프로그램을 설치하여 성장했습니다 . 에 대해서도 마찬가지입니다 /etc/passwd
. 이제 구조가 부족하여 편집이 약간 번거롭습니다.
저 할 수 있어요이 파일을 정렬하세요(예: 숫자 ID 또는 이름의 알파벳 순서로) 시스템 및/또는 패키지 관리자에 부정적인 영향을 미치지 않습니까?
그것은 중요하지 않다고 생각하지만 단지 두 번째 의견을 듣고 싶었는지 확인하기 위한 것입니다. 어쩌면 root
첫 번째 행이나 처음 1,000개 행 등이 되어야 할까요?
마찬가지이다 /etc/*shadow
.
답변1
당신은해야알았어 이렇게 해: 실제로 기사와 설명서에 따르면 및 각각 을 사용하여 UID/GID별로 정렬 /etc/passwd
할 수 있습니다 ./etc/group
pwck -s
grpck -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
노트:
vi -c
vipw
/ 변수로 지정된 편집기 인 vim 편집기에 명령을 전달합니다 .vigr
EDITOR
- awk 코드 정렬
shadow
기준passwd
(및gshadow
기준group
) - 백슬래시는 단순히 인용 수준에 필요한 여러 이스케이프 수준에 해당합니다.
- 두 번째 명령(-c \"wq! \")은 정렬된 파일을 강제로 쓰고 닫습니다. Shadow/gshadow는 일반적으로 모드 000(즉, 쓰기 불가능)이므로 강제 적용이 필요합니다. 쉘이 bash 이벤트를 참조하는 "!\"로 해석하는 것을 방지하려면 "!"와 "\" 사이의 공백이 필요합니다.