題主你好,
就我目前了解的, 實現 "某個文件夾下新建文件擁有特定許可權"的直接命令就是setfacl, 但不巧的是可執行位只對該文件夾下新建的 "稿弊子文件夾" 有效, 而對新建的 "子文件" 是無效的, 即兆敬悉,使用setfacl設置時, 新建的子文件的許可權最多到rw_rw_rw_,即666. 而新建的子文件夾許可權可以到rwxrwxrwx,即777.
-----------
解決方法:
可以使用samba共享,將"本地的共享文件夾"映射到"本地的某個文件夾", 然後通過配置samba的新建文件許可權, 來達到題主所說的"在A文件夾下新建或復制過來的文件都自動有可執行許可權"的目的.
上面說的可能雲里霧里的, 大族乎概的情況是:
下載一個samba軟體.
修改samba的配置(很簡單).
新建兩個文件夾,A(samba設置的共享文件夾)和B.
使用一條命令將A和B綁在一起.
最後你在B中新建或復制到B中的文件就都有可執行許可權了.
*.這里沒寫詳細的步驟, 因為涉及到不同的linux發行版下載samba的命令不同, 個別細節也不一樣, 如果題主覺得這樣可以請追問, 具體溝通時,再細說.
-----
希望可以幫到題主, 歡迎追問.
❷ Linux內存文件系統tmpfs(/dev/shm)詳細介紹
一、/dev/shm理論
默認的Linux發行版中的內核配置都會開啟tmpfs,映射到了/dev/下的shm目錄。可以通過df
命令查看結果.
/dev/shm/是linux下一個非常有用的目錄,因為這個目錄不在硬碟上,而是在內存里。因此在linux下,就不需要大費周折去建ramdisk,直接使用/dev/shm/就可達到很好的優化效果。默認系統就會載入/dev/shm
,它就是所謂的tmpfs,有人說跟ramdisk(虛擬磁碟),但不一樣。象虛擬磁碟一樣,tmpfs
可以使用您的
RAM,但它也可以使用您的交換分區來存儲。而且傳統的虛擬磁碟是個塊設備,並需要一個
mkfs
之類的命令才能真正地使用它,tmpfs
是一個文件系統,而不是塊設備;您只是安裝它,它就可以使用了。
tmpfs有以下優勢:
1。動態文件系統的大小,/dev
/shm/需要注意的一個是容量問題,在linux下,它默認最大為內存的一半大小,使用df
-h命令可以看到。但它並不會真正的佔用這塊內存,如果/dev/shm/下沒有任何文件,它佔用的內存實際上就是0位元組;如果它最大為1G,里頭放有
100M文件,那剩餘的900M仍然可為其它應用程序所使用,但它所佔用的100M內存,是絕不會被系統回收重新劃分的
2。tmpfs
的另一個主要的好處是它閃電般的速度。因為典型的
tmpfs
文件系統會完全駐留在
RAM
中,讀寫幾乎可以是瞬間的。
3。tmpfs
數據在重新啟動之後不會保留,因為虛擬內存本質上就是易失的。所以有必要做一些腳本做諸如載入,綁定的操作。
二、修改/dev/shm大小
默認的最大一半內存大小在某些場合可能不夠用,並且默認的inode數量很低一般都要調高些,這時可以用mount命令來管理它。
#mount
-o
size=1500M
-o
nr_inodes=1000000
-o
noatime,nodiratime
-o
remount
/dev/shm
在2G的機器上,將最大容量調到1.5G,並且inode數量調到1000000,這意味著大致可存入最多一百萬個小文件。
如果需要永久修改/dev/shm的值,需要修改/etc/fstab
代碼如下:
tmpfs
/dev/shm
tmpfs
defaults,size=1.5G
0
0
mount
-o
remount
/dev/shm
三、/dev/shm應用
首先在/dev/shm建個tmp文件夾,然後與實際/tmp綁定
代碼如下:
#mkdir
/dev/shm/tmp
#chmod
1777
/dev/shm/tmp
#mount
–bind
/dev/shm/tmp
/tmp(–bind
)
在使用mount
–bind
olderdir
newerdir命令來掛載一個目錄到另一個目錄後,newerdir的許可權和所有者等所有信息會發生變化。掛載後的目錄繼承了被掛載目錄的所有屬性,除了名稱。
❸ Linux怎樣訪問Windows共享文件和文件夾
在開發Linux程序中,經常會使用Windows的編輯器進行編輯,這樣還要拷貝到Linux伺服器,如果有這種開發習慣的同學,可以使用這種方式進行開發。
當然除了這種方法之外,可以再Windows安裝nfs伺服器,但是我的是64位的win7系統,好多nfs伺服器不支持,所以就只能使用這種共享文件夾的方式了。
Windows側:
1:在Windows下建立共享文件夾。
2:確保Windows用戶設置了密碼。
Linux側:
1:安裝cifs-utils包,安裝後,系統出現mount.cifs命令。或者有的發行包里的mount支持 -t cifs參數。
2:mount.cifs -o username="共享用戶",password="密碼" //ip/sharing_folder /mountpoint
問題1:在共享虛擬機的文件,編譯時會出現如下錯誤:
arm-none-linux-gnueabi-gcc -lpthread -o beep beep.c beeplib.c
cc1: error: beep.c: Value too large for defined data type
cc1: error: beeplib.c: Value too large for defined data type
make: *** [beep] Error 1
修正方法:sudo mount -t cifs -o username=wx,passwd=wx,nounix,noserverino //192.168.1.108/vm_share /mnt/share
添加了,nounix,noserverino
問題2:Unable to umount, device is busy
If you get this error message and the 'umount' as well as 'umount -f' commands don't work, try a "lazy" umount:
umount -l /mnt/badmount
Then mount the share again, as shown below:
mount -t cifs //hostname/goodmount /mnt/goodmount -o username=,password=
Note - using the "cifs" keyword instead of the smbfs keyword after -t will result in fewer problems like this.
問題3: mount error 12 = Cannot allocate memory
當通過mount.cifs命令對windows下的文件進行映射時,若文件太大,便會產生這種錯誤,解決方法是:
修改注冊表 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\IRPStackSize項的值大於等於15,若IRPStackSize項不存在,就新建一個DWORD值,點擊彈出窗口的的進制為十進制,值寫個18就ok了,還要重啟一