우분투 사용자를 추가합니다. 사용자 관리. 차단된 사용자의 SSH 액세스

사용자 관리는 보안 시스템을 유지하는 데 중요한 부분입니다. 비효율적인 사용자 및 권한 관리로 인해 많은 시스템이 손상되는 경우가 많습니다. 따라서 간단하고 효과적인 사용자 계정 관리 기술을 통해 서버를 보호할 수 있는 방법을 이해하는 것이 중요합니다.

Ubuntu 개발자는 모든 Ubuntu 설치에서 기본적으로 관리 루트 계정을 비활성화하기로 양심적인 결정을 내렸습니다. 이는 루트 계정이 삭제되었거나 액세스할 수 없다는 의미는 아닙니다. 단지 가능한 암호화된 값과 일치하지 않는 비밀번호가 부여되었을 뿐이므로 직접 로그인할 수 없습니다.

대신 사용자는 시스템 관리 업무를 수행하기 위해 sudo라는 도구를 사용하는 것이 좋습니다. Sudo를 사용하면 권한 있는 사용자가 루트 계정에 속한 비밀번호를 알 필요 없이 자신의 비밀번호를 사용하여 일시적으로 권한을 높일 수 있습니다. 이 간단하면서도 효과적인 방법은 모든 사용자 작업에 대한 책임을 제공하고 사용자가 해당 권한으로 수행할 수 있는 작업에 대한 세부적인 제어를 관리자에게 제공합니다.

    어떤 이유로든 루트 계정을 활성화하려면 간단히 비밀번호를 입력하세요.

    루트 비밀번호를 사용한 구성은 지원되지 않습니다.

    sudo 비밀번호

    Sudo는 비밀번호를 묻는 메시지를 표시한 다음 아래와 같이 루트에 대한 새 비밀번호를 제공하도록 요청합니다.

    사용자 이름의 비밀번호: (자신의 비밀번호를 입력하세요.) 새 UNIX 비밀번호를 입력하세요: (루트의 새 비밀번호를 입력하세요)새 UNIX 비밀번호를 다시 입력하세요. (루트에 대해 새 비밀번호를 반복) passwd: 비밀번호가 성공적으로 업데이트되었습니다.

    루트 계정 비밀번호를 비활성화하려면 다음 passwd 구문을 사용하십시오.

    sudo passwd -l 루트

    그러나 루트 계정 자체를 비활성화하려면 다음 명령을 사용하십시오.

    usermod --만료 1

    맨 페이지를 읽어 Sudo에 대한 자세한 내용을 읽어보세요.

    남자 스도

기본적으로 Ubuntu 설치 프로그램에서 생성된 초기 사용자는 인증된 sudo 사용자로 /etc/sudoers 파일에 추가된 "sudo" 그룹의 구성원입니다. sudo를 통해 다른 계정에 전체 루트 액세스 권한을 부여하려면 해당 계정을 sudo 그룹에 추가하면 됩니다.

사용자 추가 및 삭제

로컬 사용자 및 그룹을 관리하는 프로세스는 간단하며 대부분의 다른 GNU/Linux 운영 체제와 거의 다르지 않습니다. Ubuntu 및 기타 Debian 기반 배포판에서는 계정 관리를 위해 "adduser" 패키지 사용을 권장합니다.

    사용자 계정을 추가하려면 다음 구문을 사용하고 프롬프트에 따라 계정에 비밀번호와 이름, 전화번호 등과 같은 식별 가능한 특성을 제공하십시오.

    sudo adduser 사용자 이름

    사용자 계정과 해당 기본 그룹을 삭제하려면 다음 구문을 사용하십시오.

    sudo deluser 사용자 이름

    계정을 삭제해도 해당 홈 폴더는 제거되지 않습니다. 폴더를 수동으로 삭제할지, 아니면 원하는 보존 정책에 따라 보관할지 여부는 귀하에게 달려 있습니다.

    필요한 예방 조치를 취하지 않으면 이전 소유자와 동일한 UID/GID를 사용하여 나중에 추가된 모든 사용자가 이제 이 폴더에 액세스할 수 있다는 점을 기억하십시오.

    이러한 UID/GID 값을 루트 계정과 같이 보다 적절한 값으로 변경하고 향후 충돌을 피하기 위해 폴더 위치를 변경할 수도 있습니다.

    sudo chown -R 루트:루트 /home/사용자 이름/ sudo mkdir /home/archived_users/ sudo mv /home/사용자 이름 /home/archived_users/

    사용자 계정을 일시적으로 잠그거나 잠금 해제하려면 각각 다음 구문을 사용하십시오.

    sudo passwd -l 사용자 이름 sudo passwd -u 사용자 이름

    개인화된 그룹을 추가하거나 삭제하려면 각각 다음 구문을 사용하십시오.

    sudo addgroup 그룹 이름 sudo delgroup 그룹 이름

    그룹에 사용자를 추가하려면 다음 구문을 사용하십시오.

    sudo adduser 사용자 이름 그룹 이름

사용자 프로필 보안

새 사용자가 생성되면 adduser 유틸리티는 /home/username이라는 새로운 홈 디렉토리를 생성합니다. 기본 프로필은 모든 프로필 기본 사항을 포함하는 /etc/skel 디렉터리에 있는 내용을 따라 모델링됩니다.

서버가 여러 사용자의 본거지인 경우 기밀성을 보장하기 위해 사용자 홈 디렉터리 권한에 세심한 주의를 기울여야 합니다. 기본적으로 Ubuntu의 사용자 홈 디렉터리는 전 세계 읽기/실행 권한으로 생성됩니다. 이는 모든 사용자가 다른 사용자 홈 디렉토리의 내용을 찾아보고 액세스할 수 있음을 의미합니다. 이는 귀하의 환경에 적합하지 않을 수 있습니다.

    현재 사용자 홈 디렉터리 권한을 확인하려면 다음 구문을 사용하십시오.

    ls -ld /홈/사용자 이름

    다음 출력은 /home/username 디렉터리에 누구나 읽을 수 있는 권한이 있음을 보여줍니다.

    drwxr-xr-x 2 사용자 이름 사용자 이름 4096 2007-10-02 20:03 사용자 이름

    다음 구문을 사용하여 누구나 읽을 수 있는 권한을 제거할 수 있습니다.

    sudo chmod 0750 /홈/사용자 이름

    어떤 사람들은 모든 하위 폴더와 파일을 수정하는 재귀 옵션(-R)을 무분별하게 사용하는 경향이 있지만 이는 반드시 필요한 것은 아니며 다른 바람직하지 않은 결과를 초래할 수도 있습니다. 상위 디렉터리만으로도 상위 디렉터리 아래에 있는 항목에 대한 무단 액세스를 방지하는 데 충분합니다.

    이 문제에 대한 훨씬 더 효율적인 접근 방식은 사용자 홈 폴더를 생성할 때 adduser 전역 기본 권한을 수정하는 것입니다. /etc/adduser.conf 파일을 편집하고 DIR_MODE 변수를 적절하게 수정하면 모든 새 홈 디렉토리가 올바른 권한을 받게 됩니다.

    이전에 언급한 기술 중 하나를 사용하여 디렉터리 권한을 수정한 후 다음 구문을 사용하여 결과를 확인합니다.

    ls -ld /홈/사용자 이름

    아래 결과는 누구나 읽을 수 있는 권한이 제거되었음을 보여줍니다.

    drwxr-x--- 2 사용자 이름 사용자 이름 4096 2007-10-02 20:03 사용자 이름

비밀번호 정책

강력한 비밀번호 정책은 보안 상태의 가장 중요한 측면 중 하나입니다. 많은 성공적인 보안 침해에는 취약한 비밀번호에 대한 단순한 무차별 공격과 사전 공격이 포함됩니다. 로컬 암호 시스템과 관련된 모든 형태의 원격 액세스를 제공하려는 경우 최소 암호 복잡성 요구 사항, 최대 암호 수명 및 인증 시스템에 대한 빈번한 감사를 적절하게 처리해야 합니다.

최소 비밀번호 길이

기본적으로 Ubuntu에서는 최소 6자의 비밀번호 길이와 몇 가지 기본 엔트로피 검사가 필요합니다. 이 값은 아래에 설명된 /etc/pam.d/common-password 파일에서 제어됩니다.

비밀번호 pam_unix.so 모호함 sha512

최소 길이를 8자로 조정하려면 해당 변수를 min=8로 변경하세요. 수정 사항은 아래에 설명되어 있습니다.

비밀번호 pam_unix.so 모호함 sha512 minlen=8

기본 비밀번호 엔트로피 확인 및 최소 길이 규칙은 sudo 수준 명령을 사용하여 새 사용자를 설정하는 관리자에게 적용되지 않습니다.

비밀번호 만료

사용자 계정을 생성할 때 최소 및 최대 비밀번호 사용 기간을 설정하여 사용자가 비밀번호가 만료되면 비밀번호를 변경하도록 하는 정책을 만들어야 합니다.

    사용자 계정의 현재 상태를 쉽게 보려면 다음 구문을 사용하십시오.

    sudo chage -l 사용자 이름

    아래 출력은 사용자 계정에 대한 흥미로운 사실, 즉 적용된 정책이 없다는 사실을 보여줍니다.

    마지막 비밀번호 변경: 2015년 1월 20일 비밀번호 만료: never 비밀번호 비활성: never 계정 만료: never 비밀번호 변경 사이의 최소 일수: 0 비밀번호 변경 사이의 최대 일수: 99999 비밀번호가 만료되기 전 경고 일수: 7

    이러한 값을 설정하려면 다음 구문을 사용하고 대화형 프롬프트를 따르십시오.

    sudo 사용자 이름 변경

    다음은 명시적 만료 날짜(-E)를 2015년 1월 31일로 수동으로 변경하고, 최소 비밀번호 사용 기간(-m)은 5일, 최대 비밀번호 사용 기간(-M)은 90일, 비활성 상태로 변경할 수 있는 방법에 대한 예이기도 합니다. 비밀번호 만료 후 5일의 기간(-I) 및 비밀번호 만료 전 14일의 경고 기간(-W):/home/username/.ssh/authorized_keys .

    추가 SSH 인증 기능을 방지하려면 사용자의 홈 폴더에서 .ssh/ 디렉터리를 제거하거나 이름을 바꾸십시오.

    기존 인바운드 또는 아웃바운드 연결이 있을 수 있으므로 비활성화된 사용자가 설정한 SSH 연결이 있는지 확인하십시오. 발견된 것을 모두 죽이십시오.

    누구 | grep 사용자 이름(pts/# 터미널을 얻기 위해) sudo pkill -f pts/#

    SSH 액세스가 필요한 사용자 계정으로만 SSH 액세스를 제한하세요. 예를 들어 "sshlogin"이라는 그룹을 생성하고 /etc/ssh/sshd_config 파일에 있는 AllowGroups 변수와 연결된 값으로 그룹 이름을 추가할 수 있습니다.

    AllowGroups SSH 로그인

    그런 다음 허용된 SSH 사용자를 "sshlogin" 그룹에 추가하고 SSH 서비스를 다시 시작하십시오.

    sudo adduser 사용자 이름 sshlogin sudo systemctl 재시작 sshd.service

    외부 사용자 데이터베이스 인증

    대부분의 기업 네트워크에는 모든 시스템 리소스에 대한 중앙 집중식 인증 및 액세스 제어가 필요합니다. 외부 데이터베이스에 대해 사용자를 인증하도록 서버를 구성한 경우 외부 및 로컬 모두에서 사용자 계정을 비활성화해야 합니다. 이렇게 하면 로컬 대체 인증이 불가능해집니다.

이 튜토리얼에서는 데이터 및 홈 디렉터리와 함께 Linux 사용자를 삭제하는 방법을 살펴보겠습니다.

대기업의 시스템 관리자라면 Linux 사용자를 삭제하는 것이 매우 일반적인 작업일 가능성이 높습니다. 계정이 불필요해지거나 사용자가 조직을 떠난 후에는 보안 허점을 남기지 않도록 해당 계정을 삭제해야 합니다.

Linux 사용자를 삭제할 때 홈 디렉터리를 삭제하여 새 사용자와 해당 파일을 위한 저장 공간을 확보하는 것도 중요합니다. 먼저 터미널을 사용하여 Linux 사용자를 삭제하는 방법을 살펴본 다음 가장 널리 사용되는 배포판 중 하나인 Ubuntu의 그래픽 인터페이스에서 이 작업을 수행하는 방법에 대해 이야기하겠습니다.

실제 환경에서 몇 가지 연습을 수행하려면 losst 및 losst1라는 두 명의 사용자와 홈 디렉터리를 만든 다음 삭제해 보겠습니다.

추가 사용자 손실
$ 비밀번호 분실

adduser losst1
$passwd 손실t1

여기서는 adduser 명령을 사용하여 사용자 계정을 생성하고 passwd를 사용하여 비밀번호를 생성합니다.

터미널에서 Linux 사용자를 삭제하는 방법을 살펴보겠습니다. 이렇게 하려면 데비안 및 파생 시스템에서는 deluser, RedHat에서는 userdel 명령을 사용합니다. 이 두 가지 유틸리티에 대해 자세히 살펴보겠습니다.

델루저에 대한 설명

deluser 명령 구문은 매우 간단합니다.

$deluser 매개변수 사용자

deluser 명령 설정은 /etc/deluser.conf 파일에 있으며, 다른 설정 중에서 사용자의 홈 폴더 및 파일에 수행해야 할 작업을 지정합니다.

다음 명령을 실행하여 이러한 설정을 보고 변경할 수 있습니다.

vi /etc/deluser.conf

다음 설정을 자세히 살펴보겠습니다.

  • REMOVE_HOME- 사용자의 홈 디렉토리를 삭제합니다.
  • REMOVE_ALL_FILES- 모든 사용자 파일 삭제
  • 지원- 사용자 파일 백업
  • BACKUP_TO- 백업 폴더
  • ONLY_IF_EMPTY- 사용자 그룹이 비어 있으면 삭제합니다.

이러한 설정은 사용자 삭제 시 유틸리티의 기본 동작을 결정합니다. 물론 명령에 대한 매개변수를 사용하여 재정의할 수 있습니다.

다음 매개변수가 지원되며 설정과 유사하지만 더 많은 옵션이 있습니다.

  • --체계- 시스템 사용자인 경우에만 삭제
  • --지원- 사용자 파일의 백업 복사본 만들기
  • --백업 대상- 백업용 폴더
  • --제거-집- 홈 폴더 삭제
  • --제거-모든 파일- 파일 시스템의 모든 사용자 파일을 삭제합니다.

사용자델에 대한 설명

userdel 유틸리티는 약간 다르게 작동합니다. 여기에는 설정 파일이 없지만 유틸리티에 수행할 작업을 지시할 수 있는 옵션이 있습니다. 구문은 비슷합니다.

$ userdel 매개변수 사용자

  • -f, --force- 사용자가 로그인 상태인 경우에도 강제 삭제됩니다.
  • -r, --제거- 시스템에서 사용자의 홈 디렉토리와 파일을 삭제합니다.
  • -지- 이 사용자에 대한 모든 SELinux 개체를 삭제합니다.

서버에서 사용자를 제거하려면 아래에서 고려할 고급 방법을 사용하는 것이 좋습니다. 사용자는 서버를 이용하면서 다양한 프로그램과 서비스를 실행하게 됩니다. 사용자는 서버에 로그인하지 않고 사용자를 대신하여 실행 중인 모든 프로그램이 중지된 경우에만 올바르게 삭제할 수 있습니다. 프로그램은 사용자에게 속한 다양한 파일을 사용할 수 있고 이로 인해 해당 파일이 삭제되는 것을 방지할 수 있기 때문입니다. 따라서 사용자의 파일은 완전히 삭제되지 않고 그대로 남아 시스템을 방해하게 됩니다.

사용자 계정 차단

passwd 유틸리티를 사용하여 사용자 계정을 잠글 수 있습니다. 이렇게 하면 시스템에 대한 사용자 액세스가 거부되고 새 프로세스가 시작되지 않습니다.

--lock 옵션과 함께 passwd 명령을 실행합니다.

passwd --잠금 손실

passwd: 비밀번호 만료 정보가 변경되었습니다.

실행 중인 모든 사용자 프로세스를 종료합니다.

이제 사용자로 실행 중인 모든 프로세스를 찾아 종료해 보겠습니다.

pgrep을 사용하여 프로세스를 찾아보겠습니다.

다음과 같이 각 프로세스의 pid를 ps 명령에 전달하면 이러한 프로세스가 무엇인지 더 자세히 확인할 수 있습니다.

ps -f --pid $(pgrep -u losst)

UID PID PPID C STIME TTY 상태 시간 CMD
losst 14684 14676 0 22:15 pts/2 S 0:00 -bash
losst 14735 14684 0 22:15 pts/2 S+ 0:00 vi 텍스트

이제 거기에 중요한 것이 없는지 확인했으므로 killall 명령을 사용하여 모든 프로세스를 종료할 수 있습니다.

Killall -9 -u 손실

-9 옵션은 프로그램이 이러한 프로세스에 SIGKILL 종료 신호를 보내도록 지시하고 -u는 사용자 이름을 지정합니다.

Red Hat 기반 시스템에서 killall을 사용하려면 psmisc 패키지를 설치해야 합니다:

sudo yum 설치 psmisc

사용자 데이터 백업

이것은 전혀 필요하지 않지만 심각한 프로젝트의 경우 특히 중요한 파일이 있을 수 있는 경우 사용자 파일의 백업 복사본을 만드는 것은 나쁜 생각이 아닙니다. 이를 위해 예를 들어 tar 유틸리티를 사용할 수 있습니다.

tar jcvf /user-backups/losst-backup.tar.bz2 /home/losst

사용자 계정 삭제

이제 모든 준비가 완료되었으므로 Linux 사용자 삭제를 시작하겠습니다. 만약을 대비해 사용자의 파일과 홈 디렉터리를 삭제해야 함을 명시적으로 표시하겠습니다. 데비안의 경우:

deluser --remove-home losst

userdel --손실 제거

시스템에서 사용자에게 속한 모든 파일을 제거해야 하는 경우 --remove-all-files 옵션을 사용하세요. 중요한 파일을 덮어쓸 수 있으므로 주의하세요.

deluser --remove-all-files 손실

이제 사용자는 파일 및 홈 디렉터리와 함께 시스템에서 완전히 제거됩니다.

Ubuntu에서 사용자 제거

열려 있는 시스템 매개변수:

항목 열기 계정:

보시다시피 현재 모든 작업을 사용할 수 없으며 회색으로 표시됩니다. 활성화하려면 버튼을 클릭하세요. 터놓다그리고 사용자 비밀번호를 입력하세요.

이제 Linux에서 사용자를 삭제하려면 마우스로 사용자를 클릭한 다음 빼기 아이콘을 클릭하세요.

열리는 창에서 사용자 파일로 수행할 작업을 선택할 수 있습니다.

당연히 홈 폴더만 삭제되며 모든 파일에 대해 말하는 것은 아닙니다. 그리고 올바른 제거를 위해서는 사용자가 시스템에서 작업 중이 아니어야 합니다.

결론

Linux에서 사용자를 삭제하는 것은 서버나 가정용 컴퓨터 등 어디서 수행해야 하는지에 관계없이 그리 어렵지 않습니다. 물론 그래픽 인터페이스가 더 편리하지만 언제나 그렇듯이 터미널은 더 많은 옵션을 제공합니다. 이에 대해 다른 의견이 있으시면 댓글을 남겨주세요!

Linux 운영 체제에는 많은 훌륭한 보안 기능이 있지만 가장 중요한 것 중 하나는 파일 권한 시스템입니다. Linux는 Windows와 달리 Linux 커널 이념을 따르는 Linux는 원래 다중 사용자 시스템으로 설계되었으므로 Linux의 파일 액세스 권한이 매우 잘 고려되었습니다.

모든 프로그램과 모든 사용자가 파일에 로컬로 액세스하면 바이러스가 시스템을 쉽게 파괴할 수 있기 때문에 이는 매우 중요합니다. 그러나 새로운 사용자는 Linux의 새로운 파일 권한이 매우 혼란스럽다고 느낄 수 있습니다. 이는 Windows에서 보던 것과는 매우 다릅니다. 이 기사에서는 Linux에서 파일 권한이 작동하는 방식과 권한을 변경하고 설정하는 방법을 이해하려고 노력할 것입니다.

처음에는 각 파일에 세 개의 액세스 매개변수가 있었습니다. 여기 있습니다:

  • 독서- 파일의 내용을 받을 수는 있지만 쓰기는 허용되지 않습니다. 디렉토리의 경우 해당 디렉토리에 있는 파일 및 디렉토리 목록을 가져올 수 있습니다.
  • 기록- 파일에 새 데이터를 쓰거나 기존 데이터를 변경할 수 있으며, 파일과 디렉터리를 생성하고 변경할 수도 있습니다.
  • 성능- 실행 플래그가 없으면 프로그램을 실행할 수 없습니다. 이 속성은 모든 프로그램과 스크립트에 대해 설정되며 시스템이 이 파일을 프로그램으로 실행해야 함을 이해할 수 있도록 도와줍니다.

그러나 이러한 모든 권리가 모든 사용자에게 한꺼번에 적용된다면 의미가 없습니다. 따라서 각 파일에는 다양한 액세스 권한 조합을 설정할 수 있는 세 가지 사용자 범주가 있습니다.

  • 소유자- 파일 소유자, 파일을 생성한 사용자 또는 현재 소유자가 설정한 사용자에 대한 일련의 권한입니다. 일반적으로 소유자는 읽기, 쓰기 및 실행에 대한 모든 권한을 갖습니다.
  • 그룹- 시스템에 존재하고 파일과 연결된 모든 사용자 그룹입니다. 그러나 이 그룹은 하나의 그룹만 될 수 있으며 일반적으로 소유자 그룹입니다. 단, 파일에 다른 그룹을 할당할 수도 있습니다.
  • 나머지- 소유자와 사용자를 제외한 모든 사용자가 파일 그룹에 포함됩니다.

Linux에서 파일 권한이 설정되는 것은 이러한 권한 집합의 도움으로 이루어집니다. 각 사용자는 자신이 소유하거나 액세스 권한이 있는 파일에 대해서만 전체 액세스 권한을 얻을 수 있습니다. 권한 집합에 관계없이 루트 사용자만 모든 파일에 대해 작업할 수 있습니다.

그러나 시간이 지남에 따라 이러한 시스템은 불충분해졌고 파일을 변경할 수 없게 만들거나 슈퍼유저로 실행할 수 있는 몇 가지 플래그가 추가되었습니다. 아래에서 살펴보겠습니다.

Linux의 특수 파일 권한

일반 사용자가 슈퍼유저의 비밀번호를 모르더라도 슈퍼유저를 대신하여 프로그램을 실행할 수 있도록 하기 위해 SUID 및 SGID 비트와 같은 것이 발명되었습니다. 이러한 힘에 대해 더 자세히 살펴보겠습니다.

  • SUID- 이 비트가 설정되면 프로그램이 실행될 때 프로그램을 시작한 사용자의 ID가 파일 소유자의 ID로 대체됩니다. 실제로 이를 통해 일반 사용자는 수퍼유저로 프로그램을 실행할 수 있습니다.
  • SGID- 이 플래그는 비슷한 방식으로 작동합니다. 유일한 차이점은 사용자가 실제로 속한 그룹이 아니라 파일과 연결된 그룹의 구성원으로 간주된다는 것입니다. SGID 플래그가 디렉토리에 설정된 경우 해당 디렉토리에 생성된 모든 파일은 사용자가 아닌 디렉토리 그룹과 연결됩니다. 이 동작은 공유 폴더를 구성하는 데 사용됩니다.
  • 끈적한 비트- 이 비트는 공유 폴더를 생성하는데도 사용됩니다. 설치하면 사용자는 파일을 생성하고 읽고 실행할 수만 있고, 다른 사용자가 소유한 파일을 삭제할 수는 없습니다.

이제 Linux에서 파일 권한을 보고 변경하는 방법을 살펴보겠습니다.

Linux에서 파일 권한을 보는 방법

물론 파일 관리자를 사용하여 Linux에서 파일 권한을 볼 수 있습니다. 모두 이 기능을 지원하지만 이는 불완전한 정보를 제공합니다. 특수 플래그를 포함하여 모든 플래그에 대한 가장 자세한 정보를 보려면 -l 매개변수와 함께 ls 명령을 사용해야 합니다. 디렉토리의 모든 파일이 나열되고 모든 속성과 비트가 여기에 표시됩니다.

Linux 파일에 대한 권한을 찾으려면 파일이 있는 폴더에서 다음 명령을 실행하십시오.

대시는 Linux에서 파일 권한을 담당합니다. 첫 번째는 파일 형식으로, 이에 대해서는 별도의 기사에서 설명합니다. 그 다음에는 먼저 소유자, 그룹 및 기타 모든 사람을 위한 권리 그룹이 있습니다. 라이센스에는 대시 9개, 유형에는 대시 1개만 있습니다.

권리 플래그의 조건부 값이 무엇을 의미하는지 자세히 살펴보겠습니다.

  • --- - 전혀 권리가 없습니다.
  • --엑스- 파일을 프로그램으로 실행하는 것만 허용되며 변경하거나 읽을 수는 없습니다.
  • -w-- 파일 쓰기 및 변경만 허용됩니다.
  • -wx- 수정 및 실행은 허용되나 디렉토리의 경우 내용을 볼 수 없습니다.
  • 아르 자형--- 읽기 전용 권한
  • r-x- 읽기 및 실행만 가능하며 쓰기 권한은 없습니다.
  • rw-- 읽기 및 쓰기 권한은 있지만 실행 권한은 없습니다.
  • rwx- 모든 권리;
  • --에스- SUID 또는 SGID 비트가 설정되고 첫 번째 비트는 소유자 필드에 표시되고 두 번째 비트는 그룹 필드에 표시됩니다.
  • --티- 끈적한 비트가 설치되어 있어 사용자가 이 파일을 삭제할 수 없습니다.

이 예에서 파일 test1에는 일반적인 프로그램 권한이 있고 소유자는 모든 작업을 수행할 수 있으며 그룹은 읽기 및 실행만 할 수 있고 다른 모든 사람은 실행만 할 수 있습니다. test2의 경우 SUID 및 SGID 플래그가 추가로 설정됩니다. 그리고 test3 폴더에는 Sticky-bit가 설치되어 있습니다. test4 파일은 누구나 사용할 수 있습니다. 이제 Linux 파일에 대한 권한을 보는 방법을 알았습니다.

Linux에서 파일 권한을 변경하는 방법

Linux에서 파일 권한을 변경하려면 chmod 유틸리티를 사용할 수 있습니다. 특수 플래그를 포함하여 모든 플래그를 변경할 수 있습니다. 구문을 살펴보겠습니다.

$ chmod 옵션 카테고리 작업 플래그 파일

옵션은 아마도 하나만 제외하고는 지금 우리에게 관심이 없을 것입니다. -R 옵션을 사용하면 프로그램이 모든 파일과 디렉터리에 변경 사항을 반복적으로 적용하도록 강제할 수 있습니다.

  • - 파일 소유자;
  • g- 파일 그룹;
  • 영형- 다른 사용자.

작업은 "+" 플래그를 추가하거나 "-" 플래그를 제거하는 두 가지 중 하나일 수 있습니다. 액세스 권한 자체는 ls 유틸리티의 출력과 유사합니다. r - 읽기, w - 쓰기, x - 실행, s - suid/sgid(설정한 범주에 따라 다름), t - 고정 설정 -조금. 예를 들어 모든 사용자는 test5 파일에 대한 전체 액세스 권한을 갖습니다.

chmod ugo+rwx 테스트5

아니면 그룹 및 다른 사용자로부터 모든 권리를 박탈합니다.

chmod go-rwx test5

그룹에 읽기 및 실행 권한을 부여해 보겠습니다.

chmod g+rx 테스트5

다른 사용자의 경우 읽기 전용:

test6 파일의 경우 SUID를 설정합니다.

test7 - SGID의 경우:

무슨 일이 일어났는지 봅시다:

보시다시피 Linux에서 파일 권한을 변경하는 것은 매우 간단합니다. 또한, 파일 관리자를 이용하여 기본 권한을 변경할 수 있습니다.

결론

그게 전부입니다. 이제 Linux에 어떤 파일 권한이 있는지뿐만 아니라 파일 권한을 보는 방법과 변경 방법까지 알 수 있습니다. 이는 초보자가 시스템을 더욱 완벽하게 사용하기 위해 실제로 이해해야 하는 매우 중요한 주제입니다. 궁금한 점이 있다면 댓글로 질문해주세요!

결론적으로 Linux의 액세스 권한에 대한 좋은 비디오를 제공하고 싶습니다.

옵션 -c - 사용자에게 설명 추가
옵션 -g sudo - sudo 그룹에 사용자를 추가합니다.
-s 옵션은 사용자의 쉘을 /bin/bash로 설정합니다.

옵션 -d 사용자의 홈 폴더를 지정하는 데 사용됩니다.
옵션 -m 폴더를 즉시 생성해야 함을 나타냅니다.

Sudo useradd -c "사용자에 대한 설명" -g sudo -d /home/NameUser -m -s /bin/bash NameUser

NameUser 사용자의 비밀번호를 설정합니다.

Sudo 비밀번호 NameUser

adduser 명령을 사용하여 사용자 추가

sudo useradd -c "사용자에 대한 설명" -g sudo -d /home/NameUser -m -s /bin/bash NameUser

비밀번호를 입력하고, 모든 질문에 답하고, 비밀번호와 홈 디렉토리를 가진 사용자를 얻으세요.

사용자 비밀번호 변경

sudo 비밀번호 이름사용자

sudo 그룹에 사용자 추가

usermod -a -G sudo 이름사용자

사용자/사용자 그룹을 Sudores에 직접 추가합니다.

파일을 편집해보자 /etc/sudores.tmp편집자 비쥬도

Sudo visudo

이름이 지정된 사용자에게 루트 권한을 부여해 보겠습니다. 사용자 이름

사용자_이름 ALL=(ALL:ALL) ALL

사용자 그룹에 루트 권한을 부여합시다 그룹 이름 sudoers 파일에 한 줄을 추가하여 -

그룹_이름 ALL=(ALL:ALL) ALL

사용자 및 그의 그룹

호스트에서 사용 가능한 그룹을 살펴봅니다.

고양이 /etc/group

그룹 존재 여부 확인 예시그룹 examplegroup이 관심 있는 그룹인 호스트에서

Grep examplegroup /etc/group

사용자가 어떤 그룹에 속해 있는지 확인/알아냅니다(UID, GID 포함).

아이디 이름사용자

기존 그룹 examplegroup에 기존 사용자 NameUser 추가

Usermod -g examplegroup 이름사용자

Ubuntu 사용자 제거

명령을 사용하면 사용자 폴더가 삭제되지 않습니다.

Sudo userdel NameUser

필요한 경우 폴더를 삭제하세요.

Sudo rm -r /home/NameUser/

사용자가 삭제되었는지 확인하고 출력이 없으면 사용자가 삭제된 것입니다.

Sudo grep -R NameUser /etc/passwd --color

모든 로컬 사용자 나열

sudo 고양이 /etc/passwd sudo 고양이 /etc/shadow

사용자에 대한 더 자세한 정보를 표시하려면 패키지를 설치하십시오. 손가락

Sudo apt-get 설치 손가락

NameUser 사용자에 대한 정보를 보려면 다음 명령을 실행하십시오.

손가락 이름사용자

모든 사용자에 대한 정보를 파일로 출력하려면 infoaboutalluser.txt스크립트를 만들어보자 손가락.sh

#!/bin/bash n=`cat /etc/passwd | $n의 i에 대해 cut -d: -f1`; 에코를 하세요 "============================================== ============================ ========================================================= 손가락 $나 완료

스크립트를 실행해보자 손가락.sh내용을 파일에 저장합니다. infoaboutalluser.txt

./finger.sh infoaboutalluser.txt

권한이 있는 모든 사용자를 나열합니다.

egrep ":0:0:" /etc/passwd

아니면 특권이 없나요

Egrep -v ":0:0:" /etc/passwd

이름이 abcd 문자로 시작하는 모든 사용자를 나열합니다.

고양이 /etc/passwd | grep "^.*"

독자의 반응에서 알 수 있듯이 Ubuntu의 관리 권한 분리 문제는 대부분의 초보 관리자에게 여전히 불분명하므로 이 자료를 통해 이 문제를 명확하게 하기로 결정했습니다. 따라서 su가 sudo와 어떻게 다른지, 루트를 어디에 숨겼는지 등을 모른다면 이제 우리 기사를 연구해야 할 때입니다.

작은 여담부터 시작해 보겠습니다. Linux 관리 권한 시스템은 Unix OS로 돌아가므로 BSD, Solaris, MacOS 등 다른 Unix 계열 시스템과 공통점이 많습니다. 동시에, 다양한 배포판에는 특정 측면에 대한 고유한 구현 특성이 있으므로 Ubuntu 제품군에 대한 구체적인 예를 제공할 것입니다. 그러나 일반적인 규칙을 알면 다른 Unix 계열 OS의 환경을 쉽게 이해할 수 있습니다.

사용자는 Linux에서 완전한 관리 권한을 갖습니다. 뿌리, 그의 권리는 제한될 수 없으므로 이 사용자를 대신하는 일상적인 작업은 매우 바람직하지 않습니다. 사용자의 부주의한 행동으로 인해 시스템이 손상될 수 있으며 이 계정을 손상시키면 공격자가 시스템에 무제한으로 액세스할 수 있게 됩니다.

따라서 Linux에서는 다른 체계가 채택되었습니다. 관리자를 포함한 모든 사용자는 제한된 계정으로 작업하고 관리 작업을 수행하기 위해 권한 에스컬레이션 메커니즘 중 하나를 사용합니다. 이렇게 하려면 유틸리티를 사용하여 권한을 늘릴 수 있습니다. sudo또는 다음 명령을 사용하여 현재 세션을 종료하지 않고 수퍼유저(루트)로 로그인합니다. . 많은 사람들이 이 두 가지 메커니즘을 잘못 혼동하고 있으므로, 좀 더 자세히 살펴보겠습니다.

현재 세션을 종료하지 않고 다른 사용자(꼭 루트일 필요는 없음)로 로그인할 수 있습니다. 따라서 명령은 다음과 같습니다.

수 페트로프

사용자 petrov로 로그인할 수 있게 되면 사용자 환경(홈 폴더)도 이 사용자에게 속하도록 변경됩니다.

사용자 이름을 지정하지 않고도 귀하의 계정으로 로그인할 수 있습니다 뿌리"a. 그러나 이 방법에는 한 가지 중요한 단점이 있습니다. 다른 사용자를 대신하여 로그인하려면 해당 사용자의 비밀번호를 알아야 합니다. 관리자가 여러 명인 경우 각 관리자는 슈퍼유저 비밀번호를 알고 있으므로 로그인할 수 없습니다. 그들의 권리를 제한합니다.

또한, 이는 안전하지 않습니다. 슈퍼유저 비밀번호를 알고 해당 이름으로 로그인할 수 있는 기능을 알고 있으면 시스템에 대한 통제력이 완전히 상실될 수 있습니다.

우분투에서 이런 식으로 권한을 늘리려고 하면 어떻게 되나요? 사용자의 비밀번호를 모르기 때문에 아무것도 할 수 없습니다. 뿌리, 동시에 다른 사용자로 로그인하는 것을 누구도 막지 못합니다.

"기다리다!" - 다른 사용자가 "설치 중에 지정한 첫 번째 생성된 사용자에게 루트 권한이 부여되지 않습니까?"라고 말할 것입니다. 실제로 관리 작업은 설치 중에 생성된 사용자를 대신해서만 수행할 수 있습니다. 다른 사용자를 대신하여 실패하게 됩니다.

여기서 우리는 권리를 늘리는 두 번째 메커니즘인 유틸리티에 접근합니다. sudo. 그러나 연구를 계속하기 전에 명확히 할 필요가 있습니다. Ubuntu의 수퍼유저(루트) 권한은 기본적으로 비활성화되어 있는 루트 계정에 속합니다. 따라서 다음 명령을 사용하여 권한을 높이십시오. 불가능해 보입니다.

Ubuntu에서 권한을 높이는 주요 메커니즘은 유틸리티입니다. sudo. 이 유틸리티를 사용하면 실행 중인 명령에 대한 권한을 슈퍼유저 수준으로 높일 수 있지만 슈퍼유저 비밀번호를 알 필요는 없으며 사용자는 자신의 비밀번호를 입력해야 합니다. 그런 다음 유틸리티는 이 사용자가 슈퍼유저 권한으로 이 호스트에서 이 명령을 실행할 권한이 있는지 확인하고 확인에 성공하면 명령을 실행합니다.

그건 중요해!주요 차이점 ~에서 sudo무엇을 제공합니까? 현재 사용자를 루트로 변경할 수 있습니다. 이를 위해서는 시스템의 활성 수퍼유저 계정과 해당 비밀번호에 대한 지식이 필요합니다. sudo수퍼유저 비밀번호를 지정하지 않고 실행 중인 명령에 대한 권한을 높일 수 있습니다. 사용자는 자신의 비밀번호를 입력해야 합니다. 이러한 자격 증명을 사용하여 루트로 로그인하면 작동하지 않습니다.

또 다른 중요한 상황은 슈퍼유저 권한으로 파이프라인이나 리디렉션을 사용할 때 명령의 첫 번째 부분만 실행된다는 것입니다(예: 설계에서).

Sudo 명령1 | 팀2

루트 권한이 있는 경우에만 실행됩니다. 팀1. 그리고 팀

Sudo 고양이 소스.목록 > /etc/apt/sources.list

항목이 다음 위치에 있기 때문에 액세스 권한 오류가 발생합니다. /etc/apt/sources.list일반 사용자 권한으로 발생합니다.

복잡한 명령 조합을 수행하려면 다음 명령을 사용하여 수퍼유저 모드로 전환할 수 있습니다.

이는 명령으로 권한을 높이는 것과 유사합니다. 그러나 이는 사용자 환경을 변경하지 않으며 현재 사용자의 디렉토리가 홈 디렉토리로 사용되므로 편리하고 안전합니다. 각 관리자는 자신의 홈 디렉터리에만 액세스할 수 있습니다.

이제 누가 기회를 사용할 권리가 있는지 알아낼 때입니다. sudo그리고 어느 정도. 파일은 이 유틸리티의 설정을 담당합니다. /etc/sudoers, 이것이 일반 구성 파일이라는 사실에도 불구하고 편집하려면 다음 명령을 사용하는 것이 좋습니다.

Sudo visudo

이 명령은 파일을 잠그고 구문을 확인합니다. 그렇지 않으면 오타로 인해 PC에 대한 관리 액세스를 잃을 위험이 있습니다.

이 파일의 구문은 매우 간단합니다. 예를 들어, 파일 맨 끝에 다음 항목이 있습니다.

%관리자 ALL=(ALL) ALL

이는 그룹의 사용자를 의미합니다. 관리자모든 사용자를 대신하여 모든 호스트에서 모든 명령을 실행할 수 있습니다. 명령을 사용하여 쉽게 확인할 수 있으므로 여러 떼우리의 경우 사용자 안드레이그룹에 속해있습니다 관리자, 그리고 사용자 페트로프아니요.

그러나 이 유틸리티의 모든 장점은 각 특정 사례에서 권리를 얻기 위한 매개 변수를 유연하게 구성할 수 있다는 것입니다. 예를 들어:

Petrov ubuntu-lts=(안드레이) ALL

이 줄은 사용자가 페트로프호스트에서 모든 명령을 실행 우분투-lts사용자를 대신하여 안드레이. 명령을 지정할 때 해당 명령의 전체 경로를 표시해야 하며 다음 명령을 사용하여 찾을 수 있습니다. 어느

예를 들어, 우리는 사용자에게 페트로프그리고 시도로프컴퓨터를 종료했다가 다시 시작하고 작업을 제거합니다. 그러나 이러한 명령에는 비밀번호 입력이 필요하지 않습니다.

sudo 유틸리티의 또 다른 멋진 기능은 별칭 생성이므로 우리의 경우에는 별칭을 추가하겠습니다. /etc/sudoers다음 줄:

User_Alias ​​​​USERGROUP1 = 페트로프, 시도로프
Cmnd_Alias ​​​CMDGROUP1 = /bin/kill, /sbin/reboot, /sbin/shutdown

이를 통해 우리는 두 개의 별칭을 만들었습니다. 사용자 그룹1, 여기에는 필요한 사용자가 포함되어 있으며 CMDGROUP1필요한 명령 세트를 사용하면 별칭을 사용할 수 있는 모든 규칙에 영향을 주지 않고 별칭만 편집할 수 있습니다. 그런 다음 규칙을 추가해 보겠습니다.

USERGROUP1 ALL = (ALL) NOPASSWD:СMDGROUP1

이는 지정된 별칭에 나열된 사용자가 비밀번호를 입력하지 않고도 모든 사용자를 대신하여 모든 호스트에서 지정된 별칭의 명령을 실행할 수 있도록 허용합니다.

위의 두 가지 외에도 호스트 이름과 대신 명령을 실행할 수 있는 사용자에 대한 별칭도 사용할 수 있습니다. 예:

Host_Alias ​​​​WWW = 웹서버1, 웹서버2
Runas_Alias ​​​​WWW = www-데이터, www-developer

USERGROUP1 WWW = (WWW) 전체

주어진 레코드 세트를 통해 사용자는 다음을 입력할 수 있습니다. 사용자 그룹1사용자를 대신하여 명령을 실행합니다. www-데이터그리고 www-개발자회사의 웹 서버에서.

마지막으로, 여전히 루트 계정이 필요한 경우 어떻게 해야 하는지 살펴보겠습니다. 간단합니다. 활성화하려면 비밀번호를 설정하세요.

Sudo 비밀번호 루트

다음 명령을 사용하여 슈퍼유저 계정을 다시 잠글 수 있습니다.

Sudo passwd -l 루트

Ubuntu의 모든 관리 작업은 sudo 유틸리티를 사용하여 수행할 수 있으므로 꼭 필요한 경우가 아니면 루트 계정을 활성화하지 마십시오!

보시다시피 Ubuntu에는 풍부한 관리 권한 관리 기능이 있어 여러 관리자에게 권한을 유연하게 분배할 수 있을 뿐만 아니라 일부 사용자의 권한을 늘리는 기능을 제공하여 효율적이고 안전하게 수행할 수 있습니다.