我的 ubuntu 机器中有很多不同的 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
Run Code Online (Sandbox Code Playgroud)
我希望某个用户组只能访问“python”(例如 3.6.6)并禁用其他版本的访问。
我认为卸载 python 会导致其他问题。在不破坏任何东西的情况下实现这一目标的推荐方法是什么?
我是通过使用acl权限来做到这一点的。我刚刚删除了目标用户组对错误 python 版本的访问权限。就这么简单,没有任何问题(不敢相信有人建议这样做)。
sudo apt-get install acl
Run Code Online (Sandbox Code Playgroud)
编辑fstab:
sudo nano /etc/fstab
Run Code Online (Sandbox Code Playgroud)
添加“acl”支持(如果尚未存在),例如从
UUID=abc-123-456-789 / ext4 defaults 1 1
Run Code Online (Sandbox Code Playgroud)
到:
UUID=abc-123-456-789 / ext4 defaults,acl 1 1
Run Code Online (Sandbox Code Playgroud)
重新挂载根:
sudo mount -o remount /
Run Code Online (Sandbox Code Playgroud)
为 python3 创建符号链接,以便 python 和 python3 都适用于我的目标用户组:
sudo ln -s /usr/local/bin/python /usr/local/bin/python3
Run Code Online (Sandbox Code Playgroud)
更新 acl 权限,以便从用户组“blocked”的系统 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
696 次 |
| 最近记录: |