每次启动笔记本电脑时,文件夹权限都会重置

每次启动笔记本电脑时,文件夹权限都会重置

我使用的是Arch Linux,每次我以用户身份启动笔记本电脑时,硬盘文件夹权限都设置为仅root,所以我无法以用户身份打开它们,我使用以下命令来更改权限

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

尝试通过将 chmod 命令添加到 /etc/rc.local 来在引导时自动执行该命令

或者:

尝试在 /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 权限,则将其删除,这将永久解决此问题。

相关内容