Права на папки сбрасываются каждый раз, когда я перезагружаю ноутбук.

Вопрос или проблема

Я использую Arch Linux, и каждый раз, когда я загружаю свой ноутбук в качестве пользователя, права доступа к папкам на жестком диске устанавливаются только для root, поэтому я не могу открыть их как пользователь. Я использовал следующую команду, чтобы изменить права доступа

sudo chmod -R 775 /mnt

где /mnt — это папка, содержащая мой жесткий диск. Когда я перезагружаю свой ноутбук, все сбрасывается, и мне снова нужно использовать ту же команду, чтобы получить доступ к жесткому диску. Как сохранить права доступа?

Вывод /etc/fstab

# Статическая информация о файловых системах.
# См. fstab(5) для подробностей.

# <файловая система> <каталог> <тип> <опции> <дамп> <передача>
# /dev/sda6
UUID=e0888535-4d8b-4b89-9a7e-4a85208fe129   /           ext4        rw,relatime 0 1

Мой жесткий диск — это диск Windows, я запускаю двойную загрузку с Windows 10.

Вывод df:

Файловая система     1K-блоков      Использовано Доступно Использ. % Смонтировано на
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

Вывод mount:

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

Попробуйте автоматизировать команду chmod при загрузке, добавив ее в /etc/rc.local

ИЛИ:

Попробуйте создать файл SYSTEMD UNIT в каталоге /etc/systemd/system/. Назовите его addpermission.service, например.

Добавьте этот скрипт в него:

[Unit]
Description=Добавление прав доступа для пользователей


[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 

если статус OK. Попробуйте затем проверить права доступа на каталоге /mnt. если они изменились, то попробуйте перезагрузить и снова проверить, если нет, проверьте ошибку и попробуйте отредактировать команду в ExecStart, чтобы исправить ее. С моей стороны, это сработало.

Я недавно видел эту проблему на нескольких серверах, наконец я исправил ее, удалив ACL.

Поэтому я настоятельно рекомендую вам проверить, есть ли у этого каталога существующая настройка ACL.

Вы можете узнать с помощью getfacl, если вы увидите какие-либо права доступа ACL, то удалите их, это исправит эту проблему навсегда.

Ответ или решение

Проблема, с которой вы сталкиваетесь, заключается в том, что папки на вашем жестком диске сбрасывают права доступа при каждой перезагрузке системы Arch Linux. Это связано с тем, что ваш жесткий диск отформатирован в файловой системе NTFS, используемой в Windows, и ваше текущее монтирование этой файловой системы не устанавливает права доступа, необходимые для пользователя.

Для решения этой проблемы необходимо внести изменения в файл конфигурации /etc/fstab, чтобы задать правильные параметры монтирования диска. Давайте рассмотрим шаги, которые вам нужно выполнить:

1. Изменение параметров монтирования в /etc/fstab

Открыть файл для редактирования:

sudo nano /etc/fstab

Найдите строку, соответствующую вашему NTFS-разделу (в вашем случае это /dev/sda4), и измените её, добавив дополнительные параметры uid, gid, fmask, и dmask. Эти параметры будут определять пользователя и группу, которым будут принадлежать файлы, а также права доступа к файлам.

Пример изменения строки:

/dev/sda4      /mnt     ntfs-3g    uid=1000,gid=1000,fmask=0022,dmask=0000,nls=utf8,errors=continue,mft_zone_multiplier=1 0 0

Здесь:

  • uid=1000 и gid=1000 устанавливают владельцем и группу для файлов пользователя с ID 1000 (обычно это ваш пользователь в Arch Linux).
  • fmask=0022 задает права доступа для файлов (в данном случае, rw-r–r–).
  • dmask=0000 задает права доступа для каталогов (в данном случае, rwxrwxrwx).

2. Применение изменений

После внесенных изменений сохраните файл и выполните следующие команды, чтобы заново смонтировать диски:

sudo umount /mnt
sudo mount -a

Проверьте, изменились ли права доступа на нужный каталог:

ls -ld /mnt

3. Удаление ACL (опционально)

Если проблема все еще сохраняется, возможно, в вашей системе установлены ACL (Access Control Lists), которые могут переопределять стандартные права. Для их проверки выполните команду:

getfacl /mnt

Если у каталога есть ACL, вы можете удалить их следующим образом:

sudo setfacl -b /mnt

4. Создание системной службы (альтернативный способ)

Если вы все-таки хотите автоматически устанавливать права доступа при каждой перезагрузке, вы можете создать системное юнит-файл для этой цели.

Создайте файл в директории /etc/systemd/system/, например addpermission.service:

sudo nano /etc/systemd/system/addpermission.service

Добавьте в него следующее содержимое:

[Unit]
Description=Setup Permissions on /mnt

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'chmod -R 775 /mnt'

[Install]
WantedBy=multi-user.target

Активируйте службу:

sudo systemctl enable addpermission.service

После этого можно протестировать службу:

sudo systemctl start addpermission.service
sudo systemctl status addpermission.service

И убедитесь, что права доступа на каталоге изменились.

Заключение

Следуя этим шагам, вы сможете настроить систему так, чтобы права доступа на ваш NTFS-раздел сохранялись после каждого перезапуска. Проверяйте изменения и служите пользователям качественной поддержкой, используя возможности Linux для эффективного управления правами доступа.

Оцените материал
Добавить комментарий

Капча загружается...