아래 스크린샷을 참조하세요.
사용자 chj가 실행되지만 chmod +x ichsize.out
실패합니다.허용되지 않는 작업.
ichszie.out에는 world-rw 권한이 활성화되어 있지만 그것만으로는 충분하지 않은 것 같습니다.
-rw-rw-rw- 1 nobody nogroup 27272 May 26 18:51 ichsize.out
ichsize.out의 소유자는 입니다 nobody
. 이 파일은 Samba 서버에서 생성되었으므로 [projects]
다음 디렉터리 위치에 있습니다.
[projects]
comment = VS2019 Linux-dev project output
path = /home/chj2/projects
browseable = yes
read only = no
guest ok = yes
create mask = 0666 #(everybody: read+write)
directory mask = 0777 #(everybody: list+modify+traverse)
hide dot files = no
Samba 클라이언트는 게스트로 이 공유에 액세스하고 ichsize.out 파일 생성을 요청합니다.
이 시스템은 Raspberry Pi: 11(bullseye)의 Debian 버전을 기반으로 합니다. Ubuntu 20.04의 동작은 동일합니다.
그래서 RasPi의 모든 사용자가 chmod +x
파일에 대한 작업을 수행할 수 있도록 smb.conf를 작성하는 방법이 궁금합니다.
답변1
이 공유에 있는 파일을 소유한 사용자가 누구인지 걱정할 필요가 없다면 force user
구성 설정을 사용하여 Samba 사용자가 chmod
. 공유(즉, Alice와 Bob이 모두 공유에 연결되어 있으면 Alice는 자신이 모든 파일을 소유하고 있고 Bob은 자신이 모든 파일을 소유하고 있음을 알게 됩니다.) 그러나 결과적으로 누구나 실행할 수 있습니다 chmod
.
예를 들어, 이것이 shareuser
Samba 서버의 유효한 사용자 계정이고, sharegroup
이 공유에 액세스할 수 있는 사용자 집합을 포함하며, 계정이 /home/_share
존재하고 소유자에게 shareuser
최소한 다음 권한이 있다고 가정합니다 0700
.
[Share]
comment = Everyone owns these files
path = /home/_share
browseable = yes
read only = no
guest ok = no
force user = shareuser
valid users = "@sharegroup"
; vfs objects = acl_xattr recycle catia
또는 테스트하지 않았지만 게스트 사용자에게 다음을 허용합니다.
[Share]
comment = Everyone owns these files
path = /home/_share
browseable = yes
read only = no
guest ok = yes
force user = shareuser
도메인에 가입된 환경에서는 Samba가 실제 Windows ACL 및 소유권을 가진 파일을 처리하도록 할 수도 있습니다. 예를 들어, Windows 환경에서는 그룹이 파일을 소유하고 액세스 권한 등을 변경할 수 있는 권한을 가질 수 있습니다. 귀하의 guest ok = yes
상황에 비추어 볼 때 이것이 관련성이 있을지 의심스럽습니다. 그러나 미래의 잠재적인 독자들에게 언급하겠습니다.
반면에, 정말로 말하고 싶다면 "smb.conf
내 글은 어떻게 쓰나요?RasPi의 모든 사용자chmod +x
파일에 대한 작업을 수행 할 수 있습니다.smb.conf
" [강조를 위한 이탤릭체] 그러면 구성 파일이 Pi 자체의 사용자와 관련이 없다는 것을 알아야 합니다 . 기본 UNIX/Linux 컨트롤은 Pi 사용자를 위한 것이므로 chmod
속하지 않는 파일에서는 실행할 수 없습니다. 당신에게.
답변2
이렇게 하면 RasPi의 모든 사용자가 파일을 chmod +x할 수 있습니다.
당신은 할 수 없습니다. 어쨌든 일반 Unixy 권한 비트는 사용되지 않지만@roaima의 답변또한.
~에서Linux chmod()
시스템 호출 매뉴얼 페이지:
호출 프로세스의 유효 UID는 파일 소유자와 일치해야 하거나 프로세스에 권한이 있어야 합니다.
실패하면 "작업이 허용되지 않습니다"라는 메시지에 해당하는 오류 코드 EPERM이 제공됩니다.
Linux 데스크톱 배포판을 사용하고 있다면 아마도 GNU 도구 세트가 있을 것입니다. 암소 비슷한 일종의 영양chmod
명령줄 도구 매뉴얼 페이지필수 권한에 대한 언급은 없는 것 같지만,정보 페이지에서.