
如何刪除給定使用者的軟體包但保留其安裝狀態以便其他使用者仍然可以存取它?我使用的是 Ubuntu 12.10。
答案1
大多數軟體包都安裝在適當的位置並具有權限,以便多個使用者可以存取它們。所以除非包裹已經準備好透過以特殊方式設定權限和所有權來解決這個問題,但不可能透過套件刪除來實現這一點。
套件可以限制存取的方法是將目錄和可執行檔案的群組權限設定為rwxr-x——將普通檔案的群組權限設為rw-r——並將群組所有權設定為特定群組,以便非該群組的成員不再有存取權限。
您可以事後對大多數軟體包執行上述操作,因為它不會改變在哪裡東西安裝好了。因此該包仍然會找到它的所有組件。根據您確切想要實現的目標,僅更改套件的可執行檔可能就足夠了。
假設安裝了一個軟體包abc
,您可以執行以下操作(以 root 身分):
addgroup abcusers
adduser user abcusers
dpkg -L abc | xargs find -maxdepth 0 -type f | xargs chown o=
dpkg -L abc | xargs find -maxdepth 0 -type f | xargs chgrp abcusers
第一行建立一個群組,第二行需要為需要存取該套件的所有使用者重複。第三行和第四行更改套件中所有檔案的權限(假設沒有帶空格的檔案名稱)。 然而,這仍然可能會破壞包因此,執行此操作和/或回滾變更時請小心:
apt-get install --reinstall abc