ls -lh /home
, sudo cat /etc/passwd
sudo adduser (ID)
userdel -r (ID)
: 계정관련 모든 것 삭제r
없이 제거하면 /home
의 user1는 남아있음su -
su optionsudo passwd
passwd (user name)
passwd
-> 바로 위에 방식이 더 좋은 듯/etc/shadow
groupadd (group name)
cat /etc/group
gpasswd (group name)
groupdel (group name)
/etc/gshadow
groupmems -g (group name) -a (name)
, gpasswd (group name) -a (name)
groupmems -g (group name) -d (name)
, gpasswd (group name) -d (name)
newgrp (name)
> 비밀번호가 설정된 그룹이어야함sudo vim /etc/sudoers (readonly를 read write로)
sudo chmod 740 /etc/sudoers
> %user1 ALL=(ALL) /bin/ls /bin/cat (특정명령어만 사용하기)
user1@ip-172-31-19-11:/home/ubuntu$ sudo /bin/ls
[sudo] password for user1:
command.txt grouptest
user1@ip-172-31-19-11:/home/ubuntu$ sudo pwd
Sorry, user user1 is not allowed to execute '/usr/bin/pwd' as root on ip-172-31-19-11.ap-east-1.compute.internal.
> %person ALL=(ALL:ALL) NOPASSWD: ALL (person그룹은 비밀번호 없이! > person5는 sudo를 사용할 수가 없음!)
> user1@ip-172-31-19-11:/home/ubuntu$ sudo pwd
/home/ubuntu
> user5@ip-172-31-19-11:/home/ubuntu$ sudo vim /etc/sudoers
[sudo] password for user5:
user5 is not in the sudoers file. This incident will be reported.
-- 여기는 권한이 없어서 이런 문구가 나옴 권한을 주고 실행하면 실행이 됨 --
%user5 ALL=(ALL:ALL) ALL
user5@ip-172-31-19-11:/home/ubuntu$ sudo pwd
[sudo] password for user5:
/home/ubuntu
Hint : sudo visudo
> 문법 체크해줌!, sudo vim /etc/sudoers
ALL=(ALL:ALL) ALL
sudoers 작성예시
sudo su
와 sudo su -
차이 > sudo su -
가 환경분리되어 문제 방지!sudo su:
sudo su 명령어를 사용하면 루트 사용자로 스위치하게 됩니다.
즉, 현재 사용자의 환경 변수 및 환경 설정은 그대로 유지됩니다.
환경 변수는 원래 사용자와 같은 상태로 유지되므로 사용자의 홈 디렉토리나 환경 설정 파일도 변경되지 않습니다.
이 모드에서는 기존 사용자의 환경 설정과 경로가 그대로 유지되므로 예기치 않은 문제가 발생할 수 있습니다.
sudo su -:
sudo su - 명령어를 사용하면 루트 사용자로 스위치하게 되며, 새로운 셸이 시작됩니다.
따라서 루트 사용자로 스위치할 때 루트 사용자의 환경 변수 및 환경 설정을 사용하게 됩니다.
환경 변수 및 환경 설정은 새로운 셸에서 초기화되므로, 원래 사용자와 완전히 분리됩니다.
이것은 보안상 더 좋은 방법이며, 예기치 않은 문제를 방지합니다.
일반적으로 보안 및 시스템 유지보수 관점에서 sudo su -를 사용하는 것이 권장됩니다.
이를 통해 루트 권한을 획득할 때 완전히 분리된 환경에서 작업할 수 있으며,
예기치 않은 환경 변수 설정으로 인한 문제를 방지할 수 있습니다.
다음과 같이 su - test
로 접속시 경로가 변경된 것을 확인 할 수 있다.