ramfs
다음 명령을 사용하여 마운트 지점을 생성하려고 합니다 /tmp/ram
.
/etc/fstab
다음 줄을 사용하여 항목이 생성됩니다.ramfs /tmp/ram ramfs rw,nodev,noexec,nosuid,async,user,noauto 0 0
(나도
user
로 교체해 보았습니다users
. 또한 사용해 보았습니다x-mount.mkdir=0770
.)권한이 0775인 디렉터리를 생성했습니다
/tmp/ram
(아니요root
).ramfs
일반 사용자 명령을 사용하여 파일 시스템을 마운트합니다mount /tmp/ram
.
그러나 설치 후 디렉토리에는 항상 소유권 user= root
, group= me
( me
일반 사용자의 사용자 이름/그룹 이름) 및 권한이 있으므로 0755
디렉토리에 파일을 생성할 수 없습니다.
어떻게 진행해야 할지 아시나요? 루트 대신 일반 사용자를 사용하여 이 파일 시스템을 마운트하고 싶습니다. 이 마운트에 루트 권한을 전혀 사용하고 싶지 않습니다 /etc/fstab
.
답변1
이는 설치된 파일 시스템 드라이버가 이미 마운트 지점의 루트 디렉터리를 제공하기 때문에 발생합니다. 따라서 inode 매개변수(권한 설정 포함)는 여기에서 나오며 /tmp/ram의 원래 설정과 겹칩니다.
일부 파일 시스템은 마운트 매개변수를 통해 권한을 수정하거나 변경하는 기능을 제공하지만 이유는 다릅니다. 파일 시스템에 권한 정보(vfat)가 충분하지 않거나 Unix 보안(cifs)에 너무 익숙하지 않은 경우 sysadm hot에서 제공하는 방법입니다. Ramfs에는 이 기능이 없습니다.
"user" 매개변수는 사용자가 파일 시스템을 마운트하거나 마운트 해제하는 것만 허용하며 보안 매개변수는 변경하지 않습니다. 이는 아마도 귀하의 의도가 아닐 것입니다(모든 사용자가 동시에 액세스할 수 있는 매우 빠른 tmp를 생성하고 싶다고 생각합니다).
참고로 간단한 최적화: ramfs가 아닌 tmpfs를 사용할 수도 있습니다. tmpfs의 내용도 주로 램에 있지만 사용하지 않을 경우 교체할 수 있습니다. Ramfs의 내용은 항상 물리적 메모리에 위치합니다. Tmpfs는 필요에 따라 매개변수화할 수 있습니다. 예를 들어 mode=1777을 사용하면 /tmp처럼 작동하게 됩니다(모든 사람이 파일을 생성/삭제할 수 있지만 자신의 파일만 가능).
chmod/chown 명령을 실행해야 합니다.뒤쪽에마운트가 발생했습니다. Linux 마운트 도구는 이 기능을 쉽게 제공할 수 없습니다.
이를 위해 /etc/init.d에 init 스크립트를 생성하고(다른 init 스크립트는 이 작업을 쉽게 수행하는 방법에 대한 구문을 제공함) 재부팅 시 mount/chmod를 수행하는 것이 좋습니다.