Подключить USB с флагом exec по умолчанию [закрыто]

У меня есть файловая система ext4 с программой, которую я запустил. Однако каждый раз, когда я загружаю свой компьютер, мне приходится перемонтировать диск с флагом exec, чтобы запустить приложение. Как мне отредактировать / etc / fstab, чтобы вместо этого смонтировать диск с флагом exec по умолчанию?

0
задан 5 October 2017 в 12:14

2 ответа

Общие полномочия с файловыми системами Microsoft в Linux

При монтировании файловых систем Microsoft (NTFS и FAT) Вы устанавливаете полномочия всех файлов и каталоги.

Отдельные полномочия с файловыми системами Linux

Но с файловыми системами 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----
1
ответ дан 2 November 2019 в 04:03

Вот то, как я вынудил свою систему 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 Ваша система не будет работать.

0
ответ дан 2 November 2019 в 04:03

Другие вопросы по тегам:

Похожие вопросы: