如何設定另一個磁碟的某一個檔案為可執行檔? [論壇 - Ubuntu 與自由軟體相關活動版]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

(1) 2 »


如何設定另一個磁碟的某一個檔案為可執行檔?
會員一級
註冊日期:
2013/12/12 1:24
所屬群組:
已註冊使用者
等級: 3
HP : 0 / 70
MP : 8 / 1125
EXP: 83
離線
我有一個檔案, 在家目錄或桌面, 快按二下就可以執行了

但把它拷貝到另一個磁碟, 例如 DATA
快按二下,就不能執行了,
一直出現一個「視窗選單」,詢問我「開啟用」...為什麼?

如何把在磁碟DATA的這個檔案, 設定為可執行檔?
(在家目錄或桌面, 它是可執行的)

我試過了對這個檔案,
按右鍵、選「屬於」、再選「權限」,勾選「是可執行檔」
或是 chmod 700 檔名, 都無法改變為可執行檔。

2014/1/7 1:48
應用擴展 工具箱
回覆: 如何設定另一個磁碟的某一個檔案為可執行檔?
會員三級
註冊日期:
2006/1/11 0:33
所屬群組:
已註冊使用者
等級: 12
HP : 0 / 280
MP : 57 / 10938
EXP: 21
離線
mount 的時候加上 exec

exec Permit execution of binaries.

noexec Do not allow direct execution of any binaries on the mounted filesystem. (Until
recently it was possible to run binaries anyway using a command like /lib/ld*.so
/mnt/binary. This trick fails since Linux 2.4.25 / 2.6.0.)

2014/1/7 2:52
這個站可以廢了, 很愛言論審核, 發廢文亂回答答錯的卻很快就審核通過
應用擴展 工具箱
回覆: 如何設定另一個磁碟的某一個檔案為可執行檔?
會員一級
註冊日期:
2013/12/12 1:24
所屬群組:
已註冊使用者
等級: 3
HP : 0 / 70
MP : 8 / 1125
EXP: 83
離線
謝謝回覆

我試過 隨身碟 也無法執行。
如何 mount ? 為什麼會需要 mount ?
能否詳細說一下。

2014/1/7 8:31
應用擴展 工具箱
回覆: 如何設定另一個磁碟的某一個檔案為可執行檔?
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 179 / 896
MP : 661 / 27810
EXP: 85
離線
mount是Linux系統下要使用硬碟分區前要先做的動作,通常中譯是掛載
在圖形介面下開啟隨身碟時,系統實際上會背景自動mount隨身碟,之後才能存取裡面的檔案

你的隨身碟可能是FAT32或NTFS檔案系統,這些檔案系統不是用Linux的執行權限概念,但Linux在mount它們的時候,還是會另外模擬成Linux權限(rwx這些)
但因為是模擬的,行為還是和一般Linux分區不太一樣,例如執行chmod操作後沒有生效
不過這些可以藉由mount的參數,設定模擬的檔案權限

因為圖形介面的mount參數通常都是固定的,現在因為特殊需要要指定參數,所以需要手動下mount並指定參數


以下是解決方法步驟:
1.找出你的隨身碟代號,先插入隨身碟,並執行:
$ mount | grep sd

會看到類似以下的訊息:
/dev/sd** on /media/user/*** type vfat (rw,nosuid,nodev, ...

通常會列出好幾筆紀錄,請判斷一下隨身碟是哪一個
其中「/dev/sd**」是隨身碟分區代號,「/media/user/***」是掛載的位置,vfat代表是FAT32,若NTFS會是ntfs-3g

2.以指定參數重新掛載隨身碟:
$ sudo umount /media/user/***
$ sudo mkdir /media/user/***
$ sudo mount -o exec /dev/sd** /media/user/***

以上有星號的參數請依照當時遇到的情況修正

這樣就可以exec參數掛載隨身碟,可以看到隨身碟的檔案都會有執行權限

2014/1/7 12:10
I′m UGP
應用擴展 工具箱
回覆: 如何設定另一個磁碟的某一個檔案為可執行檔?
會員一級
註冊日期:
2013/12/12 1:24
所屬群組:
已註冊使用者
等級: 3
HP : 0 / 70
MP : 8 / 1125
EXP: 83
離線
哇!大大好厲害
謝謝回覆,問題解決了

我的隨身碟是 vfat -- fat32規格
mount -o exec 後就能執行了

但出現部份檔名(中文檔名)變成亂碼,該怎麼辦?

還有,是不是可以設定一開機就自動掛載?該怎麼做?

再請指導,謝謝。

2014/1/7 14:35
應用擴展 工具箱
回覆: 如何設定另一個磁碟的某一個檔案為可執行檔?
管理員
註冊日期:
2012/1/14 18:41
所屬群組:
討論區管理群
等級: 20
HP : 0 / 480
MP : 159 / 10326
EXP: 23
離線
dada2013 寫到:
哇!大大好厲害
謝謝回覆,問題解決了

我的隨身碟是 vfat -- fat32規格
mount -o exec 後就能執行了

但出現部份檔名(中文檔名)變成亂碼,該怎麼辦?

還有,是不是可以設定一開機就自動掛載?該怎麼做?

再請指導,謝謝。


開機啟動需要修改/etc/fstab
以下是範例
UUID=8a45ff3f-01e1-4ba1-9ad6-841a9ad303d4 /download ext4 defaults,nofail 0 0

UUID=8a45ff3f-01e1-4ba1-9ad6-841a9ad303d4
這個代表那個分割區的ID,可以用sudo blkid查到
也可以使用/dev/sdXY,但是推荐使用UUID

/download
這個是掛載點

ext4
這個就是檔案系統

defaults,nofail
這個是他的掛載參數,你的exec需要放在這裡

0 0
剩下這兩個就照打就好了,我沒有去研究他的用途,後面那個跟開機的fsck有關係。

相關的資料請自己改,不要照打。

2014/1/7 15:22
應用擴展 工具箱
回覆: 如何設定另一個磁碟的某一個檔案為可執行檔?
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 179 / 896
MP : 661 / 27810
EXP: 85
離線
這是我的參數:
rw,nosuid,nodev,exec,nofail,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2

每個參數以逗號分隔,中文編碼問題以「utf8=1」解決

另外uid和gid參數的數字以此指令中顯示的為準:
$ id

這兩個參數決定分區主要提供予哪個使用者使用,若不指定的話只有root可以對分區寫入

2014/1/7 15:37
I′m UGP
應用擴展 工具箱
回覆: 如何設定另一個磁碟的某一個檔案為可執行檔?
會員一級
註冊日期:
2013/12/12 1:24
所屬群組:
已註冊使用者
等級: 3
HP : 0 / 70
MP : 8 / 1125
EXP: 83
離線
謝謝回覆。
反複試了幾次, 問題總算解決了。

另把這個可執行檔案,燒錄到光碟片中,
也mount -o exec 光碟機, 但沒有成功,
我想光碟中的檔案是「唯讀」的關係。

請問,有什麼方法, 可以把「可執行檔案」,燒錄到光碟片中,
快按二下,就可以執行了?

再請指導,謝謝。

2014/1/7 18:11
應用擴展 工具箱
回覆: 如何設定另一個磁碟的某一個檔案為可執行檔?
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 179 / 896
MP : 661 / 27810
EXP: 85
離線
FAT32、NTFS與光碟片的檔案系統格式,本身不支援Linux檔案權限設定,也就是它們本身不會儲存權限資訊在裡面,只是Linux會在掛載它們時模擬出使用者看到的權限
也就沒有「將可執行權限燒錄到光碟片中」這件事

依然是要用mount加上exec的參數,只是光碟機的代號不叫「光碟機」

1.一樣先查詢光碟機代號,可以將手邊有的光碟片放進電腦,執行指令:
$ mount | grep cdrom

應該會看到有一行有/dev/cdrom的紀錄,光碟機通常是這代號;照舊後面還會有一個掛載的目錄(如同隨身碟的/media/user/***)

2.如先前所說,指定參數再次掛載:
$ sudo umount /media/user/***
$ sudo mkdir /media/user/***
$ sudo mount -o exec /dev/cdrom /media/user/***

2014/1/7 21:47
I′m UGP
應用擴展 工具箱
回覆: 如何設定另一個磁碟的某一個檔案為可執行檔?
會員一級
註冊日期:
2013/12/12 1:24
所屬群組:
已註冊使用者
等級: 3
HP : 0 / 70
MP : 8 / 1125
EXP: 83
離線
謝謝回覆。
測試步驟如下:

~$ df              <---未掛載光碟機
檔案系統 1K-區段 已用 可用 已用% 掛載點
/dev/sda6 58926252 11801060 44125232 22% /
/dev/sdb1 15814664 8562144 7252520 55% /media/usb

~$ sudo blkid         <---查看光碟機為:/dev/sr0
/dev/sr0: LABEL="Writer" TYPE="iso9660"
/dev/sda6: UUID="a1afd561-abde-4794-b1a0-07aa0a17aa20" TYPE="ext4"
/dev/sdb1: LABEL="Transcend" UUID="BFF2-4CE8" TYPE="vfat"

~$ sudo mkdir /media/cdrom <---建立和掛載光碟機
~$ sudo mount -o auto,exec /dev/sr0 /media/cdrom
mount:區塊裝置 /dev/sr0 為防寫,即將以唯讀方式掛載

~$ df              <---已掛載光碟機
檔案系統 1K-區段 已用 可用 已用% 掛載點
/dev/sda6 58926252 11801048 44125244 22% /
/dev/sdb1 15814664 8562144 7252520 55% /media/usb
/dev/sr0 660660 660660 0 100% /media/cdrom


結果:那個燒錄到光碟片的可執行檔,確定可以執行
(以檔案總管開啟,再對這個檔案快按二下)

   但更換另一片光碟片後,再換回那片光碟,就不能執行了
    ~~~~~~~~~~~~~~~~~~~~~~~~
   只要重新開機,第一次放入的光碟片,裡面的可執行檔,都確定可以執行
     ~~~~~~~~~~~~~~

不曉得是那邊出了問題,或是掛載的參數少了什麼?
~$ sudo mount -o auto,exec /dev/sr0 /media/cdrom

2014/1/8 19:44
應用擴展 工具箱

(1) 2 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.