소프트 링크를 생성하여 sudo 제한 명령 실행

소프트 링크를 생성하여 sudo 제한 명령 실행

테스트 머신 중 하나에 액세스 할 수 sudo있으며 나를 제한하는 명령은 다음과 같습니다.

user_sree@sel8585:~> sudo -l
user_sree's password:
User user_sree may run the following commands on this host:
    (ALL) ALL, (ALL) !/bin/sh, !/bin/bash, !/bin/ksh, (ALL) !/bin/su, (ALL) !/usr/bin/passwd, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod,
    !/usr/sbin/visudo

이것은 내가 달릴 수 없다는 visudo것을 의미합니다 /usr/sbin/visudo. 나는 이것을 확인했습니다 :

user_sree@sel8585:~> sudo /usr/sbin/visudo
Sorry, user user_sree is not allowed to execute '/usr/sbin/visudo' as root on sel8585.

이제 호기심에 심볼릭 링크를 만들었습니다 /usr/sbin/visudo.

ln -s /usr/sbin/visudo myvi`

이 소프트 링크를 호출하여 sudoers 파일에 액세스하려고 시도했는데 제대로 작동했습니다.

user_sree@sel8585:~> sudo /home/user_sree/myvi
myvi: /etc/sudoers.tmp unchanged

마찬가지로, 소프트 링크를 생성하여 다른 제한된 명령을 실행할 수 있습니다.

다른 사람을 위해 구성하고 싶은 경우 sudo다른 사람이 구성하지 못하게 하려면 어떻게 해야 합니까? 나는 그들이 소프트 링크를 생성하는 것을 제한하고 싶지 않습니다.

user_sree@sel8585:~> sudo -l | grep bash
    (ALL) ALL, (ALL) !/bin/sh, !/bin/bash, !/bin/ksh, (ALL) !/bin/su, (ALL) !/usr/bin/passwd, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod,

비슷하게:

user_sree@sel8585:~> sudo sh -c 'ls'
Sorry, user user_sree is not allowed to execute '/usr/bin/sh -c ls' as root on sel8585.

이제 심볼릭 링크는 mybash다음으로 연결됩니다 /bin/bash. (내 시스템에서는 /usr/bin/sh다음으로 연결됩니다 /bin/bash.)

user_sree@sel8585:~> sudo /home/user_sree/mybash -c 'ls'

빈 mybash myvi sudoers.back test.pp

user_sree@sel8585:~> ll my*
lrwxrwxrwx 1 user_sree users  9 Jul 16 14:10 mybash -> /bin/bash
lrwxrwxrwx 1 user_sree users 16 Jul 16 14:13 myvi -> /usr/sbin/visudo

첨부된:

Cmnd_Alias   NSHELLS = /bin/sh,/bin/bash,/bin/ksh
Cmnd_Alias   NSU = /bin/su
Cmnd_Alias   NCMDS = /usr/bin/passwd,/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/usermod,/usr/sbin/visudo

user_sree ALL=(ALL) ALL, !NSHELLS, !NSU, !NCMDS

/etc/sudoers위는 파일의 항목 입니다 .

답변1

솔직히 말해서, 사용자가 몇 가지 명령만 빼고 모든 것을 실행하도록 허용한다면 문제가 생길 것입니다.

user*예를 들어 명령 에 대한 액세스를 비활성화 하더라도 사용자는 vipw텍스트 편집기를 사용하여 계속해서 암호 및 섀도우 파일을 실행하거나 편집할 수 있습니다. 예를 들어, 액세스를 잠그면 vi다른 텍스트 편집기를 설치하고 사용하는 것을 막는 이유는 무엇입니까? 아니면 cat내장된 셸을 사용하여 echo새 사용자를 추가할 수도 있나요?

sudo"이 몇 가지 명령을 제외한 모든 것" 에 액세스할 수 없습니다 . 대신 ALL항목을 제거하고 허용되는 항목을 정의한 다음 허용된 명령에만 액세스 권한을 부여하세요.

관련 정보