У меня есть файловая система ext4 с программой, которую я запустил. Однако каждый раз, когда я загружаю свой компьютер, мне приходится перемонтировать диск с флагом exec, чтобы запустить приложение. Как мне отредактировать / etc / fstab, чтобы вместо этого смонтировать диск с флагом exec по умолчанию?
При монтировании файловых систем Microsoft (NTFS и FAT) Вы устанавливаете полномочия всех файлов и каталоги.
Но с файловыми системами Linux (Вы имеете ext4
файловая система) Вы можете установить и должны установить полномочия файлов и каталоги индивидуально.
Когда Вы создадите файлы в каталоге, они наследуют полномочия от каталога. Таким образом, я предлагаю, чтобы Вы изменили каталог, где у Вас есть своя программа (программы) и сценарии оболочки,
sudo chmod ugo+x /path-to/directory-name
На этот раз у Вас уже есть свой программный файл, поэтому измените его полномочия
sudo chmod ugo+x /path-to/program-name
Редактирование 1: можно также хотеть изменить владение некоторых каталогов и файлов индивидуально, который также возможен и рекомендован в файловых системах Linux.
sudo chown user:group /path-to/directory-name
и
sudo chown user:group /path-to/file-name
где пользователь и группа должны быть заменены фактическим идентификатором пользователя и идентификатором группы, что Вы хотите владеть файлом (идентификатор группы может быть пропущен или установлен на то же как идентификатор пользователя).
Редактирование 2:
exec
в fstab для Карты памяти с ext4Это работает на меня (в Ubuntu 16.04 LTS, а также в Ловком для становления 17.10) для выполнения исполняемых файлов в ext4
файловые системы, когда был автосмонтирован, а также при монтировании через /etc/fstab
без опции монтирования exec
.
Но это не имеет место для Вас. Таким образом, я протестировал для добавления строки в /etc/fstab
, с опцией монтирования exec
(в Ловком для становления 17.10), и это работает на меня. Я надеюсь, что это решит Вашу проблему.
Создайте точку монтирования
sudo mkdir -p /mnt/usb-ext4
Определите UUID раздела в Карте памяти, которая будет смонтирована
sudo blkid
Используйте строку без кавычек.
Править /etc/fstab
sudo nano /etc/fstab
Я добавил следующие строки в своем тесте
# external drive with ext4 partition
UUID=984666a5-594c-4edc-93a9-8923e6f52c80 /mnt/usb-ext4 ext4 defaults,exec,errors=remount-ro 0 2
Редактирование 3:
user,noauto,exec
в fstabКогда Вы добавляете строку в предыдущем абзаце в fstab
, система хочет, чтобы Карта памяти была вставлена. Если Вы хотите загрузиться без него, можно прожить, если Вы добавляете опции монтирования user,noauto
к списку опций в той строке fstab
.
UUID=984666a5-594c-4edc-93a9-8923e6f52c80 /mnt/usb-ext4 ext4 user,noauto,exec,errors=remount-ro 0 2
Но необходимо инициировать монтирование впоследствии, например, с
mount -L <label>
или
mount <mountpoint>
в моем примере
mount -L test-exec
или
mount /mnt/usb-ext4
Тот же пользователь может размонтировать его
umount /mnt/usb-ext4
После перезагрузки я выполнил следующие команды.
mtab:
$ grep /mnt/usb-ext4 ext4 /etc/mtab
/dev/sdb1 /mnt/usb-ext4 ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
fstab:
$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=10880524-3839-4142-b7db-f65845d87825 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=E556-B809 /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
# external drive with ext4 partition
UUID=984666a5-594c-4edc-93a9-8923e6f52c80 /mnt/usb-ext4 ext4 defaults,exec,errors=remount-ro 0 2
Я создал каталог и изменил владение:
cd /mnt/usb-ext4
sudo mkdir bin
sudo chown $USER:$USER bin
Затем я создал маленький сценарий оболочки и сделал его исполняемым файлом:
cd bin
echo 'echo Hello World'>hello
chmod ugo+x hello
Длинный список для проверки полномочий и владения:
$ ls -l
totalt 4
-rwxrwxr-x 1 tester tester 17 okt 6 07:51 hello
и это может быть выполнено
$ ./hello
Hello World
lsb_release:
tester@tester-SATELLITE-PRO-C850-19W:/mnt/usb-ext4/bin$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu Artful Aardvark (development branch)
Release: 17.10
Codename: artful
uname:
tester@tester-SATELLITE-PRO-C850-19W:/mnt/usb-ext4/bin$ uname -a
Linux tester-SATELLITE-PRO-C850-19W 4.13.0-12-generic #13-Ubuntu SMP Sat Sep 23 03:40:16 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
blkid:
tester@tester-SATELLITE-PRO-C850-19W:/mnt/usb-ext4/bin$ sudo blkid
/dev/sda1: UUID="E556-B809" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="b3276a58-ea15-4cea-8c74-095b13ea7aa6"
/dev/sda2: UUID="10880524-3839-4142-b7db-f65845d87825" TYPE="ext4" PARTUUID="d399063d-1c12-4a62-86d9-0112b15a3e40"
/dev/sdb1: LABEL="test-exec" UUID="984666a5-594c-4edc-93a9-8923e6f52c80" TYPE="ext4" PARTUUID="4b07dce4-4bde-4fe9-9b2f-2442a62b0b87"
lsblk:
tester@tester-SATELLITE-PRO-C850-19W:~$ sudo lsblk -fm
[sudo] lösenord för tester:
NAME FSTYPE LABEL UUID MOUNTPOINT SIZE OWNER GROUP MODE
sda 55,9G root disk brw-rw----
├─sda1 vfat E556-B809 /boot/efi 480M root disk brw-rw----
└─sda2 ext4 10880524-3839-4142-b7db-f65845d87825 / 55,4G root disk brw-rw----
sdb 30,2G root disk brw-rw----
└─sdb1 ext4 test-exec 984666a5-594c-4edc-93a9-8923e6f52c80 /mnt/usb-ext4 30,2G root disk brw-rw----
sr0 1024M root cdrom brw-rw----
Вот то, как я вынудил свою систему Ubuntu 16.04.3 смонтировать вещь с опциями по умолчанию, читать man mount
, особенно части о "ФАЙЛОВОЙ СИСТЕМЕ НЕЗАВИСИМЫЕ ОПЦИИ МОНТИРОВАНИЯ" и "Монтируют опции для жира".
Я сделал
w3@aardvark:~(0)$ sudo lsblk --output "NAME,UUID,PARTUUID,SIZE,STATE"
NAME UUID PARTUUID SIZE STATE
sda 465.8G running
├─sda1 362254e8-2b99-442d-8ad9-4a348bc08032 ab519d4e-b282-4ca4-87a4-c3e5b143291f 111.3G
└─sda2 191289bd-73e0-4935-8f17-700559c83570 0109ac9a-7539-4323-9f1a-b24c59066e46 354.5G
sdb 465.8G running
├─sdb1 000a3a79-01 7.5G
│ └─cryptswap1 022bb8c1-4a34-444c-a359-b0aef01e3191 7.5G running
├─sdb2 000a3a79-02 1K
├─sdb5 83a64b80-5a37-4659-b797-221b88ef41f8 000a3a79-05 165.2G
└─sdb6 12817b99-9d2b-4357-a4ca-c11eab672a20 000a3a79-06 293G
sdc 0123-4567 3.7G running
sdd 0123-4567 7.4G running
sdf 931.5G running
└─sdf1 ff359af0-d996-4949-b27e-f24ce453c48c 00051704-01 931.5G
sdi F440-F7F4 3.7G running
Я выбрал sdi
для этого примера, YMMV
w3@aardvark:~(0)$ mount | grep /dev/sdi
/dev/sdi on /home/w3/mnt/mp3/OTHER type vfat (rw,nosuid,nodev,relatime,uid=1003,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro)
echo -e
вызвать interpretating \t
, \n
, выберите опции, которые Вы любите
w3@aardvark:~(0)$ echo -e "# Added by $USER $(date)\nUUID=F440-F7F4 /home/w3/mnt/mp3/OTHER\tvfat rw,exec,nosuid,nodev,relatime,uid=1003,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,flush,errors=remount-ro 0 0"
# Added by w3 Fri Oct 6 00:35:20 EDT 2017
UUID=F440-F7F4 /home/w3/mnt/mp3/OTHER vfat rw,exec,nosuid,nodev,relatime,uid=1003,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,flush,errors=remount-ro 0 0
w3@aardvark:~(0)$ !! | sudo tee -a /etc/fstab
echo -e "# Added by $USER $(date)\nUUID=F440-F7F4 /home/w3/mnt/mp3/OTHER\tvfat rw,exec,nosuid,nodev,relatime,uid=1003,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,flush,errors=remount-ro 0 0" | sudo tee -a /etc/fstab
# Added by w3 Fri Oct 6 00:35:40 EDT 2017
UUID=F440-F7F4 /home/w3/mnt/mp3/OTHER vfat rw,nosuid,nodev,relatime,uid=1003,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro 0 0
Это хорошо впервые. Впоследствии, можно отредактировать /etc/fstab
с
sudoedit /etc/fstab
Будьте очень осторожны, сохраните резервную копию последней работы fstab
. Если Вы повреждаетесь fstab
Ваша система не будет работать.