리눅스/ubuntu

[Ubuntu] 사용자 추가,삭제,변경 및 파일권한 설정

jetblack1 2023. 10. 28. 21:23
  • useradd : 사용자추가
    • sudo useradd dragon : dragon 이라는 계정 생성
      • cat /etc/passwd 경로에서 계정 생성된 정보 확인
      • dragon:x:1001:1001::/home/dragon:/bin/sh : 밑줄 친 1001번은 group을 나타낸다.
      • sudo passwd dragon : dragon 계정 패스워드 설정

    • 보통은 계정 로그인하면 home 디렉토리로  이동하게 되는데 신규 계정은 home 디렉토리가 없으므로 home 디렉토리를 만들어준다.
      만들어준 home 디렉토리 권한은 root로 되어있다.

    • $ ls -l /home
      drwxr-xr-x 2 root  root  4096 Oct 28 09:19 dragon : 권한이 root(소유자) root(소유그룹) 으로 되어있다
      이 부분을 dragon 계정의 권한으로 변경해준다


  • chown : 디렉토리,파일 소유권 변경
    • sudo chown dragon:dragon /home/dragon
      • 소유권한이 root/root로 되어있는 것을 dragon(소유자):dragon(소유그룹) 변경한다.
        /home/dragon (해당 경로에 폴더를 지정)
      • drwxr-xr-x 2 dragon dragon 4096 Oct 28 09:19 dragon

  • usermod : 사용자변경
    • sudo usermod <계정> -l <바꿀 계정> (사용 비 권장)

  • userdel : 사용자삭제
    • sudo userdel 계정명


  • chmod : 파일권한 변경
    • -rw-rw-r-- 1 root root    0 Oct 28 09:33 dragon1
    • -(파일)rw-(유저)rw-(그룹)r--(Other) 를 뜻한다
    • r(Read) 읽기 권한
    • w(Write) 쓰기 권한
    • x(eXecute) 실행 권한
    • chmod 751 dragon1 : dragon1 파일에 대한 권한을 유저 rwx, 그룹 rx, Other x의 권한을 준다
    • chmod u+rwx dragon1 : dragon1 파일에 대한 권한을 유저 rwx 로 주겠다.
    • chmod go+x dragon1 : 그룹과 Other에 x 권한을 주겠다.


  • 사용자를 추가하는 스크립트 파일 생성하기
    • nano adduser
      • useradd testuser
        tail -n2 /etc/passwd
        mkdir /home/testuser
        chown testuser:testuser /home/testuser
        echo "testuser user added"

    • 스크립트 파일 이름은 adduser이며 실행을 하면 위의 생성한 스크립트가 실행이 안되고 다른 작업이 실행 되는데 adduser 라는 파일명은 기존 linux 시스템 자체에 존재하여 adduser 입력 시 전역적으로 확인하여 기존 시스템의 adduser 파일을 불러온다.
      우리가 만든 스크립트를 실행하기 위해선 스크립트 폴더에서 ./adduser 로 실행한다.
      스크립트 파일 생성 전 whereis <파일명> 을 입력하여 기존 리눅스에 중복 파일명이 있는지 확인 후 설정 할 것


  • 인자를 이용한 스크립트 파일 변경하기($1)
    • 위의 스크립트 파일 실행 시 계정명이 testuser로 고정되어 있기 때문에 신규계정을 변경하려면 일일이 계정명을 바꿔줘야되는 번거로움이 있기 때문에 인자를 이용하여 쉽게 계정을 추가한다.

    • nano adduser
      • useradd $1
        tail -n2 /etc/passwd
        mkdir /home/$1
        chown $1:$1 /home/$1
        echo "$1 user added"

    • $1 이란 파라미터 1번값을 의미하며 파라미터는 adduser aaa bbb ccc 라고 명령어 를 입력했을때 공백을 파라미터로 구분하며 aaa 는 파라미터1번, bbb는 2번 ccc는 3번으로 인식한다.

    • adduser aaa : aaa라고 입력하면 해당 스크립트의 $1 부분에 aaa 이 입력되어 스크립트가 실행된다.
      • adduser 라는 파일이 있는 경로에서 파일을 실행 하지 않고 다른 경로에서 adduser를 실행하면 내가 만든 스크립트가 실행되지 않고 다른 스크립트가 실행된다.

      • 그 이유는 echo $PATH 입력하면 /home/chae/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 처음 밑줄 친 /home/chae 부터 파일을 확인하여 실행하게 되는데

      • sudo su - 입력하여 root 계정으로 접속 후 echo $PATH를 입력하면 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 밑줄 친 /usr/local 부터 파일을 확인하기 때문에

      • /home/chae/bin/adduser 경로의 adduser를 실행 하지 않기 때문이다.


      • sudo /home/chae/bin/adduser bbb : 절대경로를 이용. bbb 계정을 생성한다.
        • tail -n3 /etc/passwd 로 bbb 계정생성 확인


  • 향상된 사용자 추가방법
    • adduser <계정명>
    • sudo adduser fff
      Adding user `fff' ...
      Adding new group `fff' (1007) ...
      Adding new user `fff' (1007) with group `fff' ...
      Creating home directory `/home/fff' ...
      Copying files from `/etc/skel' ...
      Enter new UNIX password:
      Retype new UNIX password:
      passwd: password updated successfully
      Changing the user information for fff
      Enter the new value, or press ENTER for the default
              Full Name []:
              Room Number []:
              Work Phone []:
              Home Phone []:
              Other []:
      Is the information correct? [Y/n] y
      • 패스워드 입력 및 나머지 정보 엔터로 넘기고 마지막에 y 누르면 계정 및 home 디렉토리에 폴더까지 생성된다.

'리눅스 > ubuntu' 카테고리의 다른 글

[Ubuntu] 파일 압축 관리(tar)  (0) 2023.10.28
[Ubuntu] 파일 관리 관련 명령어  (0) 2023.10.27