터미널의 모든 사용자를 나열하는 명령이 필요합니다. 그리고 터미널에서 사용자를 추가, 삭제, 수정하는 방법.
터미널로 쉽게 계정을 관리 할 수 있습니다.
awk -F: '{ print $1 }' /etc/passwd
터미널의 모든 사용자를 나열하는 명령이 필요합니다. 그리고 터미널에서 사용자를 추가, 삭제, 수정하는 방법.
터미널로 쉽게 계정을 관리 할 수 있습니다.
awk -F: '{ print $1 }' /etc/passwd
답변:
사용할 수있는 모든 로컬 사용자 를 나열하려면 다음을 수행하십시오 .
cut -d: -f1 /etc/passwd
로컬 이 아닌 것을 포함하여 인증 할 수있는 모든 사용자를 나열하려면 이 회신을 참조하십시오 .
더 유용한 사용자 관리 명령 ( 로컬 사용자로 도 제한됨 ) :
새 사용자를 추가하려면 다음을 사용할 수 있습니다.
sudo adduser new_username
또는:
sudo useradd new_username
참조 : adduser 명령과 useradd와의 차이점은 무엇입니까?
사용자를 제거 / 삭제하려면 먼저 다음을 사용할 수 있습니다.
sudo userdel username
그런 다음 삭제 된 사용자 계정의 홈 디렉토리를 삭제할 수 있습니다.
sudo rm -r / home / 사용자 이름
위의 명령을주의해서 사용하십시오!
사용자의 사용자 이름을 수정하려면
usermod -l new_username old_username
사용자의 비밀번호를 변경하려면 다음을 수행하십시오.
sudo passwd username
사용자의 쉘을 변경하려면 다음을 수행하십시오.
sudo chsh username
사용자 세부 사항을 변경하려면 (예 : 실명) :
sudo chfn username
sudo
그룹에 사용자를 추가하려면
adduser username sudo
또는
usermod -aG sudo username
: 그리고, 물론, 참조 man adduser
, man useradd
, man userdel
... 등등.
sudo chfn <username>
사용자 세부 정보 (예 : 실제 이름)를 변경하는 것을 언급하지 않았습니다 . 나는 이것을 주석으로 추가하려고 시도했지만 그렇게하려면 평판이 +50이어야한다고 말하는 오류가 발생했습니다.
키보드에서 Ctrl+ Alt+ T를 누르면 터미널이 열립니다. 열리면 아래 명령을 실행하십시오.
cat /etc/passwd
또는
less /etc/passwd
more /etc/passwd
awk를 사용할 수도 있습니다 : awk
awk -F':' '{ print $1}' /etc/passwd
adduser
대신 명령 행 useradd
에서 작성자가 실제로 자신의 작업을 알고있는 스크립트로 제한해야합니다.
이러한 종류의 정보를 얻는 가장 쉬운 방법 은 명령 맨 페이지를getent
참조하십시오 . 이 명령은 OS의 여러 요소 목록을 제공하기 때문에 기억하는 데 유용한 것과 동일한 출력을 제공합니다.getent
cat /etc/passwd
입력 한 모든 사용자 목록을 얻으려면 (사용자가에 나열되어 있음 /etc/passwd
)
getent passwd
시스템에 사용자 newuser 를 추가하려면 다음을 입력하십시오.
sudo adduser newuser
모든 기본 설정이 적용된 사용자를 만듭니다.
보너스 : 모든 사용자 (예 : anyuser )를 그룹 (예 : cdrom ) 유형에 추가하려면
sudo adduser anyuser cdrom
다음을 사용하여 사용자 (예 : 폐기 됨 ) 를 삭제합니다.
sudo deluser obsolete
그의 홈 디렉토리 / 메일을 삭제하려면 다음을 입력하십시오.
sudo deluser --remove-home obsolete
과
sudo deluser --remove-all-files obsolete
사용자 제거 하고 전체 시스템이 사용자가 소유 한 모든 파일을.
getent passwd
올바른 명령 인 최고의 답변입니다
이것은 대부분의 정상적인 상황 에서 모든 일반 (시스템이 아닌, 이상한 것이 아닌 등) 사용자에게 표시됩니다.
awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd
이것은 다음에 의해 작동합니다.
/etc/passwd
:
구분 기호로많은 Linux 시스템에서 1000 이상의 사용자 이름은 권한이없는 (일반적으로 말할 수 있음) 사용자를 위해 예약되어 있기 때문입니다. 여기 에 대한 몇 가지 정보 :
UID (사용자 ID)는 Unix 계열 운영 체제에서 각 사용자에게 할당 한 고유 한 양의 정수입니다. 각 사용자는 UID로 시스템에 식별되며 사용자 이름은 일반적으로 사람을위한 인터페이스로만 사용됩니다.
UID는 해당 사용자 이름 및 기타 사용자 별 정보와 함께 / etc / passwd 파일에 저장됩니다.
세 번째 필드에는 UID가 포함되고 네 번째 필드에는 그룹 ID (GID)가 포함되며 기본적으로 모든 일반 사용자의 UID와 같습니다.
Linux 커널 2.4 이상에서 UID는 0에서 4,294,967,296 사이의 값을 나타낼 수있는 부호없는 32 비트 정수입니다. 그러나 16 비트 UID 만 수용 할 수있는 이전 커널 또는 파일 시스템을 사용하는 시스템과의 호환성을 유지하려면 최대 65,534까지만 값을 사용하는 것이 좋습니다.
UID 0은 특별한 역할을합니다. 항상 루트 계정입니다 (즉, 전능 한 관리 사용자). 이 계정에서 사용자 이름을 변경하고 동일한 UID를 사용하여 추가 계정을 만들 수 있지만 보안 관점에서 어떤 조치도 현명하지 않습니다.
UID 65534는 일반적으로 권한이없는 일반 사용자와 달리 시스템 권한이없는 사용자는 누구에게도 예약되어 있지 않습니다. 이 UID는 종종 FTP (파일 전송 프로토콜) 또는 HTTP (하이퍼 텍스트 전송 프로토콜)를 통해 시스템에 원격으로 액세스하는 개인에게 사용됩니다.
UID 1 ~ 99는 전통적으로 wheel, daemon, lp, operator, news, mail 등과 같은 특수 시스템 사용자 (의사 사용자라고도 함)를 위해 예약되어 있습니다. 일부 관리 작업은 일반 사용자에게 제공되는 것보다 더 많은 권한이 필요합니다.
일부 Linux 배포판 (예 : 버전)은 권한이없는 사용자의 UID를 100에서 시작합니다. Red Hat과 같은 다른 배포판은 500에서 시작하고, 다른 데비안에서는 데비안에서는 1000에서 시작합니다. 배포판의 차이로 인해 수동 조직의 네트워크에서 여러 배포가 사용되는 경우 개입이 필요할 수 있습니다.
또한 1000 ~ 9999와 같은 로컬 사용자를위한 UID 블록과 10000 ~ 65534와 같은 원격 사용자 (예 : 네트워크의 다른 사용자)를위한 다른 블록을 예약하는 것이 편리 할 수 있습니다. 중요한 것은 결정하는 것입니다. 계획을 세우고 준수하십시오.
특정 유형의 사용자를 위해 숫자 블록을 예약하는이 방법의 장점 중 하나는 의심스러운 사용자 활동에 대해 시스템 로그를 검색하는 것이 더 편리하다는 것입니다.
대중적인 신념과는 달리 UID 필드의 각 항목이 고유하지 않아도됩니다. 그러나 고유하지 않은 UID는 보안 문제를 일으킬 수 있으므로 전체 조직에서 고유 한 UID를 유지해야합니다. 마찬가지로, 이전 사용자의 UID 재활용은 가능한 오랫동안 피해야합니다.
getent
에서 직접 읽는 대신 /etc/passwd
및 조회 UID_MIN
/ UID_MAX
대신 하드 코딩 값을 :getent passwd | awk -F: "{if (\$3 >= $(awk '/^UID_MIN/ {print $2}' /etc/login.defs) && \$3 <= $(awk '/^UID_MAX/ {print $2}' /etc/login.defs)) print \$1}"
로그인 할 수있는 모든 사용자 목록 (bin, deamon, mail, sys 등과 같은 시스템 사용자는 없음)
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
새로운 사용자 추가
sudo adduser new_username
또는
sudo useradd new_username
사용자 이름 삭제 / 제거
sudo userdel username
홈 디렉토리를 삭제하려는 경우 (기본 디렉토리 / home / username)
sudo deluser --remove-home username
또는
sudo rm -r /path/to/user_home_dir
이 사용자로부터 시스템의 모든 파일을 삭제하려는 경우 (홈 디렉토리뿐만 아니라)
sudo deluser --remove-all-files
adduser
과 useradd
. 또한 sudo
첫 번째 명령에 -prefix를 추가하십시오 . 비밀번호 섀도 파일은 루트로만 읽을 수 있습니다.
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
bin, daemon 등을 포함한 모든 사용자에게 다음 경고를 표시했습니다. escape sequence \$' treated as plain
$ '이 게시물 stackoverflow.com/a/25867768/847954를 발견 하고 백 슬래시를 하나 더 추가했으며 정상적으로 작동했습니다.awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow
여기에 이것을 정렬하는 데 도움이되는 트릭이 있습니다. 사용자를 입력하고 Tab 키를 두 번 누르면 터미널이 자동 완성됩니다. 사용자와 함께 존재하는 모든 명령이 처음 4 자로 나열됩니다.
user (tab tab)
당신이 구글에 명령에 대한 자세한 내용을 알고 싶다면 manadd userdel usermod users users-admin 가능한 옵션으로 나에게 man man useradd giveuseradd-새로운 사용자를 만들거나 기본 새로운 사용자 정보를 업데이트하십시오 ...
사용자를 나열하려면 Mitch가 말한 내용을 따라야합니다.
bash에서 탭 완성을 좋아하면 기억하는 것을 막을 수 있습니다.
머신의 / home-folder에 홈 디렉토리가있는 사용자를 찾으려면 다음 명령을 실행하십시오.
cd /home
ls
그런 다음 서버에 로그인 할 권한이있는 사용자를 볼 수 있습니다. 모든 사용자의 파일을 조사하려면 루트 사용자 여야합니다.
/home
. 우분투는 기본적으로 사용자 디렉토리를 저장하지만 필수는 아닙니다.
ls /home
삭제 된 사용자의 사용자 디렉토리를 포함 할 수도 있습니다.
sed 's/:.*//' /etc/passwd