Python os.chroot() 方法



Python os.chroot() 方法將當前程序的根目錄更改為給定的路徑。在類 Linux/Unix 系統中,每個程序或命令都有一個稱為根目錄的當前工作目錄。在 chroot 操作之後執行的任何程序都只能訪問新定義的根目錄及其子目錄。

在這樣修改的環境中執行的程序或命令無法訪問根目錄之外的檔案。此修改後的環境稱為“隔離目錄”或“chroot 監獄”。chroot 命令可供某些根使用者和特權程序使用。

注意:此方法僅在 UNIX/LINUX 平臺上可用。

語法

以下是 Python os.chroot() 方法的語法:

os.chroot(path);

引數

  • path − 這是將設定為當前程序根目錄的路徑。

返回值

此方法不返回值。

示例 1

以下示例演示了 Python os.chroot() 方法的使用。此處,當前程序的根目錄更改為路徑“/tmp/usr”。

import os, sys
# To set the current root path to /tmp/user
os.chroot("/tmp/usr")
print ("Changed root path successfully!!")

當我們執行上述程式時,它會產生以下結果:

Changed root path successfully!!

示例 2

如果指定的路徑或目錄不存在,則此方法會引發 NotADirectoryError 異常。

import os, sys
os.chroot("code.txt")
print ("Changed root path successfully!!")

執行上述程式碼時,我們得到以下輸出:

Traceback (most recent call last):
  File "/home/sarika/Desktop/chown.py", line 2, in <module>
    os.chroot("code.txt")
NotADirectoryError: [Errno 20] Not a directory: 'code.txt'

示例 3

如果未指定路徑,則此方法會引發 FileNotFoundError 異常。

import os, sys
os.chroot("")
print ("Changed root path successfully!!")

以下是上述程式碼的輸出:

Traceback (most recent call last):
  File "/home/sarika/Desktop/chown.py", line 2, in <module>
    os.chroot("")
FileNotFoundError: [Errno 2] No such file or directory: ''
os_file_methods.htm
廣告