Python으로 Linux에서 파일 권한 확인
사용자 디렉터리에있는 파일의 권한을 확인하는 스크립트를 작성 중이며 허용되지 않는 경우 경고 메시지를 표시하지만 로그인 한 사용자뿐만 아니라 그룹 및 다른 사용자의 권한도 확인하고 싶습니다. 어떻게 할 수 있습니까? os.access()
Python에서는 스크립트를 실행하는 사용자의 권한 만 확인할 수있는 것 같습니다 .
당신이 바로 있다는 것 os.access은 , 기본처럼 액세스 콜, 특정 사용자에 대한 확인 (실제보다는 효과적인 ID를, SUID 상황을 도와).
os.stat 는 사용자, 그룹 및 기타 권한을 포함하여 파일에 대한 더 일반적인 정보를 얻는 올바른 방법입니다. 반환 st_mode
되는 개체 의 속성 os.stat
에는 파일에 대한 권한 비트가 있습니다.
이러한 비트를 해석하는 데 도움이되도록 stat 모듈 을 사용할 수 있습니다 . 특히, 여기 에 정의 된 비트 마스크를 원하고 &
연산자 (bit-and)를 사용하여 해당 st_mode
속성 의 관련 비트를 마스킹합니다. 예를 들어 True / False 확인 만 필요한 경우 특정 파일이 그룹으로 읽을 수 있는지 여부에 관계없이 한 가지 방법은 다음과 같습니다.
import os
import stat
def isgroupreadable(filepath):
st = os.stat(filepath)
return bool(st.st_mode & stat.S_IRGRP)
주의하세요 : os.stat
통화 비용이 다소 비쌀 수 있으므로 관심있는 각 비트에 대해 계속 통화를 반복하는 대신 한 번의 통화로 관심있는 모든 정보를 추출해야합니다 .-).
결과 해석 os.stat(path)
을 위해 stat
모듈 과 함께 파일 권한을 확인할 수 있습니다 .
사용 os.access()
플래그 os.R_OK
, os.W_OK
및 os.X_OK
.
편집 : Windows에서 디렉토리 권한을 테스트 하는 경우이 관련 질문을 확인하십시오 .
조금 다른 것을 위해 여기에 온 나와 같은 다른 사람들을 돕기 위해 :
import os
import stat
st = os.stat(yourfile)
oct_perm = oct(st.st_mode)
print(oct_perm)
>>> 0o100664 //the last 3 or 4 digits is probably what you want.
자세한 내용은 https://stackoverflow.com/a/5337329/1814774 를 참조하십시오.
import os
os.access('my_file', os.R_OK) # Check for read access
os.access('my_file', os.W_OK) # Check for write access
os.access('my_file', os.X_OK) # Check for execution access
os.access('my_file', os.F_OK) # Check for existence of file
참고 URL : https://stackoverflow.com/questions/1861836/checking-file-permissions-in-linux-with-python
'Development Tip' 카테고리의 다른 글
크롬의 선택 옵션 요소에 대한 클릭 이벤트 (0) | 2020.11.30 |
---|---|
.NET / C #에서 틱 정밀도의 타임 스탬프를 얻는 방법은 무엇입니까? (0) | 2020.11.30 |
ListView를 사용하여 Android에서 설정 화면을 만드시겠습니까? (0) | 2020.11.30 |
파이썬에서 따옴표로 묶인 문자열의 구분 기호를 분할하지만 무시하는 방법은 무엇입니까? (0) | 2020.11.30 |
DBML 디자이너에서 테이블을 빠르게 찾습니까 (검색)? (0) | 2020.11.30 |