노트북을 시작할 때마다 폴더 권한이 재설정됩니다.

노트북을 시작할 때마다 폴더 권한이 재설정됩니다.

저는 Arch Linux를 사용하고 있으며 사용자로 랩톱을 시작할 때마다 하드 드라이브 폴더 권한이 루트로만 설정되어 있으므로 사용자로 열 수 없습니다. 다음 명령을 사용하여 권한을 변경합니다.

sudo chmod -R 775 /mnt

여기서 /mnt는 내 하드 드라이브가 포함된 폴더입니다. 노트북을 다시 시작하면 모든 것이 재설정되고 하드 드라이브에 다시 액세스하려면 동일한 명령을 사용해야 하는데 권한을 어떻게 저장합니까?

/etc/fstab의 출력

# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda6
UUID=e0888535-4d8b-4b89-9a7e-4a85208fe129   /           ext4        rw,relatime 0 1

내 하드 드라이브는 Windows 디스크이고 Windows 10으로 이중 부팅합니다.

df의 출력:

Filesystem     1K-blocks      Used Available Use% Mounted on
dev              2973860         0   2973860   0% /dev
run              2982588       716   2981872   1% /run
/dev/sda6       30313412   4987780  23762752  18% /
tmpfs            2982588    101116   2881472   4% /dev/shm
tmpfs            2982588         0   2982588   0% /sys/fs/cgroup
tmpfs            2982588       220   2982368   1% /tmp
tmpfs             596516        24    596492   1% /run/user/1001
/dev/sda4      354528216 350712252   3815964  99% /mnt

탑재된 출력:

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
dev on /dev type devtmpfs (rw,nosuid,relatime,size=2973860k,nr_inodes=743465,mode=755)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
/dev/sda6 on / type ext4 (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13513)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/user/1001 type tmpfs (rw,nosuid,nodev,relatime,size=596516k,mode=700,uid=1001,gid=1001)
/dev/sda4 on /mnt type ntfs (rw,relatime,uid=0,gid=0,fmask=0177,dmask=077,nls=utf8,errors=continue,mft_zone_multiplier=1)

답변1

/etc/rc.local에 chmod 명령을 추가하여 부팅 시 chmod 명령을 자동화해 보십시오.

또는:

/etc/systemd/system/ 디렉토리에 SYSTEMD UNIT FILE을 생성해 보십시오. 예를 들어 addpermission.service라고 합니다.

여기에 다음 스크립트를 추가하세요.

[Unit]
Description=Adding permissions to users


[Service]
ExecStart=/usr/bin/bash -c 'sudo chmod -R 775 /mnt'

[Install]
WantedBy=multi-user.target 

그런 다음 다음 스크립트를 실행하여 활성화합니다. systemctl enable addpermission.service

제대로 작동하는지 테스트하려면 /mnt 디렉토리가 추가된 경우 해당 디렉토리에 대한 권한을 제거하고 유닛 파일을 시작한 후 상태를 확인하세요.

systemctl start addpermission.service 
systemctl status addpermission.service 

상태가 정상이라면. /mnt 디렉토리에 대한 권한을 확인해 보십시오. 변경된 경우 다시 시작하고 다시 확인하십시오. 변경되지 않은 경우 오류를 확인하고 ExecStart에서 명령을 편집하여 수정하십시오. 결국에는 효과가 있었습니다.

답변2

최근 몇몇 서버에서 이 문제를 확인했고 마침내 ACL을 제거하여 문제를 해결했습니다.

따라서 기존 ACL 설정이 있는지 디렉터리를 확인하는 것이 좋습니다.

getfacl을 사용하여 ACL 권한이 있는지 확인하고 이를 제거하면 문제가 영구적으로 해결됩니다.

관련 정보