题主你好,
就我目前了解的, 实现 "某个文件夹下新建文件拥有特定权限"的直接命令就是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了,还要重启一