Отключите версии Python для определенных пользователей, не удаляя Python

Существует много различных версий Python в моей машине человечности:

/home$ ls /usr/bin/ | grep python
dh_python2
dh_python3
python
python2
python2.7
python3
python3.5
python3.5m
python3m

/home$ which python
/usr/local/bin/python

python --version
Python 3.6.6

Я хочу определенную группу пользователей, имеют доступ только к "Python" (например, 3.6.6) и отключают доступ для других версий.

Я думаю, удаляя Python, вызвал бы другие проблемы. Каков был бы рекомендуемый способ достигнуть этой цели, ничего не повреждая?

7
задан 2 October 2018 в 01:08

3 ответа

Я сделал это при помощи acl полномочия. Я просто удалил доступ к неправильным версиям Python для моей группы целевого пользователя. простой как это, ничто не повреждается (не может полагать, что любой предложил это).

Установка acl

sudo apt-get install acl

Повторно смонтируйте системный диск с поддержкой acl

Править fstab:

sudo nano /etc/fstab

Уже добавьте поддержку "acl" если не там, например, изменившись от

UUID=abc-123-456-789 / ext4 defaults 1 1

Кому:

UUID=abc-123-456-789 / ext4 defaults,acl 1 1

Повторно смонтируйте корень:

sudo mount -o remount /

Установите права доступа

Создайте символьную ссылку для python3 так, чтобы и Python и python3 работали на мою группу целевого пользователя:

sudo ln -s /usr/local/bin/python /usr/local/bin/python3

Обновите acl полномочия так, чтобы доступ был удален из системных версий Python для "заблокированной" группы пользователей:

setfacl -m g:blocked:- -R /usr/bin/python2
setfacl -m g:blocked:- -R /usr/bin/python3
setfacl -m g:blocked:- -R /usr/bin/python3.5m
2
ответ дан 23 November 2019 в 06:35

chown непубличная версия (версии) спец группе, сделайте это исполняемым файлом только той группой (chmod 754...) и добавьте разрешенных пользователей к той группе.

Но имейте в виду, что существуют системные утилиты, которые полагаются на определенные версии Python, таким образом, Вы, вероятно, повредите что-то: в моей Ubuntu 16.04, /usr/bin содержит 106 файлов с a python.* хижина, которой 47 имеют a python3 хижина.

3
ответ дан 23 November 2019 в 06:35

Я хочу, чтобы пользователи использовали ту новую версию и не имели никакого доступа к более старым версиям.

Не делать.

Существует причина, Ubuntu идет с двумя версиями Python. Это - это, некоторые утилиты записаны в Python2 и не могут работать в Python 3. Другие записаны в Python 3 и не могут работать в Python 2.

Кроме того, Python 2 все еще широко используется для всех видов задач, и большинством кода Python там является, вероятно, все еще Python 2.

Python 2.7 будет поддерживаться с исправлениями ошибок до, по крайней мере, 2020.

2
ответ дан 23 November 2019 в 06:35

Другие вопросы по тегам:

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