Команда tty
сообщит, какой сеанс псевдотерминала выполняется. И это может отличить, какая линия ваша.
-121--72286-
Я предполагаю, что вам потребуется изменить и переменную среды, в частности среду, в частности PYTHONPATH
, прежде чем запускать apt-get.
Но нам нужно больше подробностей здесь. В частности, важно значение sys.path
. Так что сделай это. Перейдите в рабочую оболочку python3 и запустите import sys; print (sys.path)
. Установите PYTHONPATH перед выполнением apt-get для печати соответствующего значения. Например, если результат:
['', '/usr/local/lib/python3.4/dist-packages/pyficache-0.2.6-py3.4.egg']
Эквивалент будет
PYTHONPATH = ":/usr/local/lib/python3.4/dist-packages/pyficache-0.2.6-py3.4.egg"
export PYTHONPATH
или
PYTHONPATH=":/usr/local/lib/python3.4/dist-packages/pyficache-0.2.6-py3.4.egg" apt-get install ...
Чтобы понять, что отсутствует, перед строкой 38 /opt/python3/lib/python3.4/tkinter/ __ init __ .py
добавьте import sys; print (sys.path)
. И сравните с тем значением, которое работает. В частности, вы должны иметь возможность найти правильный каталог.
В качестве последнего средства взлома можно изменить инструкцию печати, добавленную в __ init __ .py
, но я бы сделал это только в том случае, если вы нажаты на время (что, вероятно, не так, если вы спрашиваете на StackOverflow) или полностью разочарованы и установка переменной среды не работает.
Debe configurar ssh chroot jail.
Ver esta instrucción .
Como preguntó @Romeo , aquí incluyo partes esenciales de la página vinculada.
Crear directorio para el usuario:
# mkdir -p /home/test
Este directorio debe contener los archivos y directorios necesarios para soportar la sesión de un usuario, esto requiere al menos un shell, comúnmente sh, y nodos básicos /dev como dispositivos null, zero, stdin, stdout, stderr y tty:
# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
Aprende dos números del listado -hay números mayores y menores. Cree /dev con el comando mknod (haga no copie -pegue los comandos a continuación, es solo un ejemplo, use los números correctos):
# mkdir -p /home/test/dev/
# cd /home/test/dev/
# mknod -m 666 null c 1 3
# mknod -m 666 tty c 5 0
# mknod -m 666 zero c 1 5
# mknod -m 666 random c 1 8`
Establecer permisos:
# chown root:root /home/test
# chmod 0755 /home/test
# ls -ld /home/test
Cree el directorio bin y copie los archivos /bin/bash en él:
# mkdir -p /home/test/bin
# cp /bin/bash /home/test/bin/
Identifique las bibliotecas compartidas requeridas por bash y cópielas (haga no copie -los comandos de pegado a continuación, es solo un ejemplo )en el directorio lib:
# ldd /bin/bash
# mkdir -p /home/test/lib64
# cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/
Cree el usuario SSH con el comando useradd y establezca una contraseña segura para el usuario:
# useradd tecmint
# passwd tecmint
Cree el directorio de configuraciones generales de chroot jail, /home/test/etc y copie los archivos de cuenta actualizados (/etc/passwd y /etc/group )en este directorio:
# mkdir /home/test/etc
# cp -vf /etc/{passwd,group} /home/test/etc/
Abra el archivo de configuración sshd _y agregue las siguientes líneas en el archivo.
# vi /etc/ssh/sshd_config
#define username to apply chroot jail to
Match User tecmint
#specify chroot jail
ChrootDirectory /home/test
Guarde el archivo y salga, y reinicie el SSHD:
# systemctl restart sshd
Pruebe si la configuración de chroot jail está funcionando como se esperaba. Ahora el usuario solo puede ejecutar bash y sus comandos integrados, como (pwd, history, echo, etc. ).
# ssh tecmint@192.168.0.10
Crear un directorio de inicio para el usuario SSH:
# mkdir -p /home/test/home/tecmint
# chown -R tecmint:tecmint /home/test/home/tecmint
# chmod -R 0700 /home/test/home/tecmint
Instale algunos comandos de usuario como ls, date,mkdir en el directorio bin:
# cp /bin/ls /home/test/bin/
# cp /bin/date /home/test/bin/
# cp /bin/mkdir /home/test/bin/
Verifique las bibliotecas compartidas para los comandos anteriores y muévalos al directorio de bibliotecas de la cárcel chroot:
# ldd /bin/ls
# cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/
Este es el final . Pero si solo necesita permitir conexiones sftp, agregue la siguiente línea en el archivo de configuración /etc/ssh/sshd _:
#Enable sftp to chrooted jail
ForceCommand internal-sftp
Guarde el archivo y salga. Luego reinicie los servicios SSHD:
# systemctl restart sshd