autofs를 사용하여 각 사용자의 홈 디렉터리에 마운트

autofs를 사용하여 각 사용자의 홈 디렉터리에 마운트

(SF의 크로스 포스트, 나는 거기서 별로 기쁨을 얻지 못합니다)

CentOS 6.2 시스템이 실행 중이고 인터넷의 다양한 방법을 사용하여 /mydomain 폴더 아래에 Windows 공유를 자동으로 마운트하도록 autofs를 구성했습니다. 구체적으로 세 가지 파일이 있습니다.

/etc/auto.master

# ...
/mydomain   /etc/auto.mydomain --timeout=60
# ...

/etc/auto.mydomain

* -fstype=autofs,-DSERVER=& file:/etc/auto.mydomain.sub

/etc/auto.mydomain.sub

* -fstype=cifs,uid=${UID},gid=${EUID},credentials=${HOME}/.smb/mydomain ://${SERVER}/&

이는 작동하며 각 사용자가 홈 디렉터리 아래의 파일에 자신의 자격 증명을 지정할 수 있습니다.

그러나 생성된 마운트는 제한 시간에 도달할 때까지 원래 사용자의 자격 증명을 사용하는 모든 사람이 사용할 수 있습니다. 이는 이상적이지 않으므로 다음 중 하나를 시도하려고 생각했습니다.

  1. 마운트가 각 사용자에게 로컬이지만 동일한 경로에 있으므로 사용자가 /mydomain/server1자신의 자격 증명을 사용하여 동시에 액세스 할 수 있도록 autofs를 구성합니다.
  2. 탑재 지점이 각 사용자의 홈 폴더 아래에 있으므로 각 사용자가 ~/mydomain/server1자신의 자격 증명을 사용하여 동시에 액세스 할 수 있도록 autofs를 구성합니다.
  3. 마운트가 사용자가 명명한 폴더 아래에 있도록 autofs를 구성하여 사용자가 자신의 자격 증명을 사용하여 둘 다 액세스할 수 있도록 합니다 (그러나 지정된 $USER가 0700인지도 /mydomain/$USER/server1확인해야 합니다 )./mydomain/$USER

지금까지는 #1을 수행할 방법이 없지만 #2 또는 #3의 경우 키가 작동하거나 작동하지 않도록 /etc/auto.master의 항목을 변경해 보았습니다. ${HOME}/mydomain( /mydomain/${USER}첫 번째 항목에는 일치하는 항목이 표시되지 않습니다. /var/log/messages, 두 번째 것은 변수 대체를 수행하지 않는 것 같습니다).

나는 분명한 것을 놓치고 있습니까?

(추신: 일반 텍스트 자격 증명 파일이 필요하지 않은 방법을 제공할 수 있다면 보너스가 될 것입니다. 사용자 이름/도메인/비밀번호에 대한 직접적인 프롬프트일 수도 있고 Kerberos 마법일 수도 있습니다.)

(PPS: 간략하게 살펴봤습니다.SMB 네트워크 파일 시스템, 하지만 구성/작성할 수 없습니다. fuse >= 2.6v2.8.3이 있지만 v2.8.3이 필요하며 fusermount --version릴리스 버전을 찾을 수 없습니다 yum install.)

(PPPS: 제공되는 내용도 간략히 살펴보았는데 /etc/auto.smb, 같은 공유 문제로 어려움을 겪을 것 같죠?)

답변1

나는 그것으로 많은 작업을 수행했고 autofs다양한 유형의 리소스를 설치했습니다. 당신은 볼 수 있습니다매뉴얼 페이지문서에서 언급할 때 autofs데몬이 실행 중인 사용자를 참조한다는 점을 분명히 할 수 있다면 실제로 몇 가지 질문에 대한 답이 될 것입니다. 기본적으로 얻는 변수는 다음과 같습니다.$USERautofs

Variable Substitution

The following special variables will be substituted in the key and location fields of an automounter map if prefixed with $ as customary from shell scripts (Curly braces can be used to separate the field name):
ARCH    Architecture (uname -m)
CPU    Processor Type
HOST    Hostname (uname -n)
OSNAME    Operating System (uname -s)
OSREL    Release of OS (uname -r)
OSVERS    Version of OS (uname -v)
autofs provides additional variables that are set based on the user requesting the mount:

USER    The user login name
UID    The user login ID
GROUP    The user group name
GID    The user group ID
HOME    The user home directory
HOST    Hostname (uname -n)
Additional entries can be defined with the -Dvariable=Value map-option to automount(8).

를 사용하고 싶을 수도 있지만 -DUSER=$USER이는 매핑 파일 내에서 데몬을 시작하는 사용자로만 $USER설정 됩니다 . 이 데몬 은 일반적 으로 .autofsautofsrootchrootedautofs

참고 #1:파일은 autofsa와 a로 구성됩니다. 이러한 변수는 항목의 일부 내에서만 허용됩니다.keyvaluevalue

노트 2:-D=...스위치가 내장 변수를 재정의하지 않으면 설치 $USER에 액세스하는 사람의 & 값이 포함됩니다 $UID.$USER$UID

CIFS 공유에 대한 액세스 제한

설치에 대한 액세스를 제한하는 방법에 대한 질문에 대해서는 CIFS방법을 찾지 못했습니다 autofs.

공유를 탑재하는 데 사용되는 자격 증명은 CIFS공유를 탑재하는 과정 전체에서 사용됩니다. 실제로 autofs이를 실행하는 데몬 automount(예 root: )은 사용자의 자격 증명과 "동일"합니다 CIFS.

이것은 일반적인 동작으로 간주 되지 autofs않지만 mount.cifs.autofsmount.cifs

결론

내 생각에는 autofs를 사용한 설정이 운이 좋지 않은 것 같습니다. 각 사용자가 자신의 자격 증명을 사용하여 공유에 액세스 fuse하도록 하려면 이것이 필요하다고 생각합니다 .CIFS

답변2

file_modedir_mode이미 사용 중인 설정 과 결합된 및 options 를 사용하여 CIFS 마운트에 권한을 강제로 설정하여 uid=${USER}다음과 같은 자동 마운트 맵 라인을 제공할 수 있습니다.

* -fstype=cifs,uid=${UID},gid=${EUID},file_mode=0600,dir_mode=0700,credentials=${HOME}/.smb/mydomain ://${SERVER}/&

마운트된 파일 시스템은 해당 사용자의 소유가 되며 다른 모든 사용자의 액세스를 거부하도록 권한이 설정됩니다. 방금 시도해봤는데 정말 효과가 좋은 것 같아요 :)

file_mode=0700실행하려는 공유에 실행 파일이 저장되어 있는지 여부를 설정해야 할 수도 있습니다 . 내 예에서는 실행 권한을 제거합니다. 이것이 제가 원하는 동작이기 때문입니다.

참고: 이 옵션은 질문을 받을 당시에는 존재하지 않았을 수도 있지만 지금은 존재합니다!

답변3

삼바를 사용하려면:

존재하다 /etc/auto.home:

*       -fstype=cifs,credentials=/etc/smbcreds.& ://MYSERVERIP/homes

모든 사용자와 비밀번호를 별도의 파일에 저장해야 합니다./etc/smbcreds

줄의 마지막 부분은 삼바를 통해 마운트됩니다.

NFS 사용:

/etc/auto.home에서: (NFS의 경우)

*       MYSERVERIP:/home/&

관련 정보