Создайте пользователя в Linux, который может получить доступ только к определенной папке.

Команда 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) или полностью разочарованы и установка переменной среды не работает.

0
10.05.2018, 13:24
1 ответ

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
2
28.01.2020, 02:32

Теги

Похожие вопросы