Linux 에서 사용자를 나열하는 15 가지 이상의 예

이 게시물에서는 Linux 에서 사용자를 나열하는 방법에 대해 배우게됩니다. 이 외에도 Linux 사용자의 특성에 대한 다른 트릭을 알게 될 것입니다.

Linux 에는 두 가지 유형의 사용자,기본적으로 시스템과 함께 생성되는 시스템 사용자가 있습니다. 반면에 시스템 관리자가 만든 일반 사용자가 있으며 시스템에 로그인하여 사용할 수 있습니다.

목차

Linux 의 사용자 목록이 포함 된 파일은 무엇입니까?,

사용자 목록을 시작하기 전에 이러한 사용자가 Linux 에서 저장 한 위치를 알아야합니까?

사용자는 passwd 파일이라는 시스템의 텍스트 파일에 저장됩니다. 이 파일은/etc 디렉토리에 있습니다.

파일은 다음 경로에 있습니다.

$ /etc/passwd

이 파일에서 찾을 수 있습니다에 대한 모든 정보는 사용자가 시스템입니다.

모든 사용자 목록

사용자를 나열하는 것은이를 관리하는 첫 번째 단계입니다. 이런 식으로,우리는 그들이 얼마나 많은지,그리고 그들이 누구인지를 알게 될 것입니다. 리눅스에서는 거의 모든 것이 다양한 방법으로 이루어질 수 있으며 이것도 예외는 아닙니다.,

하는 목록 모든 사용자,사용할 수 있습니다 cat 명령:

$ cat /etc/passwd

에서 볼 수 있듯이 이미지,이에 대한 모든 정보를 이용합니다.

1-첫 번째 필드에 사용자 이름이 표시됩니다.

2-두 번째 필드(x 문자)는 암호화 된 암호를 나타냅니다. 암호화 된 암호는/etc/shadow 파일에 저장됩니다.

3-UID 또는 사용자 ID.

4-다음 필드는 사용자의 기본 그룹을 나타냅니다.

5-그런 다음 주소,이메일 등과 같은 사용자 ID 정보를 보여줍니다.,

6-이 후에 사용자의 홈 디렉토리가 표시됩니다.

7-마지막 필드는 해당 사용자가 사용하는 쉘입니다.

그러나 비록 이 정보는 매우 유용하는 경우에,당신은 단지고 싶은 목록이 사용자 이름 기본적인 방법으로,이 명령을 사용할 수 있습니다:

$ cut -d: -f1 /etc/passwd

이제 우리는 우리 이름에 의해서만 인쇄하는 첫번째 필드의 파일만 있습니다.

목록&이름으로 사용자 정렬

위의 명령은 Linux 에서 사용자를 나열하는 목적을 수행합니다. 그러나 알파벳 순서로 사용자를 나열하는 것은 어떻습니까?,이렇게하려면 이전 명령을 사용하지만 정렬 명령을 추가 할 것입니다.

도록 명령은 다음과 같이 될 것이다:

$ cut -d: -f1 /etc/passwd | sort

에서 볼 수 있듯이 이미지,사용자는 다음과 같습니다.

Linux 암호가없는 사용자 목록

암호가없는 사용자를 알고 적절한 조치를 취하는 것이 중요합니다. 목록이 없는 사용자가 암호를 사용하여,다음과 같은 명령:

$ sudo getent shadow | grep -Po '^*(?=:.?:)'

사용되는 regex 목록이 없는 사용자의 암호입니다.,

목록을 사용자에 의해 디스크 사용

경우에 당신은 큰 디렉토리고 당신이 알고 싶다면 어떤 사용자는 홍수가 그것을 사용할 수 있습니다 두 명령어를 얻는 디스크 사용합니다.이를 통해 이러한 사용자 중 어떤 사용자가 디스크 공간을 오용하고 있는지 감지 할 수 있습니다.

그것을 위해,그것은 충분을 사용하여 다음과 같은 명령:

$ sudo du -smc /home/* | sort -n

에서 이 방법은,당신은 사용자 주문에 의해 디스크 사용/홈 디렉토리에 있습니다.

정렬 명령에-n 을 사용하여 출력을 숫자로 정렬했습니다.,

현재 로그인 한 사용자 목록

현재 로그인 한 사용자를 나열하려면 여러 가지 방법이 있습니다. 첫번째 방법은 우리가 사용할 수 있는 사용자 명령:

$ users

그것은 목록이 사용자와의 열린 세션에서는 시스템입니다.그러나이 정보는 약간 기본이지만 자세한 내용을 제공하는 또 다른 명령이 있습니다. 명령은 단순히 w 입니다.,

$ w

이 명령으로,우리는 더 많은 정보와 같은 경우 정확한 시간 세션 시작되었고 터미널에 그는 세션에 사용할 수 있습니다.

마지막으로 who 라는 명령이 있습니다. 그것은 전체 유닉스 제품군에 사용할 수 있습니다. 그래서 당신은 FreeBSD 와 같은 다른 시스템에서 사용할 수 있습니다.

$ who

누구의 명령에,우리는 또한 몇 가지 정보에 대해 현재 로그인한 사용자. 물론,우리는 옵션-a 를 추가하고 모든 세부 사항을 보여줄 수 있습니다.,

$ who -a

이 방법은,당신은 알아에 대한 모든 것을에서 로그인한 사용자.

리눅스 사용자 목록 최근 로그인 시스템

우리가 보았을 얻는 방법 현재 로그인한 사용자,목록을 표시하는 명령은 다음 로그인 역사의 사용자가?,

사용할 수 있는 마지막 명령에 대한 자세한 정보를 얻으려면 로그인했는 장소:

$ last

거나 로그인에 의 특정 사용자

$ last 

예를 들어:

$ last angelo

이러한 사용자는 로그인 활동이있을 때 시작했고 그것이 얼마나 오래했다.

목록이 사용자는 로그인에서 특정한 날 또는 시간

What 에 대한 목록을 사용자는 로그인에서 특정한 날 또는 시간은?, 이를 달성하기 위해,우리가 사용하는 마지막 명령하지만-t 수:

$ last -t YYMMDDHHMMSS

예를 들어,

$ last -t 20190926110509

고,지금 당신이해야 할 모든 당신이 선택하는 정확한 날짜&시간 목록을 누가 기록됩니다.

목록에서 모든 사용자 그룹

가하는 방법은 두 가지 목록은 그룹의 구성원에서 리눅스,가장 쉽고 가장 직접적인 방법은 사용자에서는/etc/group 파일에 다음과 같다:

$ cat /etc/group | grep likegeeks

이 명령은 사용자에 likegeeks 그룹입니다.,다른 방법은 데비안 기반 배포판의 멤버 명령과 같은 명령을 사용하는 것입니다. 그러나 리눅스 배포판에서는 기본적으로 설치되지 않습니다.,

하에 그것을 설치 Ubuntu/리눅스 민트 19,사용 APT:

$ sudo apt install members

나의 경우에 CentOS:

$ sudo dnf install members

그것이 설치 후,명령을 실행할 수 있습니다 그의 이름을 설정할 그룹 목록을 사용:

$ members 

예를 들어,

$ members avahi

이 방법은,당신할 수 있는 목록은 사용자 그룹에 대한 데이터베이스를 최신으로 배포판. CentOS 와 같은 RedHat 기반 배포판은 어떻습니까?,

사용할 수 있습니다면 다음 명령:

$ getent group likegeeks

록 사용자와 UID

유닉스 시스템에서 각 사용자는 사용자 id 또는 ID 입니다. 운영 체제에서 내부적으로 계정을 관리하고 관리하는 역할을합니다.

일반적으로 0 에서 1000 까지의 Uid 는 시스템 사용자를위한 것입니다. 그리고 그 후 일반 사용자. 항상 Unix 시스템에서 UID zero 는 루트 사용자에게 속합니다(UID 가 0 인 사용자를 둘 이상 가질 수 있음).

그래서 지금,우리는 Awk 를 사용하여 각각의 UID 와 사용자를 나열합니다.,

명령이 수행하는 작업은 다음과 같다:

$ awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd

당신이 볼 수 있듯이,각 사용자와 그의 UID.

루트 사용자 목록

Linux 와 같은 Unix 유사 시스템에서는 일반적으로 루트 사용자가 한 명뿐입니다. 많은 것이 있다면,어떻게 나열합니까?

이를 위해,우리가 사용할 수 있는 이 명령:

$ grep 'x:0:' /etc/passwd

여기서 우리는 필터링을 얻을 수있는 파일을 사용자 UID 의 영(루트 사용자)가 있습니다.,

는 또 다른 방법을 확인하여/etc/group file:

$ grep root /etc/group

여기에는 우리가 얻고 있는 그룹의 사용자에 뿌리에서는/etc/group file.

또한 확인할 수 있습니다면 어떤 사용자 명령을 실행할 수 있으로 루트를 확인하여/etc/루트 파일:

$ cat /etc/sudoers

얻는 사용자의 총 수

를 얻는 사용자의 총 수에서 리눅스,할 수 있습니다 라인에서는/etc/passwd 파일을 사용하여 화장실 다음과 같은 명령을 입력하십시오:

$ cut -d: -f1 /etc/passwd | wc -l

좋은! 43 사용자., 그러나 여기에는 시스템 및 일반 사용자가 포함됩니다. 일반 사용자 만 수를 얻는 것은 어떻습니까?

쉬운! 우리가 알고 있기 때문에 위에서는 일반 사용자는 UID1000 크거나,우리가 사용할 수 있습니다 Awk 그들을 얻:

$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd

멋지다!

목 sudo 사용자

리눅스 시스템 유틸리티 sudo 할 수 있는 명령을 실행하는 것처럼 다른 사용자들은 보통 root 사용자.이것은 전문적인 환경에서주의를 기울여 처리해야합니다.,

또한 sudo 명령을 실행할 수있는 사용자를 아는 것이 매우 중요합니다. 이를 위해 sudo 그룹에 속한 사용자를 나열하면 충분합니다.

$ members sudo

이 그룹에 속한 사용자는 명령을 실행할 수 있으로 최고 사용자.

목록에 있는 사용자가 SSH 접속

SSH 를 액세스할 수 있습을 원격 컴퓨터 네트워크를 통해. 그것은 매우 안전하며 텔넷의 대체품으로 태어났습니다.기본적으로 모든 일반 사용자는 로그인하여 SSH 를 사용할 수 있습니다., 를 제한하려는 경우 이를 사용할 수 있습 SSH 구성 파일(/etc/ssh/ssh_config)및 추가에는 다음 지시어:

AllowUsers user1 user2 user3

또한,당신은 허용할 수 있는 그룹이 허용하는 대신 사용자에게만 사용하 AllowGroups 지침:

AllowGroups group1 group2 group3

이 지시어를 정의할 수 있는 서비스에 액세스할 수 있습니다. SSH 서비스를 다시 시작하는 것을 잊지 마십시오.

목록한 사용자 권한이 있는 파일 또는 디렉터리

우리가 줄 수 있는 하나 이상의 사용자 권한 액세스 또는 파일을 수정하는&디렉토리에 두 가지 방법이 있습니다.,

첫 번째 방법은 파일 또는 디렉토리의 그룹에 사용자를 추가하는 것입니다.

이런 식으로 위 그림과 같이 멤버 유틸리티를 사용하여 그룹 멤버를 나열 할 수 있습니다.

좋아,하지만이 사용자가이 특정 파일에만 액세스 할 수있게하려면 어떻게해야합니까(모든 그룹 권한이 아님)?

여기에 설정할 수 있습니다 ACL 이 파일을 사용하여 setfacl 다음과 같은 명령을 입력하십시오:

$ setfacl -m u:newuser:rwx myfile

여기서 우리는 사용자에게 불 newser 에 대한 권한이라는 파일을 myfile 의 권한을 읽&쓰기&실행됩니다.,

이제 파일에 액세스하거나 소유자가 수정할 수 있으며 사용자는 newuser 라고 불렀습니다. 그래서 그들을 나열하는 방법?

리 목록을 사용하여 그들 getfacl 다음과 같은 명령을 입력하십시오:

$ getfacl myfile

이 명령은 모든 사용자 권한을 가진 파일에 대한 해당 권한이 있습니다.

list locked(disabled)users

Linux 에서는 보안 조치로 사용자를 잠글 수 있습니다. 이로 주면 그것이 의심되는 사용자가 잘못된 것,그리고 당신이 원하지 않는 완전히 제거하는 사용자와 그냥 잠금 그를 조사합니다.,

을 잠그는 사용자가 사용할 수 있습니다면 다음 명령:

$ usermod -L myuser

이제 사용자 이름 myuser 더 이상 로그인할 수 있거나 사용하는 시스템입니다.

목록에 잠겨있는 모든 시스템의 사용자가 사용하여,다음과 같은 명령:

$ cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked

이것은 인쇄 잠겨있는 모든 포함하는 사용자의 시스템 사용자. 일반 사용자 만 나열하는 것은 어떻습니까?

으로 우리가 위에서 본 사용하여 Awk,우리가 할 수 있습 잠기는 일반 사용자는 다음과 같다:

$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked

매우 쉽습니다!,

나열 원격 사용자(LDAP)

좋아요,이제는 목록 모든 시스템 사용자(로컬 사용자),그러나 어떤 원격 사용자 또는 LDAP 사용자가? 글쎄,우리는 ldapsearch 와 같은 도구를 사용할 수 있지만 다른 방법이 있습니까?

다행히 예! 할 수 있는 목록은 로컬&원격 사용자와 함께 하나의 명령이라고 getent

$ getent passwd

이 명령을 모두 보여 줍니다 로컬 시스템에 사용자와 LDAP 또는 NIS 사용자 또는 다른 네트워크 사용자.이 명령의 결과를 위에서 언급 한 명령 중 하나에 동일한 방법으로 파이프 할 수 있습니다.,

또한,getent 명령할 수 있는 목록 그룹 계정을 다음과 같다:

$ getent group

확인할 수 있습니다 남자 페이지의 명령을 알고는 다른 데이터베이스의 명령에서 검색 할 수 있습니다.

결론

리눅스 시스템에서 사용자를 나열하는 것은 재미있었습니다! 이 외에도 사용자에 대한 몇 가지 팁과 다른 방법으로 관리하는 방법을 배웠습니다.

마지막으로,이 지식은 시스템의 사용자를보다 잘 관리 할 수있게 해줍니다.

튜토리얼이 유용하기를 바랍니다. 계속 돌아온다.,나는 이것이 내가 할 수있는 일이 아니라는 것을 알고 있지만,나는 내가 할 수있는 일을 알고 있다고 생각한다. 저는 2010 년부터 리눅스 시스템 관리자로 일하고 있습니다. 전 세계의 여러 클라이언트에 대해 Linux 서버를 유지 관리,보안 및 문제 해결해야 할 책임이 있습니다. 내 작업을 자동화하기 위해 쉘과 파이썬 스크립트를 작성하는 것을 좋아합니다.나는 이것을 할 수 없다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다