다음 명령이 원격 서버의 기존 화면 세션에 다시 연결되는 것을 방지하는 것은 무엇입니까?
ssh -t server2 "screen -dr admin"
컴퓨터 server1과 server2는 모두 '라는 이름을 가지고 있습니다.행정' 달리기. server1에서는 명령이 완벽하게 작동합니다. '에 다시 연결하세요.행정'스크린 세션. 그러나 server2에서 동일한 작업을 시도하면 다음 메시지와 함께 연결이 닫힙니다.
"screen" isn't allowed to be executed.
Connection to server2 closed.
server1이 /var/log/auth.log
screen 세션에 성공적으로 다시 연결되었습니다.
Jul 13 04:40:02 server1 sshd[3995]: Accepted publickey for dbkeys from 192.168.1.170 port 52434 ssh2: RSA a4:41:1e:62:66:33:35:5f:b0:d4:a7:cd:d9:b1:20:0d
Jul 13 04:40:02 server1 sshd[3995]: pam_unix(sshd:session): session opened for user dbkeys by (uid=0)
Jul 13 04:40:02 server1 systemd-logind[1144]: Removed session 9.
Jul 13 04:40:02 server1 systemd-logind[1144]: New session 10 of user dbkeys
server1은 Linux Mint 17.3을 실행 중입니다.
server1 # uname -a
Linux server1 3.19.0-32-generic #37~14.04.1-Ubuntu SMP Thu Oct 22 09:41:40 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
server1 # cat /etc/issue
Linux Mint 17.3 Rosa \n \l
server2가 /var/log/auth.log
화면 세션을 다시 연결하려는 시도에 실패했습니다.
Jul 13 11:40:32 server2 sshd[21144]: Accepted publickey for dbkeys from 77.225.135.132 port 52437 ssh2: RSA SHA256:uidABN1IbiI7jQx10VmpWrbCGgyTkGwJaIHiiG6crPI
Jul 13 11:40:32 server2 sshd[21144]: pam_unix(sshd:session): session opened for user dbkeys by (uid=0)
Jul 13 11:40:32 server2 systemd-logind[546]: New session 203 of user dbkeys.
Jul 13 11:40:32 server2 sshd[21183]: Received disconnect from 77.225.135.132 port 52437:11: disconnected by user
Jul 13 11:40:32 server2 sshd[21183]: Disconnected from 77.225.135.132 port 52437
Jul 13 11:40:32 server2 sshd[21144]: pam_unix(sshd:session): session closed for user dbkeys
Jul 13 11:40:32 server2 systemd-logind[546]: Removed session 203.
서버 2는 Ubuntu 16.04.2를 실행합니다.
root@server2:/var/log# uname -a
Linux audit.bitmark.io 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
root@server2:/var/log# cat /etc/issue
Ubuntu 16.04.2 LTS \n \l
server1과 server2의 /etc/ssh/sshd
_config 파일 은 동일합니다.
screen
server2에서 실행이 허용되지 않는 것은 무엇입니까 ?
답변1
문제는 로그인 쉘에 있습니다. 서버 2에서는 sudosh
대신 로그인 셸로 사용됩니다./bin/bash
관련 라인 /etc/passwd
:
dbkeys:x:1000:1000:DBKeys,,,:/home/dbkeys:/usr/local/bin/sudosh
그러나 에서는 /etc/sudosh.conf
프로그램 실행이 명시적으로 허용되어야 합니다.screen
# Sudosh Configuration File
logdir = /var/log/sudosh
default shell = /bin/bash
delimiter = -
syslog.priority = LOG_INFO
syslog.facility = LOG_LOCAL2
clearenvironment = yes
# Allow Sudosh to execute -c arguments? If so, what?
-c arg allow = scp
-c arg allow = rsync
-c arg allow = screen
-c arg allow = screen
끝에 줄을 추가하면 sudosh.conf
문제가 해결되었습니다.