автоматическое_монтирование_флешек_без_systemd

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
автоматическое_монтирование_флешек_без_systemd [2024/01/23 12:56] uf4nавтоматическое_монтирование_флешек_без_systemd [2025/02/18 11:29] (current) uf4n
Line 11: Line 11:
 --------------------------------------------------------------------- ---------------------------------------------------------------------
  
-Cоздать файл /usr/bin/mount_media+Cоздать файл /usr/bin/media-mount
  
-  #!/bin/sh +<code> 
-  # +#!/bin/bash 
-  # License? + 
-  # +Добавить сюда задание значения переменной PATH 
-   + 
-  # +DISK_LABEL=disk_$(echo /dev/${1} | sed 's|/dev/sd||' | sed -E 's|[^a-zA-Z]||g' | tr '[:lower:][:upper:]' '[:upper:][:lower:]')_$(lsblk -o SIZE /dev/${1} | sed -n '2p') 
-  # UUID раздела +DISK_LABEL=$(echo "${DISK_LABEL}" | tr -d ' ') 
-  # +DISK_LABEL=$(echo "${DISK_LABEL}" | tr ',' '.') 
-  #PART_UUID="`/sbin/blkid -o value -s UUID /dev/${1}`" + 
-   +if [ "$2" = "plugdev" ] 
-  # +then  
-  # LABEL раздела + 
-  # +    PART_FS=$(/usr/sbin/blkid -o value -s TYPE /dev/${1}) 
-  PART_LABEL=$(/sbin/blkid --o value -s LABEL /dev/${1} | /bin/sed 's/ /_/g') +    mkdir /media/${DISK_LABEL} 
-   + 
-  # +    Determin any loged users excep root 
-  # FS раздела +    logged_users=$(who | awk '{print $1}' | grep -v '^root$' | sort -u) 
-  # +    if [ -n "$logged_users]; then 
-  PART_FS=$(/sbin/blkid -o value -s TYPE /dev/${1}) +         
-   +        OWNER=$(echo "$logged_users| head -n 1) 
-  # +        BASIC_GROUP=$(id -gn ${OWNER}) 
-  Проверить подключается устройство или отключается? + 
-  # +        case ${PART_FS} in 
-  if [ "$2" = "plugdev] + 
-  then /bin/mkdir /media/${1}.${PART_LABEL} +        vfat) 
-   +        echo /dev/${1} /media/${DISK_LABELvfat rw,users,uid=${OWNER},gid=${BASIC_GROUP},dmask=0022,fmask=0022 0 >> /etc/fstab 
-  # +        mount -t vfat -o rw,users,uid=${OWNER},gid=${BASIC_GROUP},dmask=0022,fmask=0022 /dev/${1} /media/${DISK_LABEL
-  # Определитьне смонтирован ли уже раздел? +        ;; 
-  # + 
-  # if [grep -e ${1-e mount] +        exfat
-  # then printf Всё смонтированоя в отбой. && exit +        echo /dev/${1} /media/${DISK_LABELexfat rw,users,uid=${OWNER},gid=${BASIC_GROUP},dmask=0022,fmask=0022 0 0 >> /etc/fstab 
-   +        mount -t exfat -o rw,users,uid=${OWNER},gid=${BASIC_GROUP},dmask=0022,fmask=0022 /dev/${1} /media/${DISK_LABEL
-  case ${PART_FSin +        ;; 
-   + 
-  vfat+        ntfs) 
-  /bin/echo /dev/${1} /media/${1}.${PART_LABELvfat shortname=lower,iocharset=utf8,noatime,users,dmask=000,fmask=111 0 0 >> /etc/fstab +        echo /dev/${1} /media/${DISK_LABELntfs rw,relatime,noexec,nosuid,users,uid=${OWNER},gid=${BASIC_GROUP},dmask=000,fmask=111 0 0 >> /etc/fstab 
-  /bin/mount /dev/${1} +        mount -t ntfs -o rw,relatime,noexec,nosuid,users,uid=${OWNER},gid=${BASIC_GROUP},dmask=000,fmask=111 /dev/${1} /media/${DISK_LABEL} 
-  ;; +        ;; 
-   + 
-  ntfs) +        ext4) 
-  /bin/echo /dev/${1} /media/${1}.${PART_LABEL} ntfs-3g relatime,users,dmask=000,fmask=111 0 0 >> /etc/fstab +        echo /dev/${1} /media/${DISK_LABEL} auto rw,noatime,nosuid,nodev,users,errors=remount-ro 0 0 >> /etc/fstab 
-  /bin/mount /dev/${1} +        mount -t ext4 -o rw,users,noatime,nosuid,nodev,errors=remount-ro /dev/${1} /media/${DISK_LABEL
-  ;; +        ;; 
-   + 
-  *) +        *) 
-  /bin/echo /dev/${1} /media/${1}.${PART_LABEL} auto users 0 0 >> /etc/fstab +        echo /dev/${1} /media/${DISK_LABEL} auto,users 0 0 >> /etc/fstab 
-  /bin/mount /dev/${1} +        mount -t auto -o auto,users 0 0  /dev/${1} /media/${DISK_LABEL
-  ;; +        ;; 
-   + 
-  esac +        esac 
-  else +    fi 
-  /bin/umount -l /dev/${1} +elif [ "$2" = "unplugdev" ]  
-  /bin/rmdir --ignore-fail-on-non-empty "$(/usr/bin/awk "/${1}/ { print \$2 }" < /etc/fstab)" +then 
-  /bin/sed "/\/dev\/${1}/d" -i /etc/fstab +    umount -l /dev/${1} 
-  fi +    rm -rf /media/${DISK_LABEL}* 
-   +    #rmdir --ignore-fail-on-non-empty "$(/usr/bin/awk "/${1}/ { print \$2 }" < /etc/fstab)" 
-  exit 0+    sed "/\/dev\/${1}/d" -i /etc/fstab 
 +fi 
 + 
 + 
 +exit 0 
 + 
 +# NB: The user will not be able to unmount the device, even if the users option was specified in the mount command. There must be an entry about the device in /etc/fstab. 
 +</code>
  
 ---------------------------------------------------------------------------- ----------------------------------------------------------------------------
Line 75: Line 82:
 Дать этому файлу права на исполнение Дать этому файлу права на исполнение
  
-  sudo chmod +x /usr/bin/mount_media+  sudo chmod +x /usr/bin/media-mount
  
 ---------------------------------------------------------------------------- ----------------------------------------------------------------------------
Line 83: Line 90:
   sudo udevadm control --reload-rules   sudo udevadm control --reload-rules
      
-Разрешить пользователю выполнять команды монтирования и размонтирования от root'а 
- 
-  sudo chmod +s /bin/mount 
-  sudo chmod +s /bin/umount 
      
 ---------------------------------------------------------------------------- ----------------------------------------------------------------------------
- 
-Добавить одну пустую строку в /etc/fstab 
-По мере подключения съёмных носителей в этот файл добавляются новые строки, нужно, чтобы прошлые строки не испортились. 
- 
----------------------------------------------------------------------------- 
- 
  
 Исходная статья Исходная статья
  
 https://www.altlinux.org/Automount https://www.altlinux.org/Automount
автоматическое_монтирование_флешек_без_systemd.1706014598.txt.gz · Last modified: 2024/01/23 12:56 by uf4n