파이썬 | os.fchmod() 메서드

|

유닉스 계열 시스템에서는 — 파일에 액세스하기 위해 사용자, 그룹 및 기타 클래스에 부여된 파일 시스템 권한입니다. Python의
os.fchmod() 는 지정된 파일 설명자가 지정한 파일 모드를 지정된 숫자 모드로 변경하는 데 사용됩니다. . 이 방법은 os.chmod (fd, 모드) 와 동일합니다.

참고. 이 방법은 Unix 플랫폼에서만 사용할 수 있습니다.

구문: os.fchmod (fd, 모드)

매개변수:
fd: 모드가 설정될 파일 설명자.
모드: 설정할 모드를 나타내는 숫자 값입니다.
모드 는 다음 값 중 하나 또는 비트 OR 조합을 사용할 수도 있습니다.

  • stat.S_ISUID: 실행 시 사용자 ID 설정
  • stat.S_ISGID: 실행 시 그룹 ID 설정
  • stat.S_ENFMT: 레코드 잠금 적용 < /li>
  • stat.S_ISVTX: 실행 후 텍스트 이미지 저장
  • stat.S_IREAD: 소유자가 읽습니다.
  • stat.S_IWRITE : 소유자가 작성합니다.
  • stat.S_IEXEC: 소유자가 실행합니다.
  • stat.S_IRWXU: 소유자가 읽기, 쓰기 및 실행
  • stat.S_IRUSR: 소유자가 읽기
  • li>
  • stat.S_IWUSR: 소유자가 작성합니다.
  • stat.S_IXUSR: 소유자가 실행합니다.
  • stat.S_IRWXG: 그룹별 읽기, 쓰기 및 실행
  • stat.S_IRGRP: 그룹별 읽기
  • stat.S_IWGRP: 그룹별 쓰기
  • stat.S_IXGRP : 그룹별 실행
  • stat .S_IRWXO: 다른 사람이 읽고, 쓰고, 실행합니다.
  • stat.S_IROTH: 다른 사용자가 읽기
  • stat.S_IWOTH: 다른 사용자가 쓰기
  • stat.S_IXOTH: 다른 사람이 실행

반환 유형: 이 메서드는 값을 반환하지 않습니다.

코드: os 메소드 사용 .fchmod ()

# os.fchmod() 메서드 정의를 설명하는 Python 프로그램


# os 모듈 가져오기

가져오기 os


# 통계 모듈 가져오기

< 코드 클래스 = "키워드"> 가져오기 <코드 클래스 = "일반 "> 통계

<코드 클래스 ="undefined space ">
# 파일 이름

파일 이름 = "file.txt"


# 지정된 파일을 열고
# 파일 설명자 가져오기
# 이와 관련된
# os.open () 메소드

fd = os. 열기 (파일 이름, os.O_RDWR)


# 현재 숫자 모드 인쇄
# (8진수) 파일

모드 = oct (os. 통계 (fd) .st_mode) [ - 3 :]

print ( "파일의 현재 숫자 모드 (8진수 표기법):" , 모드)


# 이제 모드를 변경합니다.
파일 #


# 8진수 777 모드 값으로
# 읽기, 쓰기 및 실행 임무
# 소유자, 그룹 및 기타 사용자용

모드 = <코드 클래스 = "값 "> 0o777

<코드 클래스 ="일반 "> os.fchmod (fd, 모드)

인쇄 ( "파일 모드가 성공적으로 변경되었습니다" )


# 변경된 숫자 모드 인쇄
# (8진수) 파일

모드 = 10월 <코드 클래스 ="일반 "> (os.stat (fd) .st_mode) [ - <코드 클래스 = "값 "> 3 <코드 클래스 ="일반 ">:]

<코드 클래스 ="기능 "> 인쇄 <코드 클래스 = "일반" > ( "파일의 현재 숫자 모드( 8진수 표기법):" , 모드)


# 모드 매개변수는
#
# Stat 모듈


# 변경 모드에 정의된 플래그로 정의

<코드 클래스 = "일반"> 모드 <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> stat.S_IRWXU

<코드 클래스 = "일반"> os.fchmod (fd, 모드)

<코드 클래스 = "함수"> 인쇄 ( "파일 모드가 성공적으로 변경되었습니다." )

print ( "이제 파일은 소유자만 읽고, 쓰고, 실행할 수 있습니다. " <코드 클래스 ="일반 ">)


# 수정된 숫자 모드 인쇄
# (8진수) 파일

모드 = oct <코드 클래스 = "일반"> (os.stat (fd) .st_mode) [ <코드 클래스 = "키워드"> - <코드 클래스 = "값"> 3 <코드 클래스 = "일반">:]

<코드 클래스 = "함수"> 인쇄 <코드 클래스 = "일반"> ( "파일의 현재 숫자 모드(8진수 표기법):" , 모드)

< /p>


# 모드 변경

< p> <코드 클래스 = "일반"> 모드 <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> stat.S_IRWXU | stat.S_IRGRP

os.fchmod (fd, 모드)

인쇄 ( "파일 모드가 성공적으로 변경되었습니다." )

인쇄 ("지금, 파일 <코드 클래스 = "plain"> 읽기, 쓰기 실행

소유자이지만 그룹에서 읽을 수 있음 ")


# 수정된 숫자 모드 인쇄
# (8진수) 파일

모드 = oct (os.stat (fd) .st_mode) [ <코드 클래스 = "키워드"> - <코드 클래스 = "값"> 3 <코드 클래스 = "일반">:]

<코드 클래스 = "함수"> 인쇄 <코드 클래스 = "일반"> ( "파일의 현재 숫자 모드(8진수 표기법):" , 모드)


# 파일 설명자를 닫습니다.
os.close (fd)

종료 :

 파일의 현재 숫자 모드( 8진법): 666 파일 모드가 성공적으로 변경되었습니다. 파일의 현재 숫자 모드(8진법): 777 파일 모드가 성공적으로 변경되었습니다. 이제 파일은 소유자만 읽고, 쓰고, 실행할 수 있습니다. 파일의 현재 숫자 모드(8진법): 700 파일 모드가 성공적으로 변경되었습니다. 이제 파일은 소유자가 읽고, 쓰고, 실행할 수 있지만 그룹은 읽을 수 있습니다. 파일의 현재 숫자 모드(8진수 표기법): 740