대상 Linux Master(壱)~ CUI/GUI의 강제 종료/재시작 권한 ~
컨디션
또한 이번 내용은 블로그의 9, 10, 11회에 상세하게 게재될 것이니 참고하시기 바랍니다.
[제9회] 타겟 리눅스 주인(1)~sudoers의 관리~
[제10회] 대상 Linux 마스터(2)~ 권한 제한~
[제11회] 타겟 Linux 마스터(3)~polkit 설정~
그룹 정의
우선 사용자와 그룹을 설정합니다. "users"그룹은 꺼지거나 다시 시작할 수 있는 권한을 부여받을 것입니다. 물리 컨트롤러에서 로그인할 때 사용자에게 권한을 부여받을 뿐만 아니라, sudo에서 루트 권한을 부여할 수도 있습니다. 또한, GUI는 users의 꺼지거나 다시 시작할 수 있습니다.버튼 표시도 손실됩니다.
준비된 사용자는 다음과 같습니다.
번호 매기기
이름:
전명
소속 단체
1
enryu
Lost Enryu
enryu, wheel, users
2
bob
Bob Beck
bob, users
3
alice
Alice Atanasoff
alice, guest-users
CUI에서 설정하고 아래 조작이 이해되지 않는 부분이 있으면 참고하세요.
Qita: Linux 명령 시작 (3) ~ 사용자 그룹 관리 ~
$ su -
# useradd bob -c "Bob Watson"
# useradd alice -c "Alice Walker"
# passwd bob
# passwd alice
# groupadd guest-users
# usermod enryu -aG wheel,users
# usermod bob -aG users
# usermod alice -aG guest-users
# groups enryu bob alice
CUI에서 사용 권한 뷰 편집하기
users 구성원이 관련 명령을 끄는 것을 허용합니다
sudo에 대한 설정은 /etc/sudoers
라는 파일에 기술되어 있습니다. 편집할 때visudo 명령을 사용합니다. shutdown을 할 수 있는 사용자와 호스트에 대한 제한을 설정하십시오. vi가 시작된 후 /shutdown
'shutdown' 을 검색하십시오.
vi의 조작을 모르실 때는 여기를 참고하세요.
Qita: 기억해야 할vi 명령
/etc/sudoers(省略)
## Allows members of the users group to shutdown this system
# %users localhost=/sbin/shutdown -h now
↑この行を編集します↓
%users localhost=SHUTDOWN
(省略)
종료 관련 명령 정의
SHUTDOWN 명령 별칭이 만들어졌습니다. 위에 있는 줄로 돌아가서 별칭을 설정합니다. 명령 모드에서 ?Cmnd_Alias
를 누르면 다음 위치로 돌아갑니다.
/etc/sudoers(省略)
## Drivers
# Cmnd_Alias DRIVERS /sbin/modprobe
# Defaults specification
(省略)
드라이브 아래에 Shutdown을 추가합니다.
/etc/sudoers(省略)
## Drivers
# Cmnd_Alias DRIVERS /sbin/modprobe
## Shutdown
Cmnd_Alias SHUTDOWN /sbin/shutdown, /sbin/init, /sbin/halt, /sbin/reboot, /sbin/poweroff
# Defaults specification
(省略)
doers의 설정은 이것으로 끝냅니다. 명령 모드로 돌아가서 :wq
입력하십시오. 오류 정보가 없으면 끝낼 수 있습니다. visudo의 오류가 발생하면 e 편집으로 돌아가서 오류가 있는지 확인하십시오.
재부팅 및 설정 확인
sudoers의 설정이 끝난 후에 반영 설정을 다시 시작합니다. su 명령으로 다시 로그인해도 반영됩니다. bob로 로그인해서 다음 명령을 시도해 보십시오.$ sudo -l
(省略)
User bob may run the following commands on this host:
(root) /sbin/shutdown, /sbin/init, /sbin/halt, /sbin/reboot, /sbin/poweroff
끝에 있는 것은 이 계정의 sudo 권한이 시작된 명령입니다. bob는 sudo 명령을 사용하여 꺼진 명령을 실행할 수 있습니다.
CUI(물리적 콘솔)에서 권한 실행
일반 사용자의 consolehelper 권한 부여
일반 사용자도 시스템 관리 명령halt,reboot,powerroff를 사용할 수 있습니다.
$ su -
# useradd bob -c "Bob Watson"
# useradd alice -c "Alice Walker"
# passwd bob
# passwd alice
# groupadd guest-users
# usermod enryu -aG wheel,users
# usermod bob -aG users
# usermod alice -aG guest-users
# groups enryu bob alice
users 구성원이 관련 명령을 끄는 것을 허용합니다
sudo에 대한 설정은
/etc/sudoers
라는 파일에 기술되어 있습니다. 편집할 때visudo 명령을 사용합니다. shutdown을 할 수 있는 사용자와 호스트에 대한 제한을 설정하십시오. vi가 시작된 후 /shutdown
'shutdown' 을 검색하십시오.vi의 조작을 모르실 때는 여기를 참고하세요.
Qita: 기억해야 할vi 명령
/etc/sudoers
(省略)
## Allows members of the users group to shutdown this system
# %users localhost=/sbin/shutdown -h now
↑この行を編集します↓
%users localhost=SHUTDOWN
(省略)
종료 관련 명령 정의
SHUTDOWN 명령 별칭이 만들어졌습니다. 위에 있는 줄로 돌아가서 별칭을 설정합니다. 명령 모드에서
?Cmnd_Alias
를 누르면 다음 위치로 돌아갑니다./etc/sudoers
(省略)
## Drivers
# Cmnd_Alias DRIVERS /sbin/modprobe
# Defaults specification
(省略)
드라이브 아래에 Shutdown을 추가합니다./etc/sudoers
(省略)
## Drivers
# Cmnd_Alias DRIVERS /sbin/modprobe
## Shutdown
Cmnd_Alias SHUTDOWN /sbin/shutdown, /sbin/init, /sbin/halt, /sbin/reboot, /sbin/poweroff
# Defaults specification
(省略)
doers의 설정은 이것으로 끝냅니다. 명령 모드로 돌아가서 :wq
입력하십시오. 오류 정보가 없으면 끝낼 수 있습니다. visudo의 오류가 발생하면 e 편집으로 돌아가서 오류가 있는지 확인하십시오.재부팅 및 설정 확인
sudoers의 설정이 끝난 후에 반영 설정을 다시 시작합니다. su 명령으로 다시 로그인해도 반영됩니다. bob로 로그인해서 다음 명령을 시도해 보십시오.
$ sudo -l
(省略)
User bob may run the following commands on this host:
(root) /sbin/shutdown, /sbin/init, /sbin/halt, /sbin/reboot, /sbin/poweroff
끝에 있는 것은 이 계정의 sudo 권한이 시작된 명령입니다. bob는 sudo 명령을 사용하여 꺼진 명령을 실행할 수 있습니다.CUI(물리적 콘솔)에서 권한 실행
일반 사용자의 consolehelper 권한 부여
일반 사용자도 시스템 관리 명령halt,reboot,powerroff를 사용할 수 있습니다.
그렇습니다.
console.응용 프로그램에서 파일을 삭제하고 PAM의 설정 파일에 루트 권한이 필요하다는 말을 덧붙이는 등 일반 사용자의 권한을 제한할 수도 있다.
consolehelper는 물리 컨트롤러에 로그인하기만 하면 루트 권한이 필요한 명령을 사용할 수 있어 매우 편리한 기능입니다.
consolehelper 실행 파일의 권한 변경
파일의 실행 권한에 관해서는 내가 이전에 말했듯이
ls -l
에서 찾을 수 있는 권한, 파일의 소유자, 소유자 그룹에 따라 이 파일에 대한 접근 권한을 결정하고 실행 권한은 그'x'로 표시한다.그럼 콘솔 헤일퍼의 실행 권한을 바꿉시다.
$ sudo chmod -v o-x /usr/bin/consolehelper
이렇게 되면 일반 사용자는consolehelper를 사용할 수 없게 된다.파일의 소유자 및 소유자 그룹 수정
다음 단계에서 파일의 모든 그룹을 변경합니다. chown 명령이나chgrp 명령을 사용하십시오. 여기서chown을 사용하십시오.
chown USERNAME:GROUPNAME FILENAME
형식으로 사용하십시오.$ sudo chown -v :users /usr/bin/consolehelper
이렇게 하면users그룹은consolehelper를 사용할 수 있습니다.su 명령으로 users팀이 아닌 앨리스에 로그인해서halt,reboot의 전체 경로를 보여 주세요.
$ su alice
$ which halt reboot
/sbin/halt
/sbin/reboot
이어 users팀의 bob에 로그인해 조사를 시도했다.$ exit
$ su bob # ここでroot権限でsuを使わない.bobのパスワードを入力する.
$ which halt reboot
/usr/bin/halt
/usr/bin/reboot
실행 파일에 대한 접근이 예상대로 제한되었습니다. 루트 권한su를 사용하면/sbin이 표시됩니다.이로써 CUI의 강제 종료/재부팅 권한은 users 구성원으로만 제한됩니다.
GUI의 권한 Polkit 설정
localauthority에 추가
마지막으로 Polkit 설정 파일을 추가하십시오./etc/polkit-1/localauthority
이하 추가 설정 파일입니다. 침입 권한이 없는 것 같아서 중간에 들어가면 sudo로 설정 파일을 만듭니다. 또한, cd는 명령이 아니므로 사용할 수 없습니다sudo cd
.$ cd /etc/polkit-1
$ sudo vi localauthority/50-local.d/myConsoleKitSystem.pkla
여기는 users만 허락해 주세요.
myConsoleKitSystem.pkla[ConsoleKit]
Identity=unix-group:users
Action=org.freedesktop.consolekit.system.*
ResultAny=no
ResultInactive=no
ResultActive=auth_self_keep
신중을 기하기 위해서 나는 각자의 비밀번호를 입력했다.
기본 정책 변경 내용
Alice를 비롯한 비 users를 제한하기 위해 아까 myConstore KitSystem.pkla의 최초에 전 사용자를 대상으로 한 설정을 기술하면 되지만 그렇게 되면 제대로 역할을 발휘할 수 없다여섯 번째.users를 제외한 모든 사용자를 쓰는 방법만이 순조롭게 진행될 수 있을 것 같기 때문이다.기본 설정을 변경합니다. 이것은 추천하지 않는 방법입니다. 업데이트할 때 다시 쓰기 때문입니다.
Polkit을 업데이트할 때는 주의해야 한다.
기본값은 /usr/share/polkit-1/action
아래에 정의되어 있습니다.$ cd /usr/share/polkit-1/action
$ ls
polkit: disable all users except those in group wheel?
끄기 관련 정책은 org.freedesktop.consolekit.policy
입니다. 루트 권한으로less 명령을 사용해 보세요.$ su
# less org.freedesktop.consolekit.policy
위의 것은 xml 파일의 주문입니다. <policyconfig>
아래의 탭은 Action의 설정입니다. 이것을 보았습니다. allowinactive,allow_ResultActive 등의 설정값에 대한 기본값인 active와 같은 레이블이 있습니다.
v를 누르면 편집 모드로 이동합니다./allow_active
로 검색하면 이 탭에 둘러싸인'yes'와'auth admin keep'등 값을 모두'no'로 바꿔 씁니다. 이 파일에는 모두 4곳이 있습니다.
완성 후:wq
vi를 끝내고less로 돌아가q
less를 끝냅니다.
Alice와 bob 등 사용자를 전환해서 GUI에서 꺼 보십시오. 어때요? 설정이 다 되었습니까?
이상
참고 자료
$ cd /etc/polkit-1
$ sudo vi localauthority/50-local.d/myConsoleKitSystem.pkla
[ConsoleKit]
Identity=unix-group:users
Action=org.freedesktop.consolekit.system.*
ResultAny=no
ResultInactive=no
ResultActive=auth_self_keep
$ cd /usr/share/polkit-1/action
$ ls
$ su
# less org.freedesktop.consolekit.policy
저도 잘 부탁드립니다.
polkit: disable all users except those in group wheel?
Reference
이 문제에 관하여(대상 Linux Master(壱)~ CUI/GUI의 강제 종료/재시작 권한 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/LostEnryu/items/74dbdab6a70fb11b155c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(대상 Linux Master(壱)~ CUI/GUI의 강제 종료/재시작 권한 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/LostEnryu/items/74dbdab6a70fb11b155c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)