Centos7 서버에 루트로 로그인했지만 다른 사용자의 특정 디렉터리로 CD를 이동할 수 없습니다. "권한 거부" 오류가 계속 발생합니다.
이 디렉토리에 루트로 액세스할 수 있는 방법이 있습니까? "chmod"를 사용하여 권한을 변경하려고 시도했지만 "작업이 허용되지 않음" 오류가 발생했습니다.
감사해요.
findmnt
편집: 이것은 명령의 출력입니다.
TARGET SOURCE FSTYPE OPTIONS
/ /dev/mapper/centos-root
xfs rw,relatime,seclabel,attr2,inode64,sunit=512,sw
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime,seclabel
│ ├─/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,seclabel,mode=755
│ │ ├─/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_a
│ │ ├─/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,relatime,devices
│ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu
│ │ ├─/sys/fs/cgroup/net_cls,net_prio cgroup cgroup rw,nosuid,nodev,noexec,relatime,net_prio,net_cl
│ │ ├─/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,relatime,blkio
│ │ ├─/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuset
│ │ ├─/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,relatime,hugetlb
│ │ ├─/sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,relatime,pids
│ │ ├─/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory
│ │ ├─/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,relatime,perf_event
│ │ └─/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,relatime,freezer
│ ├─/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,relatime
│ ├─/sys/firmware/efi/efivars efivarfs efivarfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/selinux selinuxfs selinuxfs rw,relatime
│ ├─/sys/kernel/debug debugfs debugfs rw,relatime
│ └─/sys/kernel/config configfs configfs rw,relatime
├─/proc proc proc rw,nosuid,nodev,noexec,relatime
│ ├─/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,m
│ │ └─/proc/sys/fs/binfmt_misc binfmt_misc binfmt_mis rw,relatime
│ └─/proc/fs/nfsd nfsd nfsd rw,relatime
├─/dev devtmpfs devtmpfs rw,nosuid,seclabel,size=16200576k,nr_inodes=405
│ ├─/dev/shm tmpfs tmpfs rw,nosuid,nodev,seclabel
│ ├─/dev/pts devpts devpts rw,nosuid,noexec,relatime,seclabel,gid=5,mode=6
│ ├─/dev/hugepages hugetlbfs hugetlbfs rw,relatime,seclabel
│ └─/dev/mqueue mqueue mqueue rw,relatime,seclabel
├─/run tmpfs tmpfs rw,nosuid,nodev,seclabel,mode=755
│ ├─/run/user/10155 tmpfs tmpfs rw,nosuid,nodev,relatime,seclabel,size=3243272k
│ ├─/run/user/0 tmpfs tmpfs rw,nosuid,nodev,relatime,seclabel,size=3243272k
│ ├─/run/user/10143 tmpfs tmpfs rw,nosuid,nodev,relatime,seclabel,size=3243272k
│ ├─/run/user/10000 tmpfs tmpfs rw,nosuid,nodev,relatime,seclabel,size=3243272k
│ └─/run/user/42 tmpfs tmpfs rw,nosuid,nodev,relatime,seclabel,size=3243272k
├─/boot /dev/sda2 xfs rw,relatime,seclabel,attr2,inode64,sunit=512,sw
│ └─/boot/efi /dev/sda1 vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,
├─/home /dev/mapper/centos-home
xfs rw,relatime,seclabel,attr2,inode64,sunit=512,sw
│ └─/home/MAINUSERDIR IP-address-here:/home/MAINUSERDIR
nfs4 rw,relatime,vers=4.1,rsize=1048576,wsize=104857
├─/var/lib/nfs/rpc_pipefs sunrpc rpc_pipefs rw,relatime
├─/var/lib/snapd/snap/snapd/7264 /dev/loop0 squashfs ro,nodev,relatime,context=system_u:object_r:sna
├─/var/lib/snapd/snap/core18/1754 /dev/loop1 squashfs ro,nodev,relatime,context=system_u:object_r:sna
└─/var/lib/snapd/snap/snapd/7777 /dev/loop3 squashfs ro,nodev,relatime,context=system_u:object_r:sna
답변1
루트 사용자가 사용자 홈 디렉터리를 사용하도록 해야 한다면 /etc/exports
NFS 서버를 확인하고 옵션을 추가 하겠습니다 no_root_squash
.
더 나은 해결책은 NFS 서버에 로그인하고 루트로 공유로 이동한 다음 NFS 마운트를 통하지 않고 서버 자체에서 필요한 변경을 수행하는 것입니다.
추가 정보:
사용자 홈 디렉터리가 10.22.99.51의 NFS 공유에 마운트된 것 같습니다.
│ └─/home/MAINUSERDIR IP-address-here:/home/MAINUSERDIR nfs4 rw,relatime,vers=4.1,rsize=1048576,wsize=104857
기본적으로 루트(UID 0)를 익명 사용자(UID 65534)로 변경하는 옵션을 사용합니다 root_squash
. man 5 exports
자세한 내용은 다음을 통해 확인 하실 수 있습니다 .https://linux.die.net/man/5/exports
nfsd
각 NFS RPC 요청에 제공된 uid 및 gid를 기반으로 서버 컴퓨터의 파일에 대한 액세스 제어를 수행합니다. 사용자가 기대하는 일반적인 동작은 일반 파일 시스템처럼 서버의 파일에 액세스할 수 있다는 것입니다. 이를 위해서는 클라이언트와 서버 시스템에서 동일한 uid 및 gid를 사용해야 합니다. 이는 항상 옳은 것도 아니고 항상 바람직한 것도 아닙니다.일반적으로 NFS 서버의 파일에 액세스할 때 클라이언트 시스템의 루트 사용자가 루트로 간주되는 것을 원하지 않습니다. 이러한 이유로 uid 0은 일반적으로 소위 익명 또는 인간 uid라는 다른 ID에 매핑됩니다. 이 작동 모드("루트 압축"이라고 함)는 기본 모드이며 끌 수 있습니다
no_root_squash
.